ZFS, allgemein als Z-Dateisystem bekannt, basiert hauptsächlich auf Speicherung und Redundanz. Das Konzept von ZFS wurde im Hinblick auf Dateiserver entwickelt, bei denen Hochverfügbarkeit und Datenintegrität die wichtigsten Faktoren sind. ZFS verwendet virtuelle Speicherpools, die allgemein als Zpools bekannt sind, um die Speicherung und Verwaltung großer Datenmengen zu bewältigen. In diesem Artikel lernen wir die Installation von zfs und seine allgemeine Verwendung in der technischen Umgebung kennen.
Voraussetzungen
Frischer Ubuntu 20.04-Server
Sudo-privilegiertes Nicht-Root-Benutzerkonto
Installation
Die Installation von ZFS ist ein unkomplizierter Vorgang. Sie können die Befehlszeilen-Terminalanwendung verwenden, um das ZFS-Dateisystem zu installieren. Öffnen Sie das Befehlszeilen-Terminal-Tool und führen Sie den folgenden Befehl aus.
$ sudo apt update
$ sudo apt install zfsutils-linux
Während der Installation werden Sie möglicherweise zur Eingabe des Passworts aufgefordert, geben Sie das sudo-Passwort ein und fahren Sie fort.
Sobald Sie den obigen Befehl ausgeführt haben, werden Sie um eine Bestätigung gebeten, ob Sie mit der Installation fortfahren möchten oder nicht. Drücken Sie "y" und geben Sie ein. Nun wird das Softwarepaket auf Ihrem System installiert.
Verwenden Sie den folgenden Befehl, um die Installation von ZFS auf Ihrem System zu überprüfen.
$ zfs --version
Sie erhalten die Ausgabe ähnlich wie:
Grundlegende Verwendung und Befehle von ZFS
Sobald ZFS installiert ist, können Sie jetzt Festplatten mit ZFS verwenden. Wenn die neuen Festplatten in Ihr System eingesetzt werden, adressiert ZFS sie mit ihrem Gerätenamen. Zum Beispiel etwas Ähnliches wie die Zeilen von /dev/sda oder ähnliches. Sie können fdisk verwenden Befehlszeilenprogramm, um verfügbare Festplatten zu prüfen.
$ sudo fdisk -l
Sie werden eine Ausgabe ähnlich der folgenden finden:
Wie man Zpools erstellt und zerstört
ZFS arbeitet mit dem Konzept, Festplatten gemeinsam zu poolen. Beim Erstellen von Pools können verschiedene Raid-Level verwendet werden. Der erste Pool, den wir erstellen werden, ist RAID 0 . RAID-Level 0 funktioniert, indem Sie Ihre Daten auf mehrere Festplatten verteilen. Wenn eine Datei in den Speicherpool geschrieben oder daraus gelesen wird, treten alle Platten in Aktion, um den Teil der Daten zu präsentieren. Diese RAID-Ebene bietet Ihnen einen Geschwindigkeitsschub für Ihre Lese- und Schreibgeschwindigkeit, jedoch fehlt es an Datenredundanz. Jedes kritische Problem auf der Festplatte oder eine Festplattenfehlfunktion im Pool führt zu einem vollständigen Datenverlust.
In diesem Beispiel habe ich zwei Festplatten /dev/sdb verwendet und /dev/sdd zum Erstellen des Pools mit dem Namentest-pool . Sie können Ihre eigene Annahme zur Auswahl von Datenträger- und Poolnamen haben. Führen Sie den folgenden Befehl aus, um zpool.
zu erstellen$ sudo zpool create test-pool /dev/sdb /dev/sdd
Wenn ein Fehler auftritt, können Sie den Befehl mit -f ausführen Option nach zpool create Befehl, der die Ausführung des Befehls erzwingt.
$ sudo zpool create -f test-pool /dev/sdb /dev/sdd
Nach der Erstellung können Sie den Einhängepunkt mit dem folgenden Befehl herausfinden:
$ df -h
Aus der Ausgabe können wir ersehen, dass der Pool unter /test-pool gemountet ist. Sie können den Einhängepunkt für den Pool ändern, verwenden Sie die folgende Syntax.
$ sudo zfs set mountpoint =<path> <pool_name>
In diesem Beispiel habe ich /var/www verwendet als neuen Einhängepunkt. Sie können den Einhängepunkt selbst berücksichtigen.
$ sudo zfs set mountpoint=/var/www test-pool
Überprüfen Sie den neuen Punkt mit dem folgenden Befehl.
$ df -h
Sie können die Verzeichnisse unter dem Speicherpool erstellen. In diesem Beispiel habe ich das Verzeichnis mit dem Namen MySQL unter dem Speicherpool-Testtool erstellt.
$ sudo zfs create test-pool/mysql
Führen Sie den folgenden Befehl aus, um alle ZFS-Speicherpools auf dem System anzuzeigen.
$ zpool list
Um die Konfiguration und den Status jedes Geräts im ZFS-Pool zu finden, verwenden Sie den folgenden Befehl.
$ zpool status
Um den ZFS-Speicherpool im Falle eines Problems zu beheben, führen Sie den folgenden Befehl aus, der die zpool-Ereignisse anzeigt. Ersetzen Sie pool_name durch Ihren ZFS-Speicherpool.
$ sudo zpool events pool_name -v
Wenn Sie dem ZFS-Speicherpool eine weitere Festplatte hinzufügen möchten, können Sie den folgenden Befehl verwenden. In diesem Beispiel habe ich eine neue Festplatte /dev/sdc verwendet um den zuvor erstellten ZFS-Speicherpool test-pool hinzuzufügen. Sie können Ihren Festplatten- und zpool-Namen entsprechend auswählen.
$ sudo zpool add test-pool /dev/sdc
Nachdem die Festplatte hinzugefügt wurde, überprüfen Sie den Pool mit dem folgenden Befehl:
$ zpool status
Um den ZFS-Speicherpool zu zerstören, führen Sie den folgenden Befehl mit Ihrem gültigen Poolnamen aus.
$ sudo zpool destroy pool_name
Zum Beispiel
$ sudo zpool destroy test-pool
So verwenden Sie die Verschlüsselung mit ZFS
Nachdem Sie einen ZFS-Speicherpool erstellt haben, können Sie die Verschlüsselung mit dem folgenden Befehl aktivieren. Für dieses Beispiel habe ich einen zuvor erstellten ZFS-Pool namens „test-pool“ zur Verschlüsselung verwendet. Sie können Ihren ZFS-Pool entsprechend auswählen.
$ sudo zfs create -o encryption=on -o keylocation=prompt -o keyformat=passphrase test-pool/encrypted
Sie werden aufgefordert, die Passphrase zweimal einzugeben. Geben Sie Ihre Passphrase ein und fahren Sie fort.
Unter dem Speicher-Mount-Punkt wird ein neues Verzeichnis erstellt und alles unter diesem Verzeichnis wird verschlüsselt. Wenn das System neu gestartet wird, müssen Sie das Dataset möglicherweise manuell einhängen. Denken Sie daran, beim Mounten des verschlüsselten Datensatzes das Flag -l zu verwenden. Sie werden zur Eingabe der Passphrase aufgefordert, geben Sie die Passphrase ein, die Sie zum Verschlüsseln des Pools verwendet haben, und fahren Sie fort.
$ sudo zfs mount -l test-pool/encrypted
$ df -hT | grep zfs
Wie man ZFS-Snapshots erstellt, zurücksetzt und zerstört
Aufnahme des Schnappschusses
Das Erstellen des Snapshots in ZFS ist ein recht einfacher und unkomplizierter Vorgang. Sie können den zfs-Snapshot verwenden Befehl gefolgt vom Namen des Snapshots als Argument zum Erstellen eines Snapshots. In diesem Beispiel habe ich test-pool/mysql verwendet um einen Schnappschuss zu erstellen. Sie können Ihren Poolnamen und Datensatz entsprechend auswählen.
$ sudo zfs snapshot test-pool/[email protected]
Überprüfen Sie den erstellten Snapshot mit dem folgenden Befehl:
$ zfs list -t snapshot
Umbenennen des Snapshots
Sie können den Snapshot-Namen auch mit zfs rename umbenennen Befehl gefolgt vom Snapshot-Namen. In diesem Beispiel Snapshot namens „test-tool/[email protected] “ wird umbenannt in „test-pool/[email protected] ”
Snapshot-Rollback
Snapshot kann mit dem Befehl zfs rollback zurückgesetzt werden mit Snapshot-Namen, um alle seit einem bestimmten Snapshot vorgenommenen Änderungen rückgängig zu machen. In diesem Beispiel test-pool/mysql Dateisystem wird auf den Sonntags-Snapshot zurückgesetzt.
$ sudo zfs rollback test-pool/[email protected]
Sobald das Rollback abgeschlossen ist, können Sie die im Verzeichnis vorhandenen Dateien überprüfen.
Schlussfolgerung
In diesem Artikel habe ich die grundlegende Erklärung von zfs behandelt. Wir haben gelernt, wie man ZFS-Speicherpools erstellt, den Pool zerstört und den Einhängepunkt angibt. Außerdem haben wir einige grundlegende Ideen zur zfs-Pool-Verschlüsselung, zum Erstellen eines Snapshots und zum Zurücksetzen des Snapshots auf die früheste Version erhalten. Vielen Dank für das Lesen dieses Artikels. Rückmeldungen und Vorschläge werden sehr geschätzt.