Das ZFS Dateisystem

ZFS ist heute ein quelloffenes 128-Bit Dateisystem, was kommerziellen Dateisystemen, bei richtiger Hardwarebasis, weitaus überlegen ist. ZFS ( Zettabyte File System ) wurde von der Firma Sun Microsystems seit 2001 entwickelt und 2005 unter der Common Development and Distribution License (CDDL) freigegeben. Da diese nicht mit der GNU General Public License kompatibel ist, kann ZFS nicht in den Linux-Kernel aufgenommen werden. Um dieses Problem zu umgehen, bieten die meisten Linux-Distributionen Methoden zur Installation von ZFS an.

Kurz nachdem Oracle Sun Microsystems aufgekauft hatte, wurde OpenSolaris zu einem Closed-Source-Projekt. Die gesamte weitere Entwicklung von ZFS wurde quelloffen. Viele der ZFS-Entwickler waren über diese Wendung der Ereignisse unglücklich. Zwei Drittel der ZFS-Kernentwickler verließen Oracle aufgrund dieser Entscheidung. Sie schlossen sich anderen Unternehmen an und gründeten im September 2013 das OpenZFS-Projekt. Das Projekt hat die Open-Source-Entwicklung von ZFS vorangetrieben.

ZFS wurde frei von alten Vorstellungen entwickelt. Es entstand ein vollkommen neues System zum Speichern von Daten mit einigen hervorstechenden Zielen: der gesamte Speicher als Pool, hohe Geschwindigkeit, absolute Datenintegrität und einfache Administration.
In der Praxis gibt es kein Limit für die Anzahl an Dateien oder der Dateigröße. Daher sind hoch skalierbare, auf ZFS basierende Systeme oft die erste Wahl für Cloud-Storage- oder Hostinganbieter sowie in virtuellen Umgebungen. Wenn Installationen in den Petabyte-Bereich gehen, wird die Wahl ein 128-Bit Dateisystem sein.
ZFS ist ein fundamental anderes Dateisystem aufgrund der Tatsache, dass es mehr als ein Dateisystem ist. ZFS kombiniert die Rolle eines Dateisystems mit dem Volumemanager, was es ermöglicht, zusätzliche Speichermedien zu einem laufenden System hinzuzufügen und diesen neuen Speicher sofort auf allen existierenden Dateisystemen zur Verfügung zu haben.

ZFS ist ein fortschrittliches Dateisystem. Als solches hat es einige interessante Funktionen. Zum Beispiel:

-Gepoolter Speicher – Pooled storage
-Kopieren-auf-Schreiben – Copy-on-write
-Schnappschüsse – Snapshots
-Überprüfung der Datenintegrität und automatische Reparatur
-RAID-Z
-Maximal 16 Exabyte Dateigröße
-Maximal 256 Quadrillionen Zettabytes Speicherplatz

Schauen wir uns ein paar dieser Funktionen genauer an.

Gepoolter Speicher – Pooled storage
Im Gegensatz zu den meisten Dateisystemen kombiniert ZFS die Funktionen eines Dateisystems und eines Volume Managers. Das bedeutet, dass ZFS im Gegensatz zu anderen Dateisystemen ein Dateisystem erstellen kann, das sich über eine Reihe von Laufwerken oder einen Pool erstreckt. Und nicht nur das: Sie können einem Pool Speicherplatz hinzufügen, indem Sie ein weiteres Laufwerk hinzufügen. ZFS übernimmt die Partitionierung und Formatierung.

Kopieren-auf-Schreiben – Copy-on-write
Copy-on-write ist eine weitere interessante (und coole) Funktion. Wenn in den meisten Dateisystemen Daten überschrieben werden, sind sie für immer verloren. Bei ZFS wird die neue Information in einen anderen Block geschrieben. Sobald der Schreibvorgang abgeschlossen ist, werden die Metadaten des Dateisystems so aktualisiert, dass sie auf die neuen Informationen verweisen. Dadurch wird sichergestellt, dass die alten Daten erhalten bleiben, wenn das System abstürzt (oder etwas anderes passiert), während der Schreibvorgang läuft. Es bedeutet auch, dass das System nach einem Systemabsturz kein fsck ausführen muss.

