ZFS Snapshots Tutorial

ZFS Snapshots Tutorial
Snapshots sind wichtig, ob Sie einen einfachen virtuellen Computer auf Ihrem Heimcomputer ausführen oder ob es sich um eine Unternehmensdatenbank handelt, die ständig aktualisiert und geändert wird. Es ist wichtig, Schnappschüsse zu haben, dh eine Kopie des gesamten Dateisystems, wie es zu einem bestimmten Zeitraum war.

Die Leute verlieren oft den Überblick darüber, wo die Dinge schief gelaufen sind, eine Datei gelöscht wurde und niemand bemerkte, dass sie weg war. Mehrere Backups sind vergangen und jetzt stellen Sie fest, dass eine wichtige Datei in allen verfügbaren Sicherungen der letzten 5 Wochen fehlt. In diesem Tutorial werden wir sehen, wie ZFS -Snapshots verwendet werden und verschiedene Schnappschüsse -Richtlinien berühren, die sowohl in Bezug.

Mechanismus für Kopierschreiber

ZFS hat sowohl den Überblick über Dateien als auch Verzeichnisse auf hoher Ebene und versteht, wie Daten auf der Festplatte geschrieben werden. Wenn Sie Daten physisch auf eine Festplatte schreiben, wird dies in diskreten Blöcken erfolgt. Normalerweise kann die Blockgröße bis zu 1 MB betragen, aber der Standard beträgt normalerweise 128 kb. Dies bedeutet nun, dass jede Änderung (lesen, schreiben oder löschen) in den diskreten Blöcken erfolgt.

Der Mechanismus zum Kopieren von Schreiben stellt sicher, dass bei der Änderung eines Blocks, anstatt den Block direkt zu ändern.

Dies ist besonders hilfreich in Fällen, in denen beispielsweise ein Stromausfall vorhanden ist und Ihr System abfällt, während neue Daten auf die Festplatte geschrieben wurden. Wenn dies in einem herkömmlichen Dateisystem geschieht, werden Ihre Dateien beschädigt oder mit Löchern gelassen. Wenn Sie jedoch ZFS verwenden, verlieren Sie möglicherweise die laufende Transaktion, da dies geschieht, aber der letzte gültige Status Ihrer Dateien wird weiterhin unberührt bleiben.

Schnappschüsse verlassen sich auch auf diese Funktionalität und in der Tat ziemlich stark. Wenn Sie einen Schnappschuss eines bestimmten Datensatzes aufnehmen ('Dataset' ist der ZFS -Begriff für ein Dateisystem), zeichnet ZFS nur den Zeitstempel auf, wenn der Snapshot erstellt wurde. Das ist es! Es werden keine Daten kopiert und kein zusätzlicher Speicher wird verbraucht.

Nur wenn sich das Dateisystem ändert und die darin enthaltenen Daten vom Snapshot abweichen. Was unter der Motorhaube passiert, ist dies - anstatt die alten Blöcke im Laufe der Zeit zu recyceln, hält ZFS sie herum. Dies verbessert auch die Speicherauslastung. Wenn Sie einen 20 -GB -Datensatz schnappen und hier und dort nur wenige Textdateien ändern.


Schnappschüsse erstellen

Um die Verwendung von Schnappschüssen zu demonstrieren, beginnen wir mit einem Datensatz, der viele Textdateien enthält, um die Angelegenheit einfach zu halten. Die virtuelle Maschine, die ich für die Demo verwenden werde, führt FreeBSD 11 aus.1-Release-P3, das zum Zeitpunkt dieses Schreibens die neueste stabile Veröffentlichung ist. Das Root -Dateisystem ist auf dem montiert Zroot Pool standardmäßig und viele der vertrauten Verzeichnisse wie /usr /src, /home, /etc sind alle ihre eigenen Datensätze auf Zroot. Wenn Sie nicht wissen, was für ein Pool (oder ein Zpool) im ZFS -Umgangssprache es bedeutet, lohnt es sich, es zu lesen, bevor es fortgesetzt wird, bevor Sie fortfahren.

Eines der vielen Dateisysteme oder Datensätze, die standardmäßig auf FreeBSD ausgesetzt sind, lautet: zroot/usr/src

Führen Sie den folgenden Befehl aus, um es zu betrachten, um es zu betrachten.

root@testbsd: ~ $ zfs list zroot/usr/src

Wie Sie sehen können, verwendet es 633 MB Speicherplatz. Es enthält den gesamten Quellbaum für das Betriebssystem.

Lassen Sie uns einen Schnappschuss von vornehmen zroot/usr/src

root@testbsd: ~ $ zfs snapshot zroot/usr/src@snapshot1

Das @ -Symbol fungiert als Trennzeichen zwischen dem Datensatz und dem Snapshot -Namen, was in unserem Fall ist Snapshot1.

Schauen wir uns nun den Zustand des Schnappschusss an, wie er erstellt wird.

Durch Ausführen des Befehls:

ZFS LIST -RT ALL ZROOT/USR/SRC

Sie können sehen, dass der Snapshot bei der Geburt keinen zusätzlichen Platz nutzt. Es gibt auch keinen verfügbaren Speicherplatz, da es sich um einen streng lesenden nur Datensatz handelt. Der Schnappschuss selbst kann nicht wachsen, modifizieren oder schrumpfen. Zuletzt ist es nirgendwo montiert, was es aus der angegebenen Dateisystemhierarchie vollständig isoliert macht.

Lassen Sie uns nun das entfernen sbin Verzeichnis in /usr/src/

root@testbsd: $ rm/usr/src/sbin

Wenn Sie sich den Schnappschuss ansehen, werden Sie jetzt sehen, dass es gewachsen ist,

Dies wird erwartet, da der Mechanismus des Kopierschreibens hier funktioniert und die Dateien dazu geführt haben.

Beachten Sie die Spalte in der obigen Ausgabe. Es gibt Ihnen die Menge an zugänglichen Daten auf dem Datensatz, während die verwendete Spalte Ihnen nur zeigt, wie viel Platz auf der physischen Festplatte belegt ist.

Der Kopie-auf-write-Mechanismus von ZFS liefert diese kontraintuitiv. Nachdem Sie bisher gelesen haben, wissen Sie jedoch, was tatsächlich passiert!

Bevor Sie fertig sind, sollten wir das wiedererlangen sbin aus Snapshot1. Um das einfach laufen zu lassen:

root@testbsd:/usr/src $ zfs rollback zroot/usr/src@snapshot1

Snapshotting -Richtlinie

Die nächste Frage lautet: Wie oft Sie die Schnappschüsse machen möchten? Während es von einem Unternehmen zu einem anderen variieren kann.

Zunächst würden Sie alle 6 Stunden mit Ihnen anfangen, Schnappschüsse zu machen, aber weil sich die Datenbank so sehr ändert. Der nächste Schritt wäre also, Schnappschüsse zu spülen, die älter sind als beispielsweise 48 Stunden.

Jetzt wäre das Problem, etwas wiederherzustellen, das vor 49 Stunden verloren gegangen ist. Um dieses Problem zu umgehen, können Sie ein oder zwei Schnappschüsse aus dieser 48 -Stunden -Geschichte aufbewahren und sie für eine Woche beibehalten. Spülen Sie sie, wenn sie älter werden.

Und wenn Sie auf diese Weise weitermachen können, können Sie Schnappschüsse bis zur Entstehung des Systems übertreffen, nur in abnehmender Reihenfolge der Frequenz. Zuletzt möchte ich darauf hinweisen, dass diese Schnappschüsse nur schreibgeschützt sind, was bedeutet, dass Sie, wenn Sie durch eine Ransomware infiziert werden und alle Ihre Daten verschlüsselt werden (geändert). Diese Schnappschüsse würden höchstwahrscheinlich immer noch intakt sein.