Trotz zahlreicher Pluspunkte im Vergleich zu gängigen Dateisystemen wie ext4 oder XFS ist ZFS noch immer recht unbekannt in Deutschland. Dabei gibt es derzeit kein sicheres und gleichzeitig robusteres Dateisystem auf dem Markt. Das sogenannte Zettabyte File System wurde von Sun Microsystems entwickelt und ist mittlerweile ein Open-Source-Projekt.
In diesem Artikel wirst du eine umfassende Einführung in ZFS erhalten, von seinen Vorteilen und Nachteilen über seine Funktionsweise bis hin zu seinen Anwendungsbereichen und der Zukunftsaussicht. Wenn du also mehr über dieses fortschrittliche Dateisystem erfahren möchtest, dann lies weiter! Und eines gleich vorweg: Das Lesen lohnt sich!
Was macht ZFS besser als der Rest?
ZFS ist ein großartiges Dateisystem, das bereits im Jahr 2000 von Jeff Bonwick und Bill Moore entwickelt wurde. ZFS hat zahlreiche Erweiterungen, die es besonders für den Einsatz in Rechenzentrumsumgebungen geeignet machen. Zum Beispiel ist die maximal mögliche Kapazität bei 128 Bit schier unbegrenzt und man kann selbst komplexe Konfigurationen recht einfach verwalten.
„Ein 128-Bit-Dateisystem zu füllen, würde die quantenmechanische Grenze irdischer Datenspeicherung übersteigen. Man könnte einen 128-Bit-Speicher-Pool nicht füllen, ohne die Ozeane zu verdampfen.“
– Jeff Bonwick, Chefentwickler von ZFS
ZFS hat auch einige integrierte RAID-Funktionen und bietet ein Volume-Management. Was ZFS aber wirklich auszeichnet, ist der prüfsummenbasierte Schutz vor Datenübertragungsfehlern – das bedeutet, dass deine Daten besser geschützt sind. Das Copy-On-Write-Dateisystem ist vor allem dafür bekannt, schleichende Datenkorruption, also den sogenannten Bit Rot zu verhindern.
Und wo wir schon beim Punkt Datensicherheit angekommen wären. ZFS verfügt über eine Snapshot-Funktionalität. Du kannst also im laufenden Betrieb konsistente Snapshots erstellen! Diese Snapshots kannst du dann sogar mit dem integrierten Send-Befehl woanders archivieren. Ein weiteres cooles Feature sind noch die ZFS-Clones. Dabei handelt es sich um beschreibbare Snapshots.
Das ist aber längst nicht alles, was ZFS so interessant macht:
- Ein RAID-Rebuild ist hier recht flott absolviert. Das liegt daran, dass bei einem Festplattenausfall nur die belegten Daten wieder hergestellt werden. Herkömmliche Lösungen stellen dabei die gesamte Festplatte wieder her.
- Klassische RAIDs haben die Angewohnheit, für die Ewigkeit konzipiert worden zu sein. ZFS ermöglicht es einem aber, die Festplatten schrittweise durch größere zu ersetzen und so die gesamte RAID-Kapazität zu erhöhen. Selbstverständlich können aber auch neue Platten integriert werden.
- Ebenfalls ist man bei einer Datenmigration nicht darauf angewiesen, dass der künftige Raidcontroller den Festplatten-Verbund importieren kann. Stattdessen können die Platten und das sogar in anderer Reihenfolge gesteckt im neuen System importiert werden. Dabei bleiben natürlich sämtliche Daten, ACLs oder Snapshots vorhanden und können im Anschluss direkt wieder genutzt werden.
- Häufig dauert die Initialisierung von großen Speicherpools einige Zeit. ZFS ist hier viel schneller unterwegs. Man braucht nämlich gar keinen Init-Prozess und so ist die Erstellung gigantischer Pools in wenigen Minuten erledigt.
- Deduplizierung ist ein weiteres Feature von ZFS. Gemeint ist damit, dass redundante Daten innerhalb eines Pools erkannt und damit nur einmal gespeichert werden. Damit wird Speicherplatz gespart und der I/O-Bedarf gesenkt. Schließlich müssen weniger Daten gelesen und geschrieben werden.
- ZFS nutzt sowohl Copy-On-Write als auch das altbekannte Journaling. Damit hat man zu jeder Zeit ein konsistentes Dateisystem. Konkret heißt das, dass Rücksicherungen von Blöcken sowie Dateisystemprüfungen unnötig sind. Ein Stromausfall stellt hier also nicht wirklich ein Problem dar. Das macht ZFS für den Einsatz auf dem heimischen NAS so interessant.
- Neben Deduplizierung ist auch Komprimierung in ZFS umsetzbar. Dies ermöglicht dir wieder die Einsparung von Speicherplatz. Die Komprimierung kann bei ZFS auf Pool-Ebene konfiguriert werden. Das heißt, dass alle vorhandenen Dateien im Pool automatisch komprimiert werden.
- Caching kann man in ZFS auf zwei Weisen umsetzen. Einerseits mit schnellen SSDs und andererseits mit dem verbauten RAM. Letzteres ist dabei natürlich um einiges schneller und Ersteres bietet natürlich mehr Kapazität.
Wie funktionieren Raids in ZFS?
Auch bei ZFS wird nur mit Wasser gekocht. Allerdings spricht man hier nicht von Raid 5, 6 oder 7. Das Wording ist ein wenig anders. ZFS verwendet ein eigenes Konzept namens RAID-Z. Dabei handelt es sich um ein Software-RAID-Level, das auf dem Konzept der Parität basiert. Es verwendet damit eine ähnliche Technologie wie beispielsweise das häufig eingesetzte RAID 5.
RAID-Z ermöglicht es, Daten mit Paritätsinformationen auf mehrere Festplatten zu verteilen, um Redundanz und Datensicherheit zu gewährleisten. Es gibt verschiedene RAID-Z-Level in ZFS, die sich hinsichtlich der Anzahl der Festplatten und der Art und Weise, wie die Parität berechnet wird, unterscheiden. Hier sind die gängigsten RAID-Z-Level in ZFS:
- RAID-Z1: Ähnlich wie RAID 5, verwendet jedoch eine verbesserte Berechnung der Parität, um das Problem des RAID 5 Write Hole zu vermeiden. Die Mindestanzahl der benötigten Festplatten beträgt drei.
- RAID-Z2: Ähnlich wie RAID 6, bietet jedoch zusätzliche Redundanz durch die Verwendung von zwei Paritätsinformationen. Es werden hier mindestens vier Festplatten gebraucht.
- RAID-Z3: Ähnlich wie RAID 7, bietet jedoch noch höhere Redundanz durch die Verwendung von drei Paritätsinformationen. Allerdings bedarf es in diesem Fall schon fünf Festplatten.
Es ist auch möglich, mehrere RAID-Z-Gruppen zu einem einzelnen Pool zusammenzufassen, um noch höhere Redundanz und Ausfallsicherheit zu erreichen. In ZFS bezieht sich der Begriff Pool auf eine Gruppe von Festplatten, die als Einheit verwaltet werden und auf denen ZFS-Dateisysteme erstellt werden können.
Pools bzw. RAIDs müssen aber nicht immer aus drei oder mehr Festplatten bestehen. Auch in ZFS ist es nämlich möglich, ein RAID 0 oder ein RAID 1 zu verwenden. Man spricht dann allerdings nicht von RAID-Z, sondern von Striping und Mirroring. Was genau damit gemeint ist, erkläre ich dir im Folgenden:
- RAID 0 (Striping): ZFS ermöglicht das Striping von Daten über mehrere Festplatten hinweg, um die Schreib- sowie Lesegeschwindigkeit zu erhöhen. Striping bietet jedoch keinerlei Redundanz. Fällt nur eine einzige Festplatte des Verbunds aus, gehen sofort alle Daten verloren. Eine redundante Datenspeicherung sucht man hier also vergebens.
- RAID 1 (Mirroring): Das Spiegeln von einer Festplatte auf eine andere ist für ZFS kein Problem. Wenn einer der beiden Datenträger ausfällt, bleiben die Daten auf der anderen Festplatte erhalten. Wer noch etwas mehr Sicherheit bei einem Plattenausfall für nötig hält, kann auch drei Datenträger nutzen. Dabei wird eine Disk auf zwei weitere gespiegelt.
Wo wird bereits mit ZFS gearbeitet?
Ein Dateisystem wie ZFS kann prinzipiell überall eingesetzt werden. Selbst auf dem eigenen PC wäre die Installation bei ausreichend RAM und CPU-Leistung kein allzu großes Problem. In der Praxis findet man ZFS aber fast nur im Rechenzentrumsbetrieb. Allerdings nutzen auch viele kleinere Firmen und Homelabber das frische Dateisystem in ihren NAS- oder Virtualisierungssystemen.
Ich spiele damit gezielt auf TrueNas oder Proxmox an. Während ersteres komplett auf die Verwendung von ZFS ausgerichtet ist, kann man bei Proxmox nachträglich Speicherpools mit ZFS einrichten oder gleich das ganze Betriebssystem auf einem ZFS-Mirror installieren. Ebenfalls sinnvoll ist der Einsatz von ZFS anstelle eines Hardware-Raids bei der Speicherlösung GlusterFS.
Die möglichen Anwendungsgebiete für ZFS sind also sehr vielseitig. Trotzdem bieten viele Linux-ISOs das Erstellen von Software-Raids nur mit dem altbackenen Tool mdadm an. Damit beschränkt sich die Auswahl in puncto Dateisystem in der Regel auf ext4 oder in manchen Fällen noch auf XFS. Das ist auch gar nicht weiter schlimm, aber etwas frischer Wind würde hier nicht schaden.
Auf ZFS basierende OpenStorage-Produkte erlauben die Verwendung von normaler Hardware und man muss so kein teures Produkt eines bestimmten Storage-Herstellers erwerben. Außerdem muss man für die Enterprise-Features in ZFS keinen Aufpreis bezahlen, da diese im Standardumfang enthalten sind.