ZFS Optimierung und Todsünden
ZFS Funktionen für SSDs
-
zpool get autotrim <poolname>
: Auslesen ob „autotrim“ eingeschaltet ist -
zpool trim <poolname>
: Pool manuell trimmen -
zpool status -t <poolname>
: Auslesen TRIM status -
zpool set autotrim=on <poolname>
: generell trimmen (autotrim einschalten, wenn manuelles trimmen erfolgreich)
-
zfs add rpool cache nvmn0e1
: füge nvmn0e1 als cache Device in rpool
ZFS mit Spindeln
-
Je mehr Spindeln desto schneller
-
Gespiegelte Disks ggf. auf mehrere SAS Lanes verteilen (dmesg beobachten)
-
SAS ist schneller als SATA!
-
Maximaler Speed ist oft durch alte HBA limitiert (6/12G)
-
G ist Gigabit, also 6/8 = 750MB/sek max
-
Todsünden
-
HW RAID Controller nutzen und mehrere LUNs als Raid VDEVs nutzen > Datenverust, kein Smart, keine Metriken
-
Single VDEV Raid z. B. auf Hardware Raid oder iSCSI/FC SAN > Bei Beschädigung kann keine weitere Disk die Redundanz, bzw. die Konsistenz bestätigen. Wenn ein VDEV zu viele Fehler liefert, lehnt ZFS es für einen weiteren Import dauerhaft ab!!! Eventuell zpool import -fFX poolname probieren, destruktiv für Rollback auf letzten guten Zustand, sehr riskant
-
Deduplizierung aktivieren > kann nicht mehr ausgeschaltet werden, ggf. in neueren ZFS Versionen optimiert
-
ZFS_ARC zu klein / zu groß > schlechte Leistung, bei Cache und LOG mehr ARC notwendig
-
Pool über 80% Füllstand > Leistungseinschränkung bis Stillstand bei ca 96%
-
Snapshot Bereinigung / Management aus dem Blick verlieren > führt ggf. unbeobachtet zu vollem Raid
-
Snapshots auf Backups - völlig kontraproduktiv, führ zu sehr vollem Raid
-
Anfügesnapshot durch schlechtes Management verlieren
-
Druckbetankung > dafür ist ZFS nicht gemacht, was mehr kann, braucht auch mehr Leistung
-
PVE auf selbem RAID wie Systeme (OS auf Datenpool) > Last auf VMs führt im Härtefall bis zum Kernelcrash
-
Kein ECC Ram > Datenbeschädigung die nicht in jedem Fall durch Scrub und Resilver behoben werden kann (selten)
-
Proxmox Datastore auf Directory setzen > Proxmox erstellt eventuell beim Booten den Ordner selbst und ZFS kann dann nicht mounten, Rollback setzt alle virtuellen Disks im Dataset zurück
-
Platzangaben vertrauen > Recordsizes, Volblocksizes, Compressions, Special Devices und Co. machen eine Vorhersage fast unmöglich und rechtfertigen Thin Provisioning
-
zpool upgrade zu früh oder zu spät > zpool upgrade erweitert features die ggf. beim aktuellen Proxmox ISO noch nicht verfügbar, jedoch im Upgrade verfügbar sind. Im Recoveryfall kann man nur readonly mounten!
-
Festplatte ersetzen bei Proxmox ZFS Boot Systemen > zpool replace sollte nur nach Übernahme der Partitionstabelle einer funktionierenden Disk auf die dritte Partition ausgeführt werden, zusätzlich mit proxmox-boot-tool init/format auf die zweite Partition.
-
iSCSI LUNs mit Proxmox > nicht empfehlenswert, bestenfalls mit dem Free-/TrueNAS Plugin. Wie lange das supportet ist weiss keiner.
-
Import Proxmox Pool in Recovery Umgebung > Achtung Eigentümer des Pools ändert sich, daher zpool import -fa benutzen, beim nächsten boot wieder zpool import -fa und exit, /etc/pve ist in Recoveryumgebung nicht vorhande, da aus FUSE generiert
-
Billige USB Adapter und Gehäuse > Manche Adapter haben alle die gleiche Kennung, daher ggf. Raid erstellen und importieren über zpool import /dev/disk/by-path oder by-partuuid
- Raid ohne dryrun erweitern > 'zpool add -n rpool mirror sdc3 sdd3' wäre korrekt, wobei es tödlich wäre hier das wort mirror zu vergessen
- Konsumer SSDs für Cache und LOG > Waren im Dauerbetrieb schon nach weniger als zwei Jahren am Limit, währen Enterprise SSDs nach 9 Jahren erst bei 30% waren. Getestet mit Samsung Consumer und Intel Enterprise
Update 2024 zum Thema Volblocksize
root@pve83:~# zfs create -ovolblocksize=8k rpool/8k -V 1GWarning: volblocksize (8192) is less than the default minimum block size (16384).To reduce wasted space a volblocksize of 16384 is recommended.
rpool/16k 1.11G 15.2T 81.4K -
rpool/8k 1.49G 15.2T 81.4K -
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
scsi-201000000000000005cd2e475ae4b5651-part3 ONLINE 0 0 0
scsi-201000000000000005cd2e4f1bd4e5651-part3 ONLINE 0 0 0
scsi-201000000000000005cd2e4ef8f4b5651-part3 ONLINE 0 0 0
scsi-201000000000000005cd2e4889d4b5651-part3 ONLINE 0 0 0
Bei RaidZ2 wäre der Overhead über 200%
Inzwischen warnt ZFS, jedoch sieht das keine in der PVE GUI!
Emfpehlung Volblocksize für ZVOLs
Raid 1 / 10 8-16k
Raid5(Z1) 16k
Raid6+(Z2-3) 32k
Empfehlung Recordsize für Datasets
LXC 128k
Mailarchiv 16k
Proxmox Backup Server 1024k