Das Linux-Betriebssystem ist sehr flexibel. Es kann sowohl auf Desktops als auch auf Servern verwendet werden. Das Wichtigste ist, das richtige Dateisystem für Ihre Bedürfnisse auszuwählen. In diesem Artikel werden wir uns ausführlich mit dem ZFS-Dateisystem befassen.
Inhalt
- Was ist ein ZFS-Dateisystem?
- Geschichte der Entwicklung des ZFS-Dateisystems
- ZFS-Dateisystemstruktur
- Die Funktionen des ZFS-Dateisystems
- Nachteile des ZFS-Dateisystems
- Datensicherheit in ZFS
- ZFS und Mac OS
- Die besten Alternativen zum ZFS-Dateisystem
Was ist ein ZFS-Dateisystem?
Die Hauptaufgabe der Entwickler des ZFS-Dateisystems bestand darin, ein modernes Dateisystem zu schaffen, das mit riesigen Datenmengen arbeiten kann. Gleichzeitig sollte die Leistung nicht beeinträchtigt werden und das ZFS-Dateisystem alle modernen Funktionen aufweisen.
Sun Microsystems wollte für ihr Betriebssystem Solaris einen neuen Dateisystemtyp schaffen, der seiner Zeit voraus sein würde. Deshalb wurden viele Innovationen wie die Datenlayoutstruktur, Pooling-Unterstützung und mehr integriert.
Sogar das Konzept eines ZFS-Dateisystems war innovativ – ZFS musste einen logischen Volumenmanager enthalten, eine bequeme Volumenverwaltung bieten und sich an leichte Dateisystemprinzipien halten. Zusätzlich sollte ZFS Redundanz bieten.
Im Jahr 2005 stellte das Entwicklungsteam unter der Leitung von Matthew Arena und Jeff Bonwick ein Dateisystem vor, das all diesen Anforderungen entsprach.
ZFS ist sehr schnell, technologisch innovativ und effektiv. Außerdem ist es 128-Bit anstelle der üblichen 64-Bit. Auf diese Weise legten die Entwickler einen großen Schwerpunkt auf seine Relevanz in der Zukunft.
ZFS konnte viele Lösungen zusammenführen, die in anderen Dateisystemen isoliert verwendet werden. Zum Beispiel verwendet ZFS irgendwie LVM (Volume Manager), Linux RAID (wenn auch etwas modifiziert), einige XFS-Funktionen, Snapshots und mehr. Wenn Sie mehr Informationen über Linux RAID erfahren möchten, lesen Sie den Artikel „RAID – was ist es und welche Art ist besser zu verwenden„.
Die Technologie LVM wird im Artikel „LVM – was es ist, Vorteile und Nachteile“ ausführlich beschrieben.
Nicht unerwähnt bleiben darf, dass das ZFS-Dateisystem die Copy-on-Write-Technologie verwendet. Das bedeutet, dass beim Überschreiben einer Datei diese nicht physisch neu geschrieben wird. Stattdessen wird ein neuer Block zugewiesen und eine neue Kopie wird darin geschrieben. Anschließend wird anstelle des Löschens der alten Dateien die Metadaten aktualisiert, die auf den neuen Block verweisen, und die ursprünglichen Informationen werden nur gelöscht, wenn nicht genügend Speicherplatz vorhanden ist. Eine solche Lösung erhöht die Datenwiederherstellungsfähigkeiten erheblich, da Sie immer die vorherige Version der Dateien anzeigen können, falls die Informationen beschädigt sind.
Durch die Verwendung der Copy-on-Write-Methode können Sie vollständig auf das Journaling verzichten und dennoch in der Lage sein, verlorene Daten wiederherzustellen.
All diese Vorteile und das große Potenzial von ZFS sind der Grund, warum so viele Menschen immer noch darüber sprechen.
Geschichte der Entwicklung des ZFS-Dateisystems
Nach der Veröffentlichung des ZFS-Dateisystems wurde der Quellcode in den Kernel des Betriebssystems Solaris integriert. Im selben Jahr begann die Portierung auf andere Betriebssysteme und bis 2008 wurde ZFS auf FreeBSD portiert. Danach begann die Portierung von ZFS auf Linux. Der Portierungsprozess wurde jedoch durch die Änderung der Lizenz auf die CDDL (Common Development and Distribution License) erschwert. Obwohl sie auf den Prinzipien der freien Softwareverteilung basiert, ist sie mit den Prinzipien der GNU/Linux-Lizenz unvereinbar. Die Portierung wurde abgeschlossen, aber im Linux-Betriebssystem kann ZFS nur sehr eingeschränkt verwendet werden. Um dieses Problem zu lösen, bieten moderne Linux-Distributionen Methoden zur Installation von ZFS an. Der Benutzer installiert zunächst die gewünschte Linux-Distribution und verwendet dann die vorgeschlagene Methode zur Installation des ZFS-Dateisystems.
Die effektivsten Methoden zur Installation von ZFS unter Linux sind die Verwendung des FUSE-Moduls oder die Installation eines separaten ZFS-on-the-Linux-Kernel-Moduls.
Kurz darauf erwarb Oracle Sun Microsystems zusammen mit allen Lizenzen und schloss den ZFS-Code. Eine weitere freie Entwicklung war somit nicht mehr möglich. Dies führte dazu, dass viele wichtige Entwickler zu anderen Unternehmen wechselten und das OpenZFS-Projekt gründeten, das dem Konzept der freien Entwicklung folgt.
Die Lizenz wurde jedoch nie geändert, da viele ZFS-Entwickler das Urheberrecht daran hatten. Es war daher einfacher, die von den Linux-Distributionen vorgeschlagenen Methoden zu verwenden, anstatt von jedem Entwickler eine Genehmigung einzuholen.
Derzeit gibt es 37 Versionen des ZFS-Dateisystems, von denen jede neue Verbesserungen enthält.
Es ist auch erwähnenswert, dass das ZFS-Dateisystem aktiv weiterentwickelt wird. Seine technische Perspektive, gepaart mit kontinuierlichen Leistungs- und Funktionsverbesserungen, kann ZFS in den kommenden Jahren zum Nummer-1-System für Serversysteme machen.
ZFS-Dateisystemstruktur
Die Struktur des ZFS-Dateisystems ist als Merkle-Baum oder Hash-Baum organisiert. Es ist erwähnenswert, dass der Hash-Baum in der Kryptowährungs-Blockchain (z.B. bei Bitcoin oder Ethereum) verwendet wird. Tatsächlich ist das ZFS-Dateisystem ein Festplatten-Manager und LVM in einem Paket.
Das bedeutet, dass auf der untersten Ebene mehrere physische Festplatten zu einer virtuellen Gruppe – VDEV (Virtual Device) – kombiniert werden. Es können eine große Anzahl solcher Gruppen vorhanden sein. Auch auf dieser Ebene wird Redundanz bereitgestellt. Die Parität wird innerhalb jeder Festplattengruppe durchgeführt. Es ist möglich, Mirror (Analogon von RAID-1) oder RAID-Z (funktioniert nach dem Prinzip von RAID-5 mit mehreren Modifikationen) zu wählen. Letzterer Typ ist in mehrere Ebenen unterteilt: RAID-Z1 – verwendet zwei Festplatten für die Datenspeicherung und eine Festplatte für Paritätsdaten, RAID-Z2 – verwendet zwei Festplatten für die Datenspeicherung und zwei Festplatten für Paritätsdaten, und RAID-Z3 – verwendet zwei Festplatten für Benutzerdaten und drei Festplatten für Paritätsdaten. Der Typ RAID-Z wird je nachdem gewählt, was der Benutzer mehr benötigt – Zuverlässigkeit oder Leistung.
Dann werden alle VDEVs (Gruppen von Festplatten) zu einem gemeinsamen Pool kombiniert. Dies ist ein LVM, der mehrere RAID-Arrays kombiniert.
Auf dieser Struktur befindet sich das Dateisystem selbst mit Benutzerdaten.
Die Struktur des ZFS-Dateisystems ermöglicht das Hinzufügen neuer Festplattengruppen dynamisch, und jede Gruppe kann ihre eigene Konfiguration haben. Auf der Softwareebene wird es als separates VDEV behandelt, unabhängig von der Konfiguration.
Die Funktionen des ZFS-Dateisystems
In diesem Teil des Artikels werden wir uns die interessantesten Funktionen des ZFS-Dateisystems ansehen und erklären, warum es so beliebt ist.
Die Entwickler haben eine Vielzahl nützlicher Funktionen in ZFS implementiert, von denen die wichtigsten folgende sind:
1) Die maximale schreibbare Dateigröße wurde erheblich erhöht – sie beträgt jetzt 16 Exbibytes;
2) Die maximale Größe eines Volumes beträgt 256 Zebibytes, und die Anzahl solcher Volumes kann beliebig sein;
3) ZFS ist ein 128-Bit-Dateisystem – in der Praxis bedeutet dies, dass es die Kapazität von 16 Millionen 32- oder 64-Bit-Systemen bietet. Es ist also fast unmöglich, einen solchen 128-Bit-Pool zu füllen. Einer der Schöpfer von ZFS, Jeff Bonwick, scherzte sogar darüber. Er sagte, dass es mehr Energie benötigt, um einen Pool dieser Größe zu betreiben, als den Ozean zum Kochen zu bringen;
4) Snapshots werden zur Überwachung des Systemzustands verwendet – der Snapshot zeichnet den ursprünglichen Zustand des Dateisystems und den Zustand zum Zeitpunkt der Erstellung auf. Wenn eine Datei aus dem System gelöscht wird, wird sie auch aus dem Snapshot gelöscht. Beim Schreiben neuer Informationen werden neue Blöcke hervorgehoben. Das Hauptmerkmal ist, dass Sie keinen zusätzlichen Platz für Snapshots benötigen;
5) Überprüfung der Datenintegrität und automatische Datenkorrektur – jedes Mal, wenn neue Daten geschrieben werden, erstellt das Dateisystem eine Checksumme dafür. Beim Lesen werden die Checksummen verglichen. Wenn es eine Diskrepanz gibt, markiert das Dateisystem den Fehler und versucht automatisch, ihn zu beheben;
6) Mindestens zwei Kopien von Checksummen für Metadaten – normalerweise befinden sie sich an verschiedenen Orten für mehr Sicherheit;
7) Hohe Komprimierungsgeschwindigkeit im laufenden Betrieb – vieles hängt vom Algorithmus ab. Wenn Sie beispielsweise den LZ4-Algorithmus verwenden, erreicht ZFS problemlos eine Schreibgeschwindigkeit von 800 MB/s pro Kern und eine Lesegeschwindigkeit von mindestens 4,5 GB/s.
8) Atomarität – das ZFS-Dateisystem ist atomar aufgrund des Merkle-Baums. Die Blockintegrität wird durch die transaktionale Natur des Dateisystems garantiert. Diese Lösung ermöglicht es Ihnen, das WAL-Log nicht zu verwenden. Der Nachteil dieser Lösung besteht darin, dass Sie viele Befehle und Dienstprogramme kennen müssen;
9) Unterstützung von Pooling – Festplatten können zu VDEV-Gruppen zusammengefasst werden, die wiederum zu Pools zusammengefasst werden können;
10) Höchste Leistung – ZFS kann mit Hunderten von Pools (nicht Festplatten, sondern Pools) ohne Leistungsverlust arbeiten;
11) Die Möglichkeit, ein leichtgewichtiges Dateisystem zu erstellen – in ZFS ist die Manipulation des Dateisystems einfacher als in anderen Dateisystemen. Alle Manipulationen ähneln mehr der Arbeit mit Verzeichnissen als mit einem Dateisystem;
12) Dank der Copy-on-Write-Methode – werden Sie beim Schreiben auf die Festplatte niemals eine Datei verlieren;
13) Automatisch erweiterbarer Datenübertragungskanal – wenn Sie zusätzliche Festplatten anschließen, müssen Sie die Bandbreite erhöhen, sonst wird die Leistung abnehmen. ZFS hat dies berücksichtigt. Wenn Sie also neue VDEVs anschließen, konfiguriert das Dateisystem die Festplatten automatisch und erweitert den Datenkanal;
14) Die Möglichkeit, die Arbeit mit Daten zu planen – diese Funktion wird auf Servern nützlich, zum Beispiel. Wenn es „CPU-Downtime“ gibt, können Sie diese Ressourcen nutzen, um mit Daten zu arbeiten. Auf diese Weise können Sie die Hardware-Ressourcen auf Ihrem Computer effizienter nutzen.
Wie Sie sehen können, ist ZFS ein sehr leistungsfähiges Dateisystem, und wir haben noch nicht alle feinen Funktionen erwähnt, die es so nützlich machen. Aber am wichtigsten ist – mit ZFS können Sie ein riesiges, schnelles und erweiterbares lokales Speichersystem erstellen.
Nachteile des ZFS-Dateisystems
Im vorherigen Abschnitt dieses Artikels haben wir uns die wichtigsten Vorteile des ZFS-Dateisystems angesehen. Jetzt ist es an der Zeit, über seine Nachteile zu sprechen, von denen es auch ziemlich viele gibt:
- Nicht besonders schnell auf Festplatten – aufgrund seiner Struktur erfordert ZFS schnellen zufälligen Zugriff, den Festplatten nicht aufweisen können. Entsprechend kann die Leistung abnehmen, wenn die Anzahl der Festplatten zunimmt. Es gab Fälle, in denen die Leistung eines Heimcomputers mit einer nicht besonders schnellen Festplatte so stark abgenommen hat, dass es unerträglich war, den Computer zu benutzen. Daher kann das volle Potenzial nur auf SSD-Laufwerken erreicht werden;
- Notwendigkeit, eine große Anzahl von Befehlen und Dienstprogrammen zu kennen – um die maximale Wirkung zu erzielen, müssen Sie in der Lage sein, mit diesem Dateisystem in seiner Sprache zu „kommunizieren“;
- Unfähigkeit, die Festplattenstruktur in VDEV zu ändern – Sie können jede VDEV-Disk-Gruppe nur einmal konfigurieren (Anzahl der Festplatten, Redundanz usw.). Es ist nicht möglich, Änderungen vorzunehmen, nachdem die Konfiguration angewendet wurde. Derzeit wird ein Patch entwickelt, der dieses Problem beheben kann;
- Notwendigkeit einer großen Menge an RAM – obwohl die Mindestanforderungen mindestens 4 GB RAM angeben, ist es in der Praxis am besten, mindestens 8 GB oder mehr zu verwenden.
- Hoher Grad an Datenfragmentierung – tritt aufgrund der Besonderheiten des Dateisystems auf. Derzeit gibt es keinen normalen Defragmentierer;
- Unmöglichkeit, die Anzahl der VDEVs zu reduzieren – eine Lösung für dieses Problem ist bald geplant;
- Fehlende Quotenverteilung zwischen den Benutzern – derzeit wird dieses Problem durch die Erstellung eines Dateisystems unterschiedlicher Größe für jeden Benutzer gelöst;
- Sie können VDEV und ZPOOL nicht mischen – das heißt, Sie können kein RAID 10 oder RAID 01-Gegenstück erstellen, da die Redundanz nur auf einer niedrigeren Ebene innerhalb jeder VDEV-Disk-Gruppe organisiert werden kann;
- Erhebliche Leistungsverschlechterung, wenn große Datenmengen gelöscht werden;
- Erhöhte Belastung des Prozessors bei Verwendung von RAID Z – tritt aufgrund der Notwendigkeit auf, die Paritätsdaten zu berechnen. Dies ist auch bei Software-RAID 5 der Fall. RAID 5 wird jedoch in der Regel in kleineren Speichern verwendet. ZFS-Speicher sind oft sehr groß, daher muss die Hardware sehr leistungsstark sein;
Trotz all dieser Nachteile gibt es derzeit kein Dateisystem, das große Speicher so effektiv verwalten kann. Und angesichts der aktiven Entwicklung von ZFS wird der Grund für seine Beliebtheit klar.
Datensicherheit in ZFS
Das ZFS-Dateisystem legt nicht nur großen Wert auf die Arbeit mit großen Datenmengen, sondern auch auf deren Sicherheit. Es wäre sicherlich nicht sehr angenehm, wenn die Daten eines Pools von hundert Festplatten aufgrund eines einzigen Festplattenausfalls plötzlich verschwinden würden.
Eine Methode zum Schutz der Daten ist die Implementierung von RAID Z. Wie oben erwähnt, basiert diese Technologie auf RAID 5. Wenn eine Festplatte ausfällt, können Sie einfach die defekte Festplatte herausziehen und eine neue einsetzen. Hauptsache, sie hat die gleiche Größe. Das Dateisystem erledigt den Rest. Der Benutzer bemerkt nur eine leichte Leistungsverschlechterung, die durch die Neuberechnung des Algorithmus zur Wiederherstellung der Daten auf der neuen Festplatte verursacht wird.
Das ZFS-Dateisystem analysiert automatisch seinen Zustand, indem es Snapshots vergleicht. Wenn ein Problem auftritt, wird ZFS den Fehler beheben, und wenn das nicht möglich ist, wird eine Meldung angezeigt. In jedem Fall können Sie die Daten wiederherstellen. Das liegt daran, dass alle ZFS auf der „Copy-on-Write“-Methode basieren. Wenn Daten überschrieben werden, werden neue Daten in einem neuen Block geschrieben, ohne die alten Daten zu ändern.
Es verhindert auch den Datenverlust aufgrund von Stromausfällen während der Bearbeitung der Datei.
SHA-256 ist eine weitere Technologie, die die Daten vor Verlust schützt. Das Dateisystem generiert automatisch eine Prüfsumme, wenn die Datei geschrieben wird, und berechnet die Prüfsumme neu, wenn die Datei kopiert wird. Wenn es Unterschiede bei der Überprüfung gibt, erkennt ZFS sofort die Fehler.
Die Verwendung der oben genannten Technologien reduziert die Chance auf Datenverlust oder -beschädigung erheblich. Dies ist ein weiterer Grund, warum viele große Projekte auf das ZFS-Dateisystem setzen.
ZFS und Mac OS
Im Jahr 2009 kündigte Apple an, dass es das ZFS-Dateisystem auf Mac OS portieren würde. Leider wurde der Portierungsprozess nicht abgeschlossen, und bis zur Vorstellung der neuen Version von Mac OS waren alle Verweise auf ZFS entfernt worden. Die Gründe für die Ablehnung von ZFS wurden nicht bekannt gegeben.
Da Windows mit Abstand das beliebteste System der Welt ist, wird es früher oder später notwendig, eine ZFS-Festplatte in Windows zu öffnen. Die Gründe dafür können von einfachem Dateitransfer bis hin zu spezialisierten Aufgaben reichen.
In jedem Fall unterstützt das Windows-Betriebssystem ZFS nicht von Haus aus, da die nativen Windows-Dateisysteme NTFS und FAT (16, 32) sind.
Aber was ist, wenn Sie eine ZFS-Festplatte in Windows öffnen müssen?
Es gibt mehrere Möglichkeiten, dies zu tun.
Der erste Weg ist die Verwendung von RS Partition Recovery. Das Programm ist einfach zu bedienen und ermöglicht es Ihnen, sofort mit den Daten auf der ZFS-Festplatte zu arbeiten. Sie müssen nicht einmal Ihren Computer neu starten.
Aber am wichtigsten ist, dass Sie verlorene Daten wiederherstellen können, wenn sie verloren gegangen sind, die Dateistruktur der Festplatte beschädigt ist oder die Festplatte formatiert wurde. Die Wiederherstellungsfunktion macht RS Partition Recovery von der Konkurrenz abheben, da Windows oft nicht korrekt mit dem ZFS-Dateisystem arbeitet. Dies kann zum Verlust wichtiger Daten führen.
Es ist auch erwähnenswert, dass RS Partition Recovery ALLE modernen Dateisysteme unterstützt, einschließlich Btrfs, Ext2,3,4, XFS, HFS, UFS und vielen anderen.
All diese Funktionen von RS Partition Recovery machen es zu einem „Must-have“-Programm für jeden Benutzer.
Der zweite Weg ist die Installation eines speziellen Treibers namens ZFSin.
Dieser Treiber fügt die Unterstützung von ZFS auf nativer Ebene hinzu. Aber die Dinge sind nicht so rosig, wie sie auf den ersten Blick aussehen.
Tatsache ist, dass der ZFSin-Treiber oft mit Betriebssystemtreibern in Konflikt gerät. Aber das Traurigste ist, dass dies fast immer zu einem Windows Blue Screen of Death oder Betriebssystemabsturz führt.
Zusätzlich besteht, wenn Ihr ZFS-Flash-Laufwerk während eines Treiberkonflikts in das System eingesteckt ist, eine hohe Wahrscheinlichkeit, dass die Daten oder die logische Struktur des Laufwerks beschädigt werden.
So enden Sie anstatt Unterstützung von ZFS unter Windows sehr wahrscheinlich mit einem nicht funktionsfähigen Betriebssystem. Das ist der Grund, warum der erste Weg dem zweiten vorzuziehen ist.
Die besten Alternativen zum ZFS-Dateisystem
Wenn Sie nach Analyse aller Vor- und Nachteile nicht sicher sind, ob Sie ZFS verwenden möchten oder nicht viele Befehle lernen möchten, können Sie die besten Alternativen zu diesem Dateisystem in Betracht ziehen.
Wenn wir über Alternativen für den Heimgebrauch sprechen, ist die beste Alternative die Verwendung von Ext4. Ja, es ist langsamer als ZFS und hat nicht viele moderne Funktionen.
Aber gleichzeitig ist es robust und einfach zu verwalten und kann für die meisten Benutzer ausreichende Leistung bieten.
Wenn es um die Verwendung auf einem Server geht, ist die beste Alternative das Btrfs-Dateisystem. Wie ZFS befindet es sich noch in der intensiven Entwicklung, ist jedoch einfacher zu warten und schnell genug, um damit umzugehen. Die Nachteile von Btrfs sind sein unreifes Ökosystem und die relativ geringe Datenmenge, die es im Vergleich zu ZFS verarbeiten kann.
Die Wahl eines Dateisystems hängt vollständig von den Bedürfnissen und Fähigkeiten des Benutzers ab. Wir haben Ihnen nur die Stärken und Schwächen von ZFS gezeigt und hoffen, dass wir Ihnen bei der richtigen Wahl geholfen haben.