Was ist ZFS? Warum sind die Leute verrückt danach?

Heute werfen wir einen Blick auf ZFS, ein erweitertes Dateisystem. Wir werden diskutieren, woher es kommt, was es ist und warum es bei Technikern und Unternehmen so beliebt ist.

Obwohl ich aus den USA komme, ziehe ich es vor, ZedFS anstelle von ZeeFS auszusprechen, weil es cooler klingt. Sie können es frei aussprechen, wie Sie möchten.

Hinweis: Im Artikel wird ZFS mehrmals wiederholt. Wenn ich über Funktion und Installation spreche, spreche ich über OpenZFS. ZFS (von Oracle entwickelt) und OpenZFS sind seit dem Herunterfahren von Oracle OpenSolaris unterschiedliche Wege gegangen. (Mehr dazu später.)

Geschichte des ZFS

Das Z File System (ZFS) wurde 2001 von Matthew Ahrens und Jeff Bonwick entwickelt. ZFS wurde als Dateisystem der nächsten Generation für OpenSolaris von Sun Microsystems entwickelt. Im Jahr 2008 wurde ZFS auf FreeBSD portiert. Im selben Jahr wurde ein Projekt gestartet, um ZFS auf Linux zu portieren. Da ZFS jedoch unter der Common Development and Distribution License lizenziert ist, die nicht mit der GNU General Public License kompatibel ist, kann es 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 gekauft hatte, wurde OpenSolaris quellnah. Alle Weiterentwicklungen von ZFS wurden ebenfalls zu Closed Source. Viele der Entwickler von ZFS waren über diese Wendung der Ereignisse unzufrieden. Zwei Drittel der wichtigsten ZFS-Entwickler, darunter Ahrens und Bonwick, verließen Oracle aufgrund dieser Entscheidung. Sie haben sich anderen Unternehmen angeschlossen und im September 2013 das OpenZFS-Projekt ins Leben gerufen. Das Projekt hat die Open-Source-Entwicklung von ZFS vorangetrieben.

Kehren wir zum oben genannten Lizenzproblem zurück. Da das OpenZFS-Projekt von Oracle getrennt ist, fragen sich einige wahrscheinlich, warum sie die Lizenz nicht in etwas ändern, das mit der GPL kompatibel ist, damit es in den Linux-Kernel aufgenommen werden kann. Laut der OpenZFS-Website müsste zum Ändern der Lizenz jeder kontaktiert werden, der Code zur aktuellen OpenZFS-Implementierung beigetragen hat (einschließlich des anfänglichen, allgemeinen ZFS-Codes bis OpenSolaris), und er muss die Erlaubnis zum Ändern der Lizenz erhalten. Da dieser Job so gut wie unmöglich ist (da einige Mitwirkende möglicherweise tot oder schwer zu finden sind), haben sie beschlossen, die Lizenz zu behalten, die sie haben.

Was ist ZFS? Was sind seine Merkmale?

Wie ich bereits sagte, ist ZFS ein erweitertes Dateisystem. Als solches hat es einige interessante Funktionen. Sowie:

  • Poolspeicher
  • Copy-on-Write
  • Schnappschüsse
  • Überprüfung der Datenintegrität und automatische Reparatur
  • RAID-Z
  • Maximal 16 Exabyte Dateigröße
  • Maximal 256 Billiarden Zettabyte Speicher

Lassen Sie uns ein paar dieser Funktionen aufschlüsseln.

Zusammengefasster Speicher

Im Gegensatz zu den meisten Dateisystemen kombiniert ZFS die Funktionen eines Dateisystems und eines Datenträgermanagers. Dies bedeutet, dass ZFS im Gegensatz zu anderen Dateisystemen ein Dateisystem erstellen kann, das sich über mehrere Laufwerke oder einen Pool erstreckt. Darüber hinaus können Sie einem Pool Speicher hinzufügen, indem Sie ein weiteres Laufwerk hinzufügen. ZFS übernimmt die Partitionierung und Formatierung.

Poolspeicher in ZFS

Copy-on-Write

Copy-on-Write ist eine weitere interessante (und coole) Funktion. Wenn Daten in den meisten Dateisystemen überschrieben werden, gehen sie für immer verloren. In ZFS werden die neuen Informationen in einen anderen Block geschrieben. Sobald der Schreibvorgang abgeschlossen ist, werden die Metadaten des Dateisystems so aktualisiert, dass sie auf die neuen Informationen verweisen. Dies stellt sicher, dass die alten Daten erhalten bleiben, wenn das System während des Schreibvorgangs abstürzt (oder etwas anderes passiert). Dies bedeutet auch, dass das System nach einem Systemabsturz kein fsck ausführen muss.

Schnappschüsse

Copy-on-Write führt zu einer weiteren ZFS-Funktion: Snapshots. ZFS verwendet Snapshots, um Änderungen im Dateisystem zu verfolgen. „Der Schnappschuss enthält die Originalversion 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 die Snapshot-Referenz entfernt. Daher dienen Snapshots hauptsächlich dazu, Änderungen an Dateien zu verfolgen, nicht jedoch das Hinzufügen und Erstellen von Dateien.

Snapshots können schreibgeschützt bereitgestellt werden, um eine frühere Version einer Datei wiederherzustellen. Es ist auch möglich, das Live-System auf einen vorherigen Snapshot zurückzusetzen. Alle seit dem Schnappschuss vorgenommenen Änderungen gehen 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, weiß ZFS, dass ein Fehler erkannt wurde. ZFS versucht dann automatisch, den Fehler zu beheben.

RAID-Z

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

Riesiges Speicherpotential

Bei der Erstellung von ZFS wurde darauf geachtet, dass es das letzte Wort in Dateisystemen ist. Zu einer Zeit, als die meisten Dateisysteme 64-Bit waren, entschieden sich die ZFS-Ersteller, direkt auf 128-Bit umzusteigen, um es zukunftssicher zu machen. Dies bedeutet, dass ZFS „16 Milliarden Mal die Kapazität von 32- oder 64-Bit-Systemen bietet“. Tatsächlich sagte Jeff Bonwick (einer der Macher), dass die Stromversorgung eines „vollständigen Auffüllens eines 128-Bit-Speicherpools im wahrsten Sinne des Wortes mehr Energie erfordern würde, als die Ozeane zu kochen“.

Wie installiere ich ZFS?

Wenn Sie ZFS sofort verwenden möchten, müssen Sie entweder FreeBSD oder ein Betriebssystem mit dem illumos-Kernel installieren. illumos ist eine Abzweigung des OpenSolaris-Kernels.

Tatsächlich ist die Unterstützung von ZFS einer der Hauptgründe, warum sich einige erfahrene Linux-Benutzer für BSD entscheiden.

Wenn Sie ZFS unter Linux ausprobieren möchten, können Sie es nur als Speicherdateisystem verwenden. Soweit ich weiß, gibt Ihnen keine Linux-Distribution die Möglichkeit, ZFS sofort in Ihrem Root-Verzeichnis zu installieren. Wenn Sie ZFS unter Linux ausprobieren möchten, finden Sie im ZFS unter Linux-Projekt eine Reihe von Tutorials dazu.

Vorbehalt

Dieser Artikel hat die Vorteile von ZFS besungen. Lassen Sie mich nun ein kurzes Problem mit ZFS erläutern. Die Verwendung von RAID-Z kann aufgrund der Anzahl der Laufwerke, die Sie erwerben müssen, um Speicherplatz hinzuzufügen, teuer sein.

Haben Sie schon einmal ZFS verwendet? Wie war Ihre Erfahrung? Lass es uns in den Kommentaren unten wissen.

Wenn Sie diesen Artikel interessant fanden, nehmen Sie sich bitte eine Minute Zeit, um ihn auf Social Media, Hacker News oder Reddit zu teilen.

Empfohlen

Mozilla sagt, dass es das Bewusstsein für den Datenschutz schärft, indem es den Datenschutz der Benutzer verletzt
2019
Installieren Sie Android Studio einfach in Ubuntu und Linux Mint
2019
Linux Kernel 4.12 ist da! Dies sind die wichtigsten Funktionen
2019