Dateisystem zfs (ZoL = ZFS on Linux)
zfs ist ein von Solaris kommendes Dateisystem, das einige Vorzüge in sich vereint, u.a.: - Copy-on-Write / Journalling - Prüfsummen über Datenblöcke (kann dadurch selbst entscheiden, ob bzw. welche Daten korrekt sind) - RAID-Funktionen: mirror (RAID1), raid-z1 (RAID5), raid-z2 (RAID6) - Kompression - Verschlüsselung (nur in relativ neuen Releases von ZoL) - Snapshots - Deduplikation (Vorsicht: braucht viel RAM!) - LVM-artige Funktionen
Vorteile im RAID-Betrieb
- wenn Daten auf einem Datenträger z.B. eines Mirrors korrupt sind, weiss ZFS, welche korrupt und welche ok sind durch die Prüfsummen und muss sich nicht auf Fehlermeldungen der HDDs/SSDs verlassen. Bei einem "Scrub" koennen korrupte Blöcke gefunden und korrigiert neu geschrieben werden (gut gegen "bit rot").
- wenn ein Datentraeger getauscht werden muss, weiss zfs, welche Blöcke wirklich benutzt sind und muss nur diese neu synchronisieren (nicht den leeren Platz)
- kein HW-RAID-Controller + zugehörige hersteller-spezifische SW-Tools notwendig
Linux-Distributionen, die ZoL unterstützen
- Ubuntu (experimentell, seit 16.04. seit 20.04 im Desktop-Installer)
- Proxmox VE
Tipps
- wenn ihr partitioniert, macht Euch 2GB große /boot-Partition(en) - 500MB reichen definitiv nicht!
- es sieht so aus, als ob Ubuntu 20.04 für /boot einen separaten "bpool" haben will ("/" u.a. == rpool).
- grub kann nicht alle zfs-Features, auch daher /boot lieber separat
- die ca. 8MB GPT-Partition 9 "Solaris reserved" ganz hinten auf der Disk hat wohl historische Gründe und wird von Linux nicht benutzt
Wichtige Kommandos
Mirror / RAID / Pool - Status checken
zpool status
Mirror: ausgefallenen Datenträger ersetzen
# erst leeren DT identisch partitionieren wie vorhandenen DT mit Daten # Spiegel neu zusammenbauen: zpool attach rpool /dev/disk/by-id/<existing-disk-with-data>-partN /dev/disk/by-id/<new-disk-empty>-partN # danach sollte es alle benutzten Datenblöcke auf die leere Disk-Partition kopieren "resilvering"... zpool status