GNU/Linux >> LINUX-Kenntnisse >  >> Linux

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

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

Obwohl ich aus den USA komme, spreche ich es lieber ZedFS statt ZeeFS aus, weil es cooler klingt. Es steht Ihnen frei, es auszusprechen, wie Sie möchten.

Hinweis:Sie werden ZFS in dem Artikel viele Male wiederholt sehen. Wenn ich über Funktion und Installation spreche, spreche ich von OpenZFS. ZFS (entwickelt von Oracle) und OpenZFS sind seit dem Herunterfahren von OpenSolaris durch Oracle unterschiedliche Wege gegangen. (Dazu später mehr.)

Geschichte von ZFS

Das Z-Dateisystem (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. 2008 wurde ZFS auf FreeBSD portiert. Im selben Jahr wurde ein Projekt zur Portierung von ZFS auf Linux gestartet. Da ZFS jedoch unter der Common Development and Distribution License lizenziert ist, die mit der GNU General Public License nicht 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 Close-Source. Auch alle Weiterentwicklungen von ZFS wurden zu Closed Source. Viele der Entwickler von ZFS waren unglücklich über diese Wendung der Ereignisse. Zwei Drittel der zentralen ZFS-Entwickler, darunter Ahrens und Bonwick, 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 angeführt.

Kommen wir noch einmal auf das oben erwähnte 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 sie in den Linux-Kernel aufgenommen werden kann. Laut der OpenZFS-Website würde eine Änderung der Lizenz beinhalten, jeden zu kontaktieren, der Code zur aktuellen OpenZFS-Implementierung beigetragen hat (einschließlich den anfänglichen, gemeinsamen ZFS-Code bis OpenSolaris) und ihre Erlaubnis einholen, die Lizenz zu ändern. Da dieser Job nahezu unmöglich ist (weil einige Mitwirkende möglicherweise tot oder schwer zu finden sind), haben sie sich entschieden, ihre Lizenz zu behalten.

Was ist ZFS? Was sind seine Funktionen?

Wie ich bereits sagte, ist ZFS ein fortschrittliches Dateisystem. Als solches hat es einige interessante Funktionen. Zum Beispiel:

  • Gepoolter Speicher
  • Copy-on-Write
  • Schnappschüsse
  • Verifizierung der Datenintegrität und automatische Reparatur
  • RAID-Z
  • Maximale Dateigröße von 16 Exabyte
  • Maximal 256 Billiarden Zettabyte Speicher

Lassen Sie uns ein paar dieser Funktionen aufschlüsseln.

Gepoolter Speicher

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

Copy-on-Write

Copy-on-Write ist ein weiteres interessantes (und cooles) Feature. Bei den meisten Dateisystemen gehen Daten beim Überschreiben für immer verloren. Bei ZFS werden die neuen Informationen in einen anderen Block geschrieben. Sobald der Schreibvorgang abgeschlossen ist, werden die Metadaten des Dateisystems aktualisiert, um auf die neuen Informationen zu verweisen. Dadurch wird sichergestellt, dass die alten Daten erhalten bleiben, wenn das System abstürzt (oder etwas anderes passiert), während der Schreibvorgang stattfindet. Es bedeutet auch, dass das System fsck nach einem Systemabsturz nicht ausführen muss.

Schnappschüsse

Copy-on-Write führt zu einer weiteren ZFS-Funktion:Snapshots. ZFS verwendet Snapshots, um Änderungen im Dateisystem nachzuverfolgen. „Der Snapshot enthält die ursprüngliche Version des Dateisystems, und das Live-Dateisystem enthält alle Änderungen, die seit der Erstellung des Snapshots vorgenommen wurden. Es wird kein zusätzlicher Speicherplatz verwendet. Wenn neue Daten in das Live-Dateisystem geschrieben werden, werden neue Blöcke zugewiesen, um diese Daten zu speichern.“ Wenn eine Datei gelöscht wird, wird auch die Snapshot-Referenz entfernt. Snapshots dienen also hauptsächlich dazu, Änderungen an Dateien nachzuverfolgen, aber nicht 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 früheren Snapshot zurückzusetzen. Alle seit dem Schnappschuss vorgenommenen Änderungen gehen verloren.

Datenintegritätsprüfung und automatische Reparatur

Immer wenn neue Daten in ZFS geschrieben werden, erstellt es eine Prüfsumme für diese Daten. Wenn diese Daten gelesen werden, wird die Prüfsumme verifiziert. Stimmt die Prüfsumme nicht überein, weiß ZFS, dass ein Fehler erkannt wurde. ZFS versucht dann automatisch, den Fehler zu beheben.

RAID-Z

ZFS kann RAID handhaben, ohne dass zusätzliche Software oder Hardware erforderlich ist. Es überrascht nicht, dass ZFS eine eigene Implementierung von RAID hat:RAID-Z. RAID-Z ist eigentlich eine Variation von RAID-5. Es soll jedoch den RAID-5-Schreiblochfehler überwinden, „bei dem die Daten- und Paritätsinformationen nach einem unerwarteten Neustart inkonsistent werden“. Um die Basisebene von RAID-Z (RAID-Z1) zu verwenden, benötigen Sie mindestens zwei Festplatten für die Speicherung und eine für die Parität. RAID-Z2 erforderte mindestens zwei Speicherlaufwerke und zwei Laufwerke für die Parität. RAID-Z3 erfordert mindestens zwei Speicherlaufwerke und drei Laufwerke 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.

Riesiges Speicherpotenzial

Als ZFS entwickelt wurde, sollte es das letzte Wort in Dateisystemen sein. Zu einer Zeit, als die meisten Dateisysteme 64-Bit waren, entschieden sich die ZFS-Entwickler, direkt auf 128-Bit zu springen, um es zukunftssicher zu machen. Damit bietet ZFS „das 16-Milliarden-fache der Kapazität von 32- oder 64-Bit-Systemen“. Tatsächlich sagte Jeff Bonwick (einer der Schöpfer), dass das Betreiben eines „vollständig gefüllten 128-Bit-Speicherpools buchstäblich mehr Energie erfordern würde, als die Ozeane zum Kochen zu bringen.“

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 ein Fork des OpenSolaris-Kernels.

Tatsächlich ist die Unterstützung für 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 als Speicherdateisystem verwenden. Kürzlich hat Ubuntu 19.10 die Möglichkeit eingeführt, ZFS standardmäßig auf Ihrem Stammverzeichnis zu installieren. Lesen Sie mehr über die Verwendung von ZFS unter Ubuntu. Wenn Sie daran interessiert sind, ZFS unter Linux auszuprobieren, bietet das Projekt ZFS unter Linux eine Reihe von Anleitungen dazu.

Achtung

Dieser Artikel hat die Vorteile von ZFS besungen. Lassen Sie mich Ihnen nun ein kurzes Problem mit ZFS mitteilen. Die Verwendung von RAID-Z kann aufgrund der Anzahl an Laufwerken, die Sie kaufen müssen, um Speicherplatz hinzuzufügen, teuer werden.

Haben Sie jemals ZFS verwendet? Wie war Ihre Erfahrung? Lass es uns unten in den Kommentaren 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.



Linux
  1. Welche Befehle fehlen in Ihrer bashrc-Datei?

  2. Wofür sind Inodes gut?

  3. Was sind die legitimen Verwendungen des Befehls „Berühren“?

  4. Was ist eine .so-Datei?

  5. Hostnamen – Was hat es damit auf sich?

Was ist umask unter Linux?

Warum sind die Leute verrückt nach Arch Linux? Was ist daran so besonders?

Was sind Inodes unter Linux?

Was ist eine .bashrc-Datei unter Linux?

Warum cPanel – Welche Funktionen enthält cPanel?

Was ist eine .sh-Datei?