Wie wir letzte Woche festgestellt haben, ist Ubuntu 19.10 offiziell erschienen und bringt eine Reihe von wirklich spannenden Funktionen mit sich. Obwohl die meisten dieser neuen Optionen auf Desktop-Benutzer abzielen, gibt es eine besonders aufregende Funktion, von der sowohl Desktop- als auch Server-Benutzer profitieren werden. Diese Funktion ist die ZFS-Unterstützung.
ZFS wurde zuerst von Sun Microsystems für seine Solaris-Unix-Distribution entwickelt und ist eine Kombination aus 128-Bit-Dateisystem und logischem Volume-Manager, die folgende Funktionen bietet:
- Skalierbar.
- Bietet Unterstützung für hohe Speicherkapazität und effizientere Datenkomprimierung.
- beinhaltet Snapshots und Rollbacks.
- unterstützt Copy-on-Write-Klone.
- führt eine kontinuierliche Integritätsprüfung und automatische Reparatur durch.
- 128-Bit-Adressierung
- und vieles mehr.
Fragen Sie einen Administrator und er wird Ihnen zustimmen, dass das Hinzufügen von ZFS eine große Sache für Ubuntu ist. Why? Allein die Snapshots und Rollback-Funktionen sind den Einstiegspreis wert (der übrigens kostenlos ist). Mit dieser Funktion können Administratoren ihre Systeme in einen funktionierenden Zustand zurückversetzen (oder in einen Zustand, der versehentlich gelöschte Daten enthält). Das ist eine ziemlich große Sache.
Natürlich sind Snapshots und Rollbacks keine neue Sache. Tatsächlich haben viele Plattformen dieses Werkzeug schon seit Jahren im Programm. Vielleicht ist Ubuntu in dieser Hinsicht also ein wenig im Rückstand. Aber für jeden, der Ubuntu benutzt, ist dies ein Fall von „besser spät als nie“.
Aber wie funktioniert ZFS unter Ubuntu? Ich bin froh, dass du fragst. Ich zeige es dir.
Eine Warnung
Bevor du dich darauf einlässt, solltest du wissen, dass die ZFS-Unterstützung in Ubuntu 19.10 experimentell ist. Obwohl ich sie als unglaublich stabil empfunden habe, sollten Sie es sich zweimal überlegen, ob Sie sie in einer Produktionsumgebung einsetzen wollen (bis sie nicht mehr als „experimentell“ gelistet ist).
Auch sollten Sie beachten, dass die ZFS-Unterstützung derzeit nur während der Installation der Desktop-Version angeboten wird. Das bedeutet nicht, dass Sie keine Unterstützung für das Dateisystem in der Serverversion hinzufügen können, aber es ist nicht ganz so einfach. Aus diesem Grund werde ich die Demonstration mit der Desktop-Version von Ubuntu 19.10 durchführen.
Installation
Der erste Schritt ist die Aktivierung von ZFS bei der Installation von Ubuntu 19.10. Während der Installation finden Sie in der Phase Installationstyp eine neue Option (Abbildung 1).
Abbildung 1: Auswahl der Option ZFS während der Installation.
Nach Abschluss der Installation starten Sie neu und melden sich an.
Wenn Sie die Serverversion von Ubuntu 19.10 verwenden, können Sie die ZFS-Unterstützung jederzeit mit dem Befehl installieren:
1
|
sudo apt-get install zfsutils-linux
|
Wenn Sie diesen Weg gehen, müssen Sie natürlich ein paar zusätzliche Schritte unternehmen (z.B. Datasets erstellen). Bei der Desktop-Installation besteht die gesamte Verzeichnishierarchie aus ZFS-Datensätzen, so dass viel weniger Arbeit anfällt.
Erste Schritte mit ZFS
Nachdem Sie sich auf dem Desktop angemeldet haben, sollten Sie ein Terminal-Fenster öffnen und eine Liste Ihrer Datasets erstellen. Bei Ubuntu-Installationen, die kein ZFS verwenden, arbeiten Sie normalerweise mit Verzeichnispfaden wie /home/jack oder /usr/local/. Das ist bei ZFS-fähigen Systemen nicht der Fall. Stattdessen arbeiten sie mit Datasets. Ein Dataset ist eine Art von Dateisystem, das sich einen Speicherpool teilt (der grundlegendste Baustein von ZFS).
Um Ihre Datasets zu finden, geben Sie den Befehl:
1
|
zfs list
|
Wie Sie sehen können (in Abbildung 2), befindet sich jedes Verzeichnis entweder im bpool (Boot) oder rpool (Root) Pool.
Abbildung 2: Unsere Datensatzauflistung.
Arbeiten wir mit dem Heimatverzeichnis eines Benutzers. In diesem Fall das Dataset rpool/USERDATA/jack_bwcn4u.
Snapshot erstellen
Als erstes erstellen wir einen neuen Snapshot des Verzeichnisses /home/jack (das, wie Sie sich erinnern, das Dataset rpool/USERDATA/jack_bwcn4u ist). Nehmen wir an, wir wollen einen Snapshot mit dem heutigen Datum erstellen. Der Befehl dafür wäre:
1
|
sudo zfs snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Sie könnten den Datumsbefehl auch so einfügen:
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@`date +%F`
|
Um zu überprüfen, ob Ihr Schnappschuss erstellt wurde, geben Sie den Befehl:
1
|
zfs list -t snapshot
|
Sie sollten alle aktuellen Snapshots aufgelistet sehen (Abbildung 3).
Abbildung 3: Unser neuer Schnappschuss wurde erstellt.
Rückgängig machen eines Schnappschusses
Angenommen, aus welchem Grund auch immer, wurde ein Verzeichnis versehentlich aus dem Stammverzeichnis gelöscht. Was tun Sie dann? Glücklicherweise haben Sie einen Schnappschuss gemacht und können diesen Schnappschuss zurückdrehen, so dass das gelöschte Verzeichnis wiederhergestellt wird.
Löschen wir zunächst das Verzeichnis ~/Dokumente mit dem Befehl:
1
|
rm -rf /home/jack/Documents
|
Werfen Sie den ls-Befehl ein und Sie sehen, dass das Documents-Verzeichnis verschwunden ist (Abbildung 4).
Unser Verzeichnis „Documents“ wurde gelöscht.
Nun werden wir den Snapshot vom Freitag zurücksetzen, um dieses Verzeichnis wiederherzustellen. Geben Sie dazu den Befehl:
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Nachdem der Befehl ausgeführt wurde, rufen Sie ls erneut auf, um zu sehen, dass die Dokumente zurückgegeben wurden (Abbildung 5).
Abbildung 5: Documents ist wieder da.
Schnappschüsse löschen
Angenommen, Sie haben eine Reihe von Schnappschüssen erstellt, oder ein bestimmter Schnappschuss hat entweder beschädigte oder fehlende Daten. Sie möchten diesen Snapshot vielleicht löschen. Nehmen wir an, wir möchten den Snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19 löschen. Der Befehl dazu wäre:
1
|
sudo zfs destroy rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Wenn Sie einen Snapshot zerstört haben, kann er nicht wiederhergestellt werden, Verwenden Sie diesen Befehl also mit Bedacht. Wenn Sie einen besonders wichtigen Snapshot haben, den Sie nicht zerstören wollen, können Sie ihn mit einem Hold-Befehl versehen. Um den Snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19 zu sperren, geben Sie den folgenden Befehl ein:
1
|
sudo zfs hold keep rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Wenn Sie nun versuchen, diesen Snapshot zu zerstören, wird ein Fehler angezeigt (Abbildung 6).
Abbildung 6: Dieser Schnappschuss kann nicht zerstört werden.
Um einen gehaltenen Snapshot zu zerstören, müssen Sie die Option -d wie folgt hinzufügen:
1
|
<i>sudo zfs destroy -d rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19</i>
|
Das war’s, der gehaltene Schnappschuss ist weg.
Und das sind die Grundlagen des Erstellens und Zerstörens von Snapshots mit der neu hinzugekommenen ZFS-Funktion in Ubuntu 19.10. Probieren Sie dies in einer Testumgebung aus und sehen Sie, wie gut es funktioniert. Bisher habe ich nur ein Problem entdeckt: Beim Versuch, einen Snapshot zurückzusetzen, musste ich den Rechner neu starten, bevor der Rollback-Befehl erfolgreich ausgeführt werden konnte. Abgesehen von diesem einen Problem lief es mit ZFS und Ubuntu 19.10.
reibungslos.