Verwendung von ZFS-Snapshots und -Klonen

Verwendung von ZFS-Snapshots und -Klonen
⌛ Reading Time: 5 minutes

Herzlichen Glückwunsch, wenn Sie sich für ZFS auf Ihren Speichergeräten entschieden haben! Sie verwenden eines der komplexesten und funktionsreichsten Dateisysteme der Welt. Wenn Sie sich jemals dazu entschließen, Langzeitdaten wie Familienfotos und -videos zu speichern, sollten Sie ZFS ernsthaft in Betracht ziehen. In einem redundanten Setup wie vier gespiegelten Festplatten ist absolut garantiert, dass Sie niemals ein Datenbit verlieren bisschen verrotten oder andere Formen der Speicherverschlechterung im Laufe der Zeit, Computerfehler und so weiter. ZFS kann Daten automatisch selbst heilen und wiederherstellen. Komplexe Algorithmen, Hashes und Merkle Bäume Gewährleistung der Datenintegrität.

In diesem Tutorial wird jedoch nicht behandelt, warum ZFS die beste Wahl für die Archivierung von Langzeitdaten ist. Stattdessen wird diskutiert, was Snapshots und Klone für Sie tun können.

Was sind ZFS-Snapshots und -Klone?

Ein Schnappschuss ist einfach ein genaues Bild des Status Ihrer Daten zu einem bestimmten Zeitpunkt. Angenommen, Sie arbeiten an einer komplexen Website. Sie speichern den gesamten Code, die Datenbanken und die Bilder in Ihrem ZFS-Dataset. Sie ändern das Design der Website, ändern einige Bilder, ändern einige Layoutabmessungen und ändern Code, um all dies anzupassen. Wenn Sie zum vorherigen Entwurf zurückkehren möchten, müssen Sie alle diese Änderungen einzeln zurücksetzen. Mit ZFS können Sie einfach einen Schnappschuss Ihres aktuellen Designs erstellen, alle gewünschten Änderungen vornehmen und, wenn Sie mit dem neuen Design nicht zufrieden sind, einfach zum vorherigen Schnappschuss zurückkehren. Und ja, es stimmt, es gibt Git, GitHub und sogar einige Code-Editoren, die die Möglichkeit bieten, einen Snapshot zu erstellen und einen Rollback durchzuführen. In ZFS sind jedoch auch die folgenden Funktionen enthalten:

  • Schnappschüsse sind global. Sie erstellen eine Momentaufnahme aller in Ihrem Projekt enthaltenen Daten.
  • Schnappschüsse und Rollbacks sind fast augenblicklich, egal wie groß Ihr Projekt ist (selbst wenn es Hunderte von Gigabyte hat).

Die Anzahl der Schnappschüsse ist unbegrenzt. Sie können “Design 1”, “Design 2” und “Design 3” verwenden und frei zwischen ihnen wechseln, Änderungen vornehmen und einen neuen Schnappschuss erstellen: “Design 2 – Verbessert”.

Klone

Während Snapshots im Grunde genommen eingefrorene Datenzustände sind, zu denen Sie zurückkehren können, sind Klone wie Zweige, die von einem gemeinsamen Punkt ausgehen. Stellen Sie sich zum besseren Verständnis dieses Szenario vor: Sie erstellen ein Video für eine Werbekampagne. Anschließend erstellen Sie eine Momentaufnahme dieses Videos (tatsächlich des ZFS-Datasets, in dem Sie Ihr Video speichern). Jetzt klonen Sie diesen Schnappschuss dreimal. Sie geben einem Mitarbeiter „Klon 1“, einem anderen Mitarbeiter „Klon 2“ und dem dritten Mitarbeiter „Klon 3“. Jetzt können sie jeweils in ihrem eigenen Raum arbeiten und die gewünschten Änderungen vornehmen.

Warum ist das nützlich? Videos können sehr viel Speicherplatz belegen. Hochauflösender Rohfilm kann Hunderte oder Tausende GB Speicherplatz erfordern. Wenn das Hauptvideo 500 GB Speicherplatz benötigt und drei Personen unterschiedliche Änderungen klonen und bearbeiten müssen, sind mehr als 1500 GB Speicherplatz erforderlich.

Mit ZFS benötigen der Snapshot und drei (oder mehr) Klone nicht mehr als 501 GB Speicherplatz. Datenblöcke, die sich nicht ändern (alle Klone haben dies gemeinsam), werden nur einmal gespeichert. Auf diese Weise werden nur die Unterschiede, die jeder Editor hinzufügt, als zusätzliche Daten gespeichert. In einem realen Szenario benötigen Sie möglicherweise etwa 650 GB Daten für alle drei Klone. Es ist eine effiziente Nutzung von Speicher und Ressourcen, und die Daten sind ordnungsgemäß isoliert, sodass jeder Editor nach Herzenslust arbeiten kann.

Natürlich ist es für viele andere Szenarien nützlich, in denen Sie denselben Inhalt in mehrere verschiedene Richtungen verzweigen müssen, auch wenn der Speicherplatzbedarf keine Rolle spielt.

Befehle zum Arbeiten mit ZFS-Snapshots

Während andere Linux-Distributionen dieses Dateisystem / Volume-Manager verwenden können, bietet Ubuntu die bisher beste Unterstützung für ZFS.

Da nicht allen Benutzern eine ganze Festplatte zur Verfügung steht, um ZFS anzubieten, kann es hilfreich sein zu wissen, dass Sie mit einem Befehl wie z. B. auch einen Pool auf einer leeren Partition erstellen können sudo zpool create pool_name /dev/sda3, wo /dev/sda3 ist der Gerätename Ihrer dritten Partition auf Ihrer ersten Festplatte.

Nachdem Sie die richtigen Pakete installiert und Ihr erstes ZFS-Dataset erstellt haben, erstellen Sie auf diese Weise einen Snapshot.

Ermitteln Sie zunächst den Namen Ihres ZFS-Datasets, das Sie als Snapshot erstellen möchten.

Zfs Snapshots Clones List

In diesem Beispiel lautet der Name des Datasets data und der Name des Schnappschusses wird sein snap1. Ersetzen Sie diese Werte im nächsten Befehl durch die in Ihrem Fall geltenden Werte. Geben Sie Folgendes ein, um einen Schnappschuss zu erstellen:

Wenn in Ihrem Fall der Datensatz benannt ist videosund Sie möchten Ihren Schnappschuss aufrufen firstwäre der Befehl:

Verwenden Sie Folgendes, um Änderungen rückgängig zu machen und Ihr Dataset auf den genauen Inhalt zurückzusetzen, den es beim Erstellen des Snapshots hatte:

Wenn Sie keinen Schnappschuss mehr benötigen, löschen Sie ihn mit:

Befehle für die Arbeit mit ZFS-Klonen

Angenommen, Sie haben einen Snapshot mit dem Namen “data @ snap1”, klonen Sie ihn mit:

Zfs Snapshots Clones Beispiel für Kloninhalte

So löschen Sie einen Klon:

Sie können auch Snapshot-Klone erstellen.

Wenn Sie sich in Zukunft alle von Ihnen erstellten Snapshots und Klone merken möchten, verwenden Sie:

Zfs-Snapshots-Klone listen alle Datensätze auf

Fazit

Dies umfasst alle grundlegenden Vorgänge, die Sie mit ZFS-Snapshots und -Klonen ausführen können. Es kann nützlich sein zu wissen, dass jedes Dataset ein verstecktes Verzeichnis mit dem Namen “.zfs” hat. Mit einem Befehl wie ls /data/.zfs/snapshot/snap1/können Sie den Status von Dateien in einem Snapshot sehen. Da es sich wie ein reguläres (schreibgeschütztes) Verzeichnis verhält, können Sie auch einzelne Dateien aus einem Snapshot kopieren, falls Sie nicht den gesamten Snapshot zurücksetzen müssen.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.