Vorteile von ZFS

ZFS als eher neues Dateisystem bietet diverse Vorteile gegenüber den aktuell weit verbreiteten Dateisystemen, wie z.B. ext3, ext4 und NTFS. Wir haben diese für Sie kurz im folgenden zusammengefasst:

Datenintegrität ist der wichtigste Vorteil von ZFS gegenüber herkömmlichen Dateisystemen

Durch den Einsatz blockweiser Prüfsummen wird Datenintegrität an jedem Punkt der Speicherkette sichergestellt. Dies bedeutet, dass jeder Lesevorgang geprüft wird, was wiederum Datenverfall zu einem Problem der Vergangenheit macht. Zusätzlich wird mittels “Copy on Write” (CoW) verhindert, dass bei einem System-Crash Daten verloren gehen welche gerade in Bearbeitung durch das Dateisystem waren. ZFS ändert die Position der Daten auf dem Speichermedium erst, nachdem der Schreibvorgang abgeschlossen und erfolgreich verifiziert ist.
Zusätzlich zum CoW Feature bietet ZFS erweiterte RAID Sicherheit im Vergleich zu standard RAID Leveln. Mit RAID-Z3 sind maximal drei Fehler im RAID Pool verkraftbar, wobei in einem herkömmlichen RAID nur zwei problemlos wären. Zusätzlich bietet ZFS die Möglichkeit des multi-disk-mirror RAID (nRAID), bei welchem nicht nur eine gespiegelte Platte zur Datensicherheit beiträgt, sondern mehrere als Mirror zur Verfügung stehen. Das beschleunigt außerdem die Lesegeschwindigkeit mit jeder weiteren Mirror-Platte.

Hohe Skalierbarkeit

Die Speicherkapazität mit ZFS Dateisystem wird praktisch nur durch die Hardware begrenzt. Die maximale Größe des Dateisystems ist 16 EiB = 16 * 2^60 Byte, das entspricht drei Millionen 6TB Platten. Ein eingerichteter ZFS Pool kann jederzeit beliebig in seiner Größe erweitert werden. Ein Pool kann schrittweise durch größere Festplatten ersetzt werden, ohne dass es komplizierter Prozeduren bedarf.
Festplatten können physikalisch sogar in anderer Reihenfolge in ein anderes System gesteckt werden und solange die ZFS Version auf dem Zielsystem größer oder gleich ist, können sämtliche Daten, ACLs, Snapshots etc nach dem Import genutzt werden.

Erhöhte Performance

ZFS kann auch maßgeblich die Performance Ihres Systems erhöhen. ZFS erlaubt es, Schreibvorgänge an individuelle physikalische Platten zu senden anstatt nur an einzelne RAID-Volumes. Zusätzlich gibt es keine write penalty, wie z.B. in einem klassischem RAID 5.
Beim Ausfall einer Festplatte in einem RAID-Verbund werden nur die belegten Daten rebuildet, nicht die gesamte Festplatte. Dies reduziert die Rebuild-Zeit und die Wahrscheinlichkeit eines weiteren Ausfalls. Die implementierten ZFS Algorithmen stellen sicher, dass die meist genutzen Daten auf den schnellsten Massenspeichern befindlich sind, was in Verbindung mit Flash basiertem Schreib-Cache und L2ARC Lese-Cache zu einer Performancesteigerung von bis zu 20% führt.
Ein weiteres Feature von ZFS sind die intelligent entwickelten Snapshot-, Clone- und Vervielfältigungsfunktionen. Diese benötigen nur einen Bruchteil der Zeit im Vergleich zu herkömmlichen Dateisystemen.

Einfache Administration

Das Anlegen eines neuen ZFS-Pools gestaltet sich sehr einfach. Die verfügbaren Datenträger lassen sich mit "rmformat" anzeigen und mit dem Befehl “zpool create -m /mountpunkt Contabo1 DEVICE” kann in wenigen Sekunden ein neuer Pool erstellt werden. Das neue Dateisystem wird automatisch gemountet und ist sofort nutzbar. Ein Formatieren o.ä. ist nicht notwendig.

Sollte der Speicherplatz eines Datenträgers nicht ausreichen, kann man der Pool auf sehr einfache Weise um einen zusätzlichen Datenträger erweitert werden mittels “zpool add Contabo1 DEVICE”. Dies entspricht dem bereits bekannten RAID 0. Die Daten werden auf alle Datenträger verteilt, so dass die Transferrate zunimmt. Allerdings erhöht sich hierdurch auch die Wahrscheinlichkeit von Datenverlust, da der Ausfall von nur einem Datenträger aus dem Pool ausreicht sämtliche Daten unbrauchbar zu machen.

In der Regel ist ein auf Datensicherheit ausgelegter Pool am sinnvollsten. Gespiegelte Platten, das entspricht dem klassischen RAID 1, lassen sich mittels “zpool create Contabo1 mirror DEVICE DEVICE” sehr leicht erstellen. Natürlich können Verbunde mit mehreren Mirrors hinzugefügt werden, indem einfach ein weiterer Mirror an den Befehl gehängt wird. Mittels der "add" Option lässt sich dies auch nachträglich erledigen. RAID-Z Verbunde können ähnlich einfach erstellt werden mittels “zpool create Contabo1 raidz DEVICE DEVICE DEVICE DEVICE”. Der Befehl erstellt einen RAID-Pool mit vier Datenträgern, wobei maximal ein Datenträger ausfallen darf. Wird statt "raidz" die Option "raidz2" verwendet, können bis zu zwei Datenträger ausfallen.

Es gibt außerdem die Option, Reserveplatten, die sogenannten Hot Spares, in einen Verbund einzubinden. Im Normalbetrieb werden sie nicht genutzt und erst dann aktiviert, wenn eine im Betrieb befindliche Platte ausfällt. Bei einem Problem wird automatisch ein rebuild gestartet. Nach Abschluss des Vorgangs ist die Redundanz der Datenträger wieder gegeben. Dazu verwendet man den Befehl “zpool add Contabo1 spare DEVICE” und die letzte Platte in unserem Beispiel wird somit als Hot Spare im Pool verwendet.
Mittels "zpool list" werden alle ZFS-Pools inklusive Größe, aktueller Belegung sowie dem Gesundheitszustand aufgelistet.
Es empfiehlt sich die Anleitungen der zwei wichtigsten Befehle und Ihrer Optionen mittels “man zfs” und “man zpool” durchzulesen.

Hier nochmal eine kurze Übersicht zu den wichtigsten Befehlen:

- Anlegen eines RAID-Z Pools
zpool create NAME raidz DEVICE DEVICE DEVICE
- Anlegen eines MIRROR Pools
zpool create NAME mirror DEVICE DEVICE
- Anzeigen der angelegten Pools
zpool list
- I/O für die Pools anzeigen
zpool iostat 1
- Eigenschaften der Pool Geräte anzeigen
zpool vdevs
- Platte/Device zum Pool hinzufügen
zpool add NAME DEVICE
- Pool löschen
zpool destroy NAME
- Anlegen eines ZFS Dateisystem mit gleichzeitigem Einhängen
zfs create POOL/NAME
- Anzeigen der aktuellen ZFS Dateisysteme
zfs list
- Anlegen eines ZFS Dateisystem und einhängen unter einem nicht-default Pfad
zfs create POOL/NAME /MOUNTPOINT
- Snapshot eines Dateisystems
zfs snapshot POOL/[email protected]
- ZFS Dateisystem mounten
zfs mount POOL/FILESYSTEM /MOUNTPOINT
- Dateisystem entfernen
zfs destroy POOL/NAME

Welche Betriebssysteme sind mit ZFS kompatibel?

ZFS wurde ursprünglich auf Solaris entwickelt, kann aber heutzutage auf FreeBSD, FreeNAS, den meisten Linux Distributionen und Proxmox genutzt werden.