ZFS-Dateisystem in Linux Ubuntu: Struktur, Vor- und Nachteile
ZFS-Dateisystem in Linux Ubuntu. Was sind die Merkmale seiner Struktur, Vor- und Nachteile, lassen Sie es uns gemeinsam in unserem Artikel herausfinden.
- Vorteile von ZFS
- Beschränkungen von ZFS
- Installieren von ZFS in Ubuntu
- Wie man ein RAIDz aufbaut
- Wie man ZFS-Snapshots erstellt, zurücksetzt und löscht
- Übertragen und Abrufen von ZFS
- ZFS-Datenkomprimierung
- Schlussfolgerung
- Fragen und Antworten
- Bemerkungen
Das ZFS oder Zettabyte File System ist ein Dateisystem, das ursprünglich von Sun Microsystems für das Betriebssystem Solaris entwickelt wurde. Es unterstützt große Datenmengen, kombiniert die Konzepte eines Dateisystems, eines logischen Festplattenmanagers und physischer Medien sowie eine einfache Verwaltung von Speichervolumes.
Es ist das Dateisystem der nächsten Generation, das ursprünglich für NAS-Lösungen mit verbesserter Sicherheit, Zuverlässigkeit und Leistung entwickelt wurde. Im Gegensatz zu anderen Systemen ist ZFS ein 128-Bit-Dateisystem, das praktisch unbegrenzte Speicherkapazität bietet. ZFS ist ein Open-Source-Projekt und steht unter der CDDL-Lizenz (CommonDevelopmentandDistributionLicense).
Merkmal | Beschreibung |
---|---|
Unterstützung großer Datenmengen | ZFS unterstützt extrem große Datenmengen und ermöglicht die Speicherung von bis zu Exabytes an Informationen. |
Integration von Dateisystem und Volumenverwaltung | Vereint Dateisystem und Volumenmanager und sorgt für eine vereinfachte Verwaltung des Speicherplatzes. |
Sofortige Snapshots | Ermöglicht die Erstellung von Snapshots des Dateisystems zur schnellen Datenwiederherstellung ohne signifikante Ressourcenauslastung. |
Schutz vor Datenbeschädigung | Integrierte Mechanismen zur Überprüfung der Datenintegrität durch Prüfziffern zur Vermeidung von Beschädigungen. |
Datenredundanz (RAID-Z) | Bietet verschiedene Ebenen des Datenschutzes durch integrierte RAID-Z-Funktionen zum Schutz vor Verlusten. |
Datenkompression | Bietet effektive Datenkompression, um Speicherplatz zu sparen. |
Klonen von Dateisystemen | Ermöglicht das Erstellen von geklonten Kopien direkt aus Snapshots für Tests oder Entwicklungen. |
Verschlüsselung | Unterstützt die Verschlüsselung von Daten zum Schutz sensibler Informationen. |
Um «das ZFS-Dateisystem» verwenden zu können, müssen Sie entweder FreeBSD oder ein Betriebssystem installieren, das den illumos-Kernel verwendet, einen Ableger des Open Solaris-Kernels.
Wenn Sie ZFS in Ubuntu verwenden möchten, müssen Sie die Unterstützung manuell hinzufügen, was mit ein paar Befehlen leicht zu bewerkstelligen ist. Wir werden später darauf zurückkommen, aber jetzt wollen wir uns erst einmal die Vor- und Nachteile des Dateisystems ansehen.
Vorteile von ZFS
Zu den Vorteilen des ZFS-Dateisystems gehören die folgenden
Vorteile. Sie hat die Verwaltung vereinfacht
Volume-, RAID- und Dateisystemverwaltung sind hier vereint. Sie benötigen nur wenige Befehle, um Volumes, Redundanzstufen, Dateisysteme, Komprimierung, Einhängepunkte usw. zu erstellen.
Es erleichtert auch die Überwachung, da zwei oder sogar drei kleinere Ebenen zu sehen sind.
Vorteile. Der nächste Vorteil ist die Gewährleistung der Datenintegrität
Wenn Daten geschrieben werden, wird eine Prüfsumme berechnet und mitgeschrieben. Später, wenn die Daten ausgelesen werden, wird die Prüfsumme erneut berechnet. Wenn die geschriebene Prüfsumme und die gelesenen Daten nicht übereinstimmen, wird ein Fehler festgestellt. Das System wird dann versuchen, einen solchen Fehler automatisch zu korrigieren.
ZFS lässt sich außerdem gut skalieren, da neue Geräte hinzugefügt, der Cache verwaltet werden kann usw.
Vorteile. Kopierfunktion beim Schreiben
In den meisten Dateisystemen sind die Daten nach dem Überschreiben für immer verloren. In ZFS hingegen werden neue Informationen in einen anderen Block geschrieben.
Die Metadaten des Dateisystems werden dann nach Abschluss des Schreibvorgangs mit den neuen Informationen aktualisiert. Dies führt dazu, dass die alten Daten im Falle eines Systemabsturzes oder eines anderen bösartigen Ereignisses erhalten bleiben.
Vorteile. Er verfügt über integrierte Aufbewahrungsfunktionen
Replikation – der Prozess der Erstellung einer Kopie von etwas.
-
Bei der Deduplizierung handelt es sich um einen Prozess, der redundante Kopien von Daten eliminiert und die Speicherbelastung reduziert.
Die Komprimierung ist eine Option, die Speicherplatz spart und die Geschwindigkeit erhöht, indem sie die Anzahl der für die Darstellung der Daten erforderlichen Bits reduziert.
-
Schnappschüsse – eine Reihe von Referenzmarkierungen für Daten zu einem bestimmten Zeitpunkt.
-
Und Klone – eine identische Kopie von etwas.
Beschränkungen von ZFS
Aber wie jedes Dateisystem hat auch ZFS seine Schwächen.
Beschränkungen. ZFS leidet unter schlechter Leistung, wenn es zu 80 % oder mehr ausgelastet ist
Dies ist ein häufiges Problem bei Dateisystemen. Wenn ein Pool zu 80% ausgelastet ist, müssen Sie entweder den Pool erweitern oder auf mehr Speicherplatz migrieren.
Beschränkungen. Es gibt keine Möglichkeit, den Pool zu verkleinern
Sie können keine Geräte oder vdevs aus dem Pool entfernen, sobald sie hinzugefügt wurden.
Beschränkungen. ZFS hat auch Einschränkungen bei der Änderung der Art der Redundanz
Mit Ausnahme der Umwandlung eines einzelnen Festplattenpools in einen Spiegelungspool können Sie den Redundanztyp nicht ändern. Wenn Sie sich für eine Redundanzart entschieden haben, besteht die einzige Lösung darin, diese zu zerstören und eine neue zu erstellen, indem Sie die Daten von Sicherungskopien oder einem anderen Ort wiederherstellen.
Installieren von ZFS in Ubuntu
Lassen Sie uns nun einen Blick darauf werfen, wie man ZFS in einem Linux-Betriebssystem am Beispiel von Ubuntu Version 20.04 installiert.
Für die Installation benötigen wir ein Terminal, das wir mit der Tastenkombination” Strg”+”Alt”+”T” starten.
Führen Sie dann den folgenden Befehl aus
$ sudoaptupdate
um nach Anwendungsupdates zu suchen Nach der Eingabe des Befehls fragt das System nach einem Passwort, geben Sie das Root-Passwort ein und drücken Sie die Eingabetaste (Enter).
Geben Sie den folgenden Befehl zur Installation ein:
$ sudoaptinstallzfsutils-linux
Nachdem Sie den Installationsbefehl ausgeführt haben, geben Sie zur Bestätigung «y» ein und drücken die Eingabetaste (Enter). Dadurch wird der Installationsvorgang des Softwarepakets gestartet.
Um die ZFS-Installation zu überprüfen, führen Sie den folgenden Befehl aus:
$ zfs –version
Das Ergebnis ist die Ausgabe der Softwareversion. Sie können nun einen Speicherpool mit dem virtuellen Gerät vdev erstellen.
Ein Speicherpool (Storagepool) ist eine Gruppe von einem oder mehreren virtuellen Geräten, auf denen Daten gespeichert werden. Der ZFS-Pool, oder Zpool, dient als Datencontainer auf höchster Ebene im gesamten ZFS-System. Es wird verwendet, um ein oder mehrere Dateisysteme (Datasets) oder Blockgeräte (Volumes) zu erstellen. Diese Dateisysteme und Blockgeräte teilen sich den verbleibenden Pool-Speicherplatz. Die Partitionierungs- und Formatierungsvorgänge werden vom ZFS-System durchgeführt.
Ein virtuelles Gerät (vdev) kann aus einem oder mehreren physischen Geräten bestehen. Es kann ein Pool oder ein Teil eines Pools sein und einen Redundanzgrad von Mirror, Triple Mirror, RAIDZ, RAIDZ-2 oder RAIDZ-3 haben.
RAID-Z ist eine Implementierung eines modifizierten RAID-5. In ZFS ist er in der Lage, Fehler und Schreiblücken zu beseitigen, die im ursprünglichen RAID-5 auftreten. RAID-Z1 erfordert mindestens drei Festplatten für den Betrieb: zwei Festplatten für die Speicherung und eine für die Parität.
RAID-Z2 erfordert zwei Festplatten für die Speicherung und zwei für die Parität.
RAID-Z3 - mindestens zwei Laufwerke und drei Laufwerke für Parität.
Wie man ein RAIDz aufbaut
Schauen Sie sich nun an, wie man ein RAID-Z von Laufwerken erstellt. Der erste Schritt besteht darin, die Laufwerke zu bestimmen, die für den Aufbau des Arrays verwendet werden sollen.
Um die eingebundenen Laufwerke zu überprüfen und festzustellen, welche benötigt werden, verwenden Sie fdisk. Führen Sie den folgenden Befehl aus, um eine Liste der Laufwerke zu erstellen:
$ sudofdisk -l
Daraufhin wird eine Liste von Festplatten mit detaillierten Informationen zu jeder Festplatte angezeigt.
Ich zeige Ihnen zum Beispiel, wie Sie RAIDZ Level 1 aufbauen, das ein Analogon zu RAID5 mit einer Paritätsplatte ist. So kann das Array weiterlaufen, ohne dass Daten verloren gehen, wenn ein Laufwerk ausfällt.
Ich habe drei Festplatten /dev/sdd, /dev/sde und /dev/sdf. Ich werde einen Pool namens zdata erstellen. Dazu werde ich den folgenden Befehl ausführen:
$ sudozpoolcreate ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf
$ sudozpoolcreatezdataraidz /dev/sdd /dev/sde /dev/sdf
Wenn ein Fehler auftritt, können Sie nach zpoolcreate einen Befehl mit dem Parameter -f ausführen, der den Befehl erzwingt.
$ sudozpoolcreate -f ith2-zfs-raid-1p zdata /dev/sdd /dev/sde /dev/sdf
Um den Einhängepunkt nach der Erstellung des Pools herauszufinden, führen Sie den Befehl df -h aus:
$ df –h
Aus der Ausgabe geht hervor, dass der Pool in /zdata eingehängt ist. Um den Einhängepunkt für den Pool zu ändern, verwenden Sie die folgende Syntax.
$ sudozfssetmountpoint =<path> <pool_name>
In diesem Beispiel habe ich /var/pool als neuen Einhängepunkt verwendet.
$ sudozfssetmountpoint=/var/poolzdata
Überprüfen Sie den neuen Punkt:
$ df –h
Sie können Verzeichnisse im Speicherpool erstellen. Für das Beispiel werde ich ein Verzeichnis namens mydata erstellen
$ sudozfscreatezdata/mydata
Und um alle ZFS-Speicherpools auf dem System anzuzeigen, führen Sie diesen Befehl aus:
$ zpoollist
Und um die Konfiguration und den Status jedes Geräts im ZFS-Pool zu erfahren, führen Sie den Befehl status aus.
$ zpoolstatus
Um Ereignisse anzuzeigen und Probleme zu beheben, geben Sie den folgenden Befehl ein
$ sudozpooleventszdata –v
Um eine weitere Festplatte zum ZFS-Speicherpool hinzuzufügen, führen Sie den Befehl mit dem Namen der hinzuzufügenden Festplatte aus.
$ sudozpooladdzdata /dev/sdb
Nachdem Sie das Laufwerk hinzugefügt haben, sehen Sie den Status des Pools:
$ zpoolstatus
Um den ZFS-Speicherpool zu entfernen, führen Sie den folgenden Befehl aus.
$ sudozpooldestroyzdata
Wie man ZFS-Snapshots erstellt, zurücksetzt und löscht
Mit diesem Dateisystem können Sie einen Snapshot Ihres Pools erstellen.
Ein Snapshot ist eine schreibgeschützte Kopie des Dateisystems, die zu einem bestimmten Zeitpunkt erstellt wird. Sie können Snapshots von ganzen Datensätzen oder Pools erstellen. Der Snapshot enthält die ursprüngliche Systemversion des Dateisystems zusammen mit allen Änderungen, die nach der Erstellung des Snapshots vorgenommen wurden. Einfach ausgedrückt, wird beim Erstellen eines Snapshots eine differentielle schreibgeschützte Kopie erstellt.
Der Befehl zum Erstellen eines Schnappschusses lautet zfssnapshot, gefolgt vom Namen des Schnappschusses. In diesem Beispiel habe ich zdata/mydata verwendet, um den Snapshot zu erstellen.
$ sudozfssnapshotzdata/mydata@snap1
Um den Snapshot zu überprüfen, führen Sie den folgenden Befehl aus:
$ zfslist -t snapshot
Falls erforderlich, kann der Snapshot umbenannt werden
sudozfsrenamezdata/mydata@snap1 zdata/mydata@snap2
Sie können Änderungen rückgängig machen, indem Sie eine Snapshot-Rückgängig-Operation durchführen. Beachten Sie, dass dabei alle Änderungen seit der Erstellung des Snapshots verloren gehen.
Um zum gewünschten Snapshot zurückzukehren, müssen Sie den Befehl zfsrollback mit dem Namen des gewünschten Snapshots ausführen. Dadurch werden alle Änderungen, die nach dem Snapshot in dem Verzeichnis vorgenommen wurden, rückgängig gemacht.
$ sudozfsrollbacktest-pool/mydata@snap1
Mit diesem Befehl wird das System auf das richtige Datum zurückgesetzt.
Nach Abschluss des Rollbacks können Sie prüfen, ob sich im Verzeichnis gelöschte Post-Snap-Dateien befinden.
Übertragen und Abrufen von ZFS
Schnappschüsse können in einer Datei gespeichert und zurückgeschickt werden, was sich hervorragend für die Erstellung von Sicherungskopien oder Senden von Kopien über ein Netzwerk (z. B. über ssh) zur Replikation eines Dateisystems eignet.
Der Befehl -send sendet einen Schnappschuss des Dateisystems, der an eine Datei oder an einen anderen Rechner in einem Thread weitergeleitet werden kann. Der Befehl -receive nimmt einen solchen Stream entgegen und schreibt eine Kopie des Schnappschusses zurück in das ZFS-Dateisystem.
Erstellen Sie zum Beispiel einen weiteren Snapshot und speichern Sie ihn mit dem folgenden Befehl in einer Datei:
sudozfssnapshot -r zdata/mydata@snap3
sudozfssendzdata/mydata@snap2> ~/mydata-snap.zfs
Und dann kehren Sie es um, indem Sie einen Befehl wie diesen ausführen:
sudozfsreceive -F zdata/mydata-copy< ~/mydata-snap.zfs
Zusätzliche Skripte können verwendet werden, um die automatische Erstellung und Rechtfertigung von Snapshots einzurichten, z. B. auf einem Server mit dem ssh-Protokoll.
ZFS-Datenkomprimierung
Und wie bereits erwähnt, ermöglicht ZFS die automatische Komprimierung von Daten. In Anbetracht der Leistung moderner Prozessoren ist dies eine nützliche Option, da eine geringere Datengröße bedeutet, dass weniger Daten physisch gelesen und geschrieben werden müssen, was zu schnelleren E/A-Vorgängen führt. ZFS bietet eine große Auswahl an Komprimierungsmethoden. Die Standardeinstellung ist lz4 (ein leistungsfähiger Ersatz für lzjb), der eine schnellere Komprimierung und Dekomprimierung als lzjb mit einem etwas höheren Kompressionsverhältnis bietet. Um den Komprimierungsgrad zu ändern, können Sie den Befehl verwenden:
sudozfssetcompression=gzip-9 zdata
Oder Sie können sogar die Art der Komprimierung ändern:
sudozfssetcompression=lz4 zdata
Zeigen Sie den Komprimierungsgrad an:
sudozfsgetcompressratio
Die sicherste Wahl ist lz4, da es wesentlich schneller als alle anderen Optionen ist und eine gute Leistung bietet.
Schlussfolgerung
In diesem Sinne ist ZFS definitiv ein Dateisystem, das eine breite Palette von Funktionen bietet. Es verwaltet nicht nur Daten auf effiziente und innovative Weise, sondern ermöglicht im Notfall auch eine unterbrechungsfreie Datenwiederherstellung. Außerdem kann im Falle eines Ausfalls das gesamte System mit Hilfe der Snapshot-Funktion einfach wiederhergestellt und auf einen bestimmten Zeitpunkt zurückgesetzt werden.
Wenn Sie Probleme mit verlorenen ZFS- und RAIDZ-Dateisysteminformationen haben, verwenden Sie Hetman RAID Recovery. Sie können es verwenden, um versehentlich gelöschte Dateien aus einem ZFS-Dateisystem wiederherzustellen oder um Informationen aus einem abgestürzten RAIDZ-Array abzurufen. Das Programm hilft bei Abstürzen, Formatierung, Überschreiben und anderen Fällen von Datenverlust.
Merkmal | Beschreibung |
---|---|
RAID-Array-Unterstützung | Das Programm unterstützt verschiedene RAID-Array-Typen, einschließlich RAID 0, RAID 1, RAID 5, RAID 10 sowie benutzerdefinierte Konfigurationen. |
Automatische Parametererkennung | Erkennt automatisch Array-Parameter wie Blockgröße, Reihenfolge der Festplatten und andere wichtige Merkmale. |
Datenwiederherstellung | Fähigkeit zur Wiederherstellung von Daten von beschädigten oder gelöschten RAID-Arrays sowie zur Wiederherstellung nach Konfigurationsfehlern oder Ausfällen. |
Dateivorschau | Ermöglicht die Vorschau von Dateien vor der Wiederherstellung, um die Qualität zu bewerten und Daten zu überprüfen. |
Unterstützung für Dateisysteme | Unterstützt Dateisysteme wie FAT, NTFS, ReFS, HFS+, Ext2/3/4, XFS, ZFS und andere. |
Benutzerfreundliche Oberfläche | Einfache Benutzeroberfläche mit einem Schritt-für-Schritt-Assistenten zur Datenwiederherstellung. |