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-RaidHW RAID Controller nutzen unddortmehrerejedeLUNs 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
alsdieVolumeRedundanz, bzw. die Konsistenz bestätigen. Wenn ein VDEV zu viele Fehler liefert, lehnt ZFS es fürZFSeinenSWweiterenRaidImport(knallt)dauerhaft ab!!! Eventuell zpool import -fFX poolname probieren, destruktiv für Rollback auf letzten guten Zustand, sehr riskant -
Deduplizierung aktivieren
(geht> kann nicht mehrausausgeschaltetprowerden,Pool)ggf. in neueren ZFS Versionen optimiert -
ZFS_ARC_MAXZFS_ARC zuhoch/niedrigklein(ca/1GBzuprogroßTB>Richtlinie)schlechte Leistung, bei Cache und LOG mehr ARC notwendig -
Pool über 80%
FüllgradFüllstandlaufen>lassenLeistungseinschränkung bis Stillstand bei ca 96% -
SnapshotbereinigungSnapshot Bereinigung / Management aus dem Blick verlieren(Empfehlung:>8×1/4h,führt48h,ggf.10T,unbeobachtet4W,zu3M)vollem Raid -
Bei ZFS-Auto-SnapshotSnapshots aufZielBackupsnicht-deaktiviertvöllig(zfskontraproduktiv,setführcom.sun:auto-snapshot=falsezurpool/replica)sehr vollem Raid -
Anfügesnapshot durch schlechtes Management verlieren
(Beispiel: nur houlry replizieren, nach 49h kein Anfügen mehr möglich) -
Druckbetankung
(kann>beidafürschlechtenistSystemenZFSzumnichtStillstandgemacht,führen,wasgerademehrwennkann,OSbrauchtaufauchDatenpool)mehr Leistung -
PVE auf selbem
RaidRAID wie Systeme (kannOSbeiaufhoherDatenpool) > Last auf VMs führt im Härtefall bis zumStillstand führen)Kernelcrash -
FreeNASKeinaufECCUSBRamSticks> Datenbeschädigung die nicht in jedem Fall durch Scrub und Resilver behoben werden kann (Die Zeit ist vorbei, bitte SSDs nehmen mit USB Adapter, als Beispiel)selten) VirtuelleMaschinenProxmox 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
ZFSproxmox-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
Abgesehenbenutzen,vonbeimdernächstenSpeicherplatzverschwendung,bootkannwiedereszpoolzuimportunontrollierten-faMountsund exit, /etc/pve ist in Recoveryumgebung nicht vorhande, da ausZVOLsFUSEkommengeneriert -
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
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