Schnappschüsse – Snapshots
Copy-on-write führt zu einer weiteren ZFS-Funktion: Snapshots. ZFS verwendet Schnappschüsse, um Änderungen im Dateisystem zu verfolgen. „Der Schnappschuss enthält die ursprüngliche Version des Dateisystems, und das Live-Dateisystem enthält alle Änderungen, die seit der Erstellung des Schnappschusses vorgenommen wurden. Es wird kein zusätzlicher Speicherplatz verwendet. Wenn neue Daten in das Live-Dateisystem geschrieben werden, werden neue Blöcke zum Speichern dieser Daten zugewiesen.“ Wenn eine Datei gelöscht wird, wird auch der Verweis auf den Snapshot entfernt. Snapshots sind also hauptsächlich dazu gedacht, Änderungen an Dateien zu verfolgen, nicht aber das Hinzufügen und Erstellen von Dateien.

Snapshots können als schreibgeschützt gemountet werden, um eine frühere Version einer Datei wiederherzustellen. Es ist auch möglich, ein Rollback des Live-Systems auf einen früheren Snapshot durchzuführen. Alle Änderungen, die seit dem Snapshot vorgenommen wurden, gehen dabei verloren.

Überprüfung der Datenintegrität und automatische Reparatur
Jedes Mal, wenn neue Daten in ZFS geschrieben werden, wird eine Prüfsumme für diese Daten erstellt. Wenn diese Daten gelesen werden, wird die Prüfsumme überprüft. Wenn die Prüfsumme nicht übereinstimmt, dann weiß ZFS, dass ein Fehler entdeckt wurde. ZFS wird dann automatisch versuchen, den Fehler zu korrigieren.

RAID-Z
ZFS kann RAID handhaben, ohne dass zusätzliche Software oder Hardware benötigt wird. Es überrascht nicht, dass ZFS seine eigene Implementierung von RAID hat: RAID-Z. RAID-Z ist eigentlich eine Variante von RAID-5. Es wurde jedoch entwickelt, um den RAID-5-Schreiblochfehler zu überwinden, bei dem die Daten und Paritätsinformationen nach einem unerwarteten Neustart inkonsistent werden“. Für die Grundstufe von RAID-Z (RAID-Z1) benötigen Sie mindestens zwei Festplatten für die Speicherung und eine für die Parität. RAID-Z2 erfordert mindestens zwei Speicherlaufwerke und zwei Laufwerke für die Parität. RAID-Z3 erfordert mindestens zwei Speicherfestplatten und drei Festplatten für die Parität. Wenn Laufwerke zu den RAID-Z-Pools hinzugefügt werden, müssen sie in Vielfachen von zwei hinzugefügt werden.

Enormes Speicherpotenzial
Als ZFS entwickelt wurde, sollte es das letzte Wort bei Dateisystemen sein. Zu einer Zeit, als die meisten Dateisysteme 64-Bit waren, beschlossen die ZFS-Schöpfer, direkt auf 128-Bit zu springen, um es zukunftssicher zu machen. Das bedeutet, dass ZFS „die 16 Milliarden Milliarden Mal höhere Kapazität als 32- oder 64-Bit-Systeme bietet“.

Wenn Sie ZFS verwenden wollen, können Sie dies mit FreeBSD, OmniOS oder OpenIndiana tun.
Es gibt aber auch fertige Storage NAS Systeme wie XigmaNAS oder TrueNAS die optimiert für File Systeme sind.
Aber auch Debian bietet eine hervorragende Möglichkeit über die Backports OpenZFS für Linux zu installieren und Rock Solid / Hochverfügbar zu betreiben.