Btrfs

So sichern Sie Btrfs-Snapshots auf externe Laufwerke

So sichern Sie Btrfs-Snapshots auf externe Laufwerke

Standardmäßig können Sie die Snapshots, die Sie von Ihren Btrfs-Subvolumes erstellen, im selben Btrfs-Dateisystem speichern, aber es ist nicht möglich, die Snapshots eines Btrfs-Dateisystems direkt in einem anderen Btrfs-Dateisystem zu speichern. Das Btrfs-Dateisystem bietet Ihnen jedoch die notwendigen Werkzeuge, um Snapshots eines Btrfs-Dateisystems auf ein anderes Btrfs-Dateisystem zu sichern. Dieser Artikel zeigt Ihnen, wie Sie Btrfs-Snapshots auf einem externen Btrfs-Dateisystem auf einem externen Laufwerk sichern back.

Voraussetzungen

Um die in diesem Artikel enthaltenen Beispiele auszuprobieren, müssen Sie die folgenden Voraussetzungen erfüllen:

Ich habe die 20 GB Festplatte, sdb, auf meinem Ubuntu-Rechner. Ich habe zwei Partitionen erstellt, sdb1 und sdb2, auf dieser Festplatte.

$ sudo lsblk -e7

Hinweis: Ihre Festplatte oder SSD wird einen anderen Namen haben als meine, ebenso wie die Partitionen. Ersetzen Sie diese Namen von nun an durch Ihre eigenen.


Ich werde Btrfs-Dateisysteme auf dem erstellen sdb1 und der sdb2 Partitionen. Die im Btrfs-Dateisystem erstellten Snapshots (sdb1) wird im Btrfs-Dateisystem gesichert, das auf dem . erstellt wurde sdb2 Partition. Das auf dem erstellte Btrfs-Dateisystem sdb2 Partition fungiert als externes Laufwerk. Sie können auch einen USB-Stick oder eine externe Festplatte verwenden; Achten Sie nur darauf, es mit dem Btrfs-Dateisystem zu formatieren.

Hilfe bei der Installation des Btrfs-Dateisystems in Ubuntu finden Sie in meinem Artikel Install and Use Btrfs on Ubuntu 20.04 LTS.

Hilfe bei der Installation des Btrfs-Dateisystems in Fedora finden Sie in meinem Artikel Install and Use Btrfs on Fedora 33.

Erforderliche Btrfs-Dateisysteme erstellen

Ich werde beide formatieren sdb1 und sdb2 Partitionen als Btrfs. Ich werde die verwenden sdb1 Partition zum Speichern der Daten und Btrfs-Snapshots. Ich werde die verwenden sdb2 Partition zum Sichern der Snapshots des Btrfs-Dateisystems, das auf dem sdb1 Partition.

So erstellen Sie ein Btrfs-Dateisystem auf dem sdb1 Partition und geben Sie ihr die Dateisystem-Label-Daten, führen Sie den folgenden Befehl aus:

$ sudo mkfs.btrfs -L Daten /dev/sdb1

Ein Btrfs-Dateisystem sollte nun auf dem sdb1 Partition.

So erstellen Sie ein Btrfs-Dateisystem auf dem sdb2 Partition und geben Sie ihr die Dateisystem-Label-Snapshots, führen Sie den folgenden Befehl aus:

$ sudo mkfs.btrfs -L-Snapshots /dev/sdb2

Ein Btrfs-Dateisystem sollte nun auf dem sdb2 Partition.

Erstellen Sie die Verzeichnisse /Daten und /Schnappschüsse zur Montage der sdb1 und sdb2 Partitionen jeweils wie folgt:

$ sudo mkdir -v /Daten,Schnappschüsse

Mounten Sie das von Ihnen erstellte Btrfs-Dateisystem auf dem sdb1 Partition im Verzeichnis /data wie folgt:

$ sudo mount /dev/sdb1 /data

Mounten Sie auf die gleiche Weise das von Ihnen erstellte Btrfs-Dateisystem auf dem sdb2 Partition auf der /Schnappschüsse Verzeichnis wie folgt:

$ sudo mount /dev/sdb2 /snapshots

Wie Sie im Screenshot unten sehen können, sind sowohl die Btrfs-Dateisysteme (sdb1 und sdb2 Partitionen) wurden korrekt gemountet.

$ df -h -t btrfs

Erstellen von Snapshots eines Btrfs-Dateisystems

In diesem Abschnitt erstellen wir das Dummy-Projekt web1 auf der /data/projects/web1 Btrfs-Unterband. Wir werden in diesem Abschnitt eine Momentaufnahme dieses Teilvolumens sowie einige andere Momentaufnahmen in späteren Abschnitten dieses Artikels erstellen.

Erstellen Sie zuerst das neue Verzeichnis /Daten/Projekte, wie folgt:

$ sudo mkdir -v /data/projects

Als nächstes erstellen Sie das neue Untervolumen web1 in dem /data/projects-Verzeichnis, wie folgt:

$ sudo btrfs Subvolume erstellen /data/projects/web1

Erstellen Sie abschließend den neuen Dateiindex.html im /data/projects/web1 Subvolume mit dem Nano-Texteditor wie folgt:

$ sudo nano /data/projects/web1/index.html

Geben Sie die folgenden Codezeilen in den Index ein.html-Datei:




Demo-Website



Hallo Welt




Wenn Sie fertig sind, drücken Sie <Strg> + X gefolgt von Ja und <Eingeben> um die zu retten Index.html-Datei.

Erstellen Sie auf die gleiche Weise die neue Datei Stil.CSS in dem /data/projects/web1 Untervolumen wie folgt:

$ sudo nano /data/projects/web1/style.CSS


Geben Sie die folgenden Codezeilen in das Stil.CSS Datei:

h1
Farbe grün;

Wenn Sie fertig sind, drücken Sie <Strg> + X gefolgt von Ja und <Eingeben> um die zu retten Stil.CSS Datei.

Jetzt die /data/projects/web1 Untervolumen enthält die Index.html und Stil.CSS-Datei.

$ ls -lh /data/projects/web1

Wir werden alle Snapshots dieses Btrfs-Dateisystems im /Daten/.Schnappschüsse Verzeichnis.

Erstellen Sie zuerst die /Daten/.Schnappschüsse Verzeichnis mit folgendem Befehl:

$ sudo mkdir -v /data/.Schnappschüsse

Erstellen Sie als Nächstes den schreibgeschützten Snapshot /Daten/.Schnappschüsse/web1-2020-12-30 des /data/projects/web1 Untervolumen mit folgendem Befehl:

$ sudo btrfs Subvolume-Snapshot -r /data/projects/web1 /data/.Schnappschüsse/web1-2020-12-30

Wie ihr seht, der neue Schnappschuss /Daten/.Schnappschüsse/web1-2020-12-30 wurde erschaffen.

$ sudo btrfs Subvolume-Liste /data

Snapshots auf externem Laufwerk sichern

So sichern Sie den Schnappschuss /Daten/.Schnappschüsse/web1-2020-12-30 in ein anderes Btrfs-Dateisystem (externes Laufwerk sdb2, in diesem Fall) eingehängt auf dem /Schnappschüsse Verzeichnis, führen Sie den folgenden Befehl aus:

$ sudo btrfs senden /data/.Schnappschüsse/web1-2020-12-30 | sudo btrfs empfangen /Schnappschüsse

Der Schnappschuss /Daten/.Schnappschüsse/web1-2020-12-30 sollte auf das externe Btrfs-Dateisystem gesichert werden (sdb2) montiert auf dem /Schnappschüsse Verzeichnis.

Wie Sie sehen können, ist die neues Unterband web1-2020-12-30 wurde auf dem externen Btrfs-Dateisystem erstellt.

$ sudo btrfs Subvolume-Liste / Snapshots

Das Schnappschuss web1-2020-12-30 sollte die gleichen Dateien haben/Verzeichnisse als die /Daten/.Schnappschüsse/web1-2020-12-30 Schnappschuss.

$ tree -a /Schnappschüsse

Weitere Informationen zum gesicherten Snapshot erhalten Sie /snapshosts/web1-2020-12-30 wie folgt:

$ sudo btrfs subvolume show /snapshots/web1-2020-12-30

Inkrementelle Sicherung von Snapshots auf externem Laufwerk

Wenn die Snapshots viele Dateien enthalten, die auf einem externen Laufwerk gesichert werden müssen, können Sie mit inkrementellen Backups den Backup-Vorgang beschleunigen. In diesem Fall aktualisiert Btrfs nur die Dateien, die sich seit dem letzten Snapshot geändert haben, und kopiert neue Dateien, die im letzten Snapshot nicht verfügbar waren.

In diesem Abschnitt zeige ich Ihnen, wie Sie inkrementelle Backups von Btrfs-Snapshots auf externe Btrfs-Dateisysteme durchführen.

Öffnen Sie zuerst die Index.html-Datei von dem /data/projects/web1 Untervolumen, wie folgt:

$ sudo nano /data/projects/web1/index.html

Nehmen Sie alle gewünschten Änderungen an den Index.html-Datei. Wenn Sie fertig sind, drücken Sie <Strg> + X gefolgt von Ja und <Eingeben> um die zu retten Index.html Datei.

Erstellen Sie einen neuen schreibgeschützten Snapshot der /data/projects/web1 Untervolumen, wie folgt:

$ sudo btrfs Subvolume-Snapshot -r /data/projects/web1 /data/.Schnappschüsse/web1-2020-12-31

Wie ihr seht, der neue Schnappschuss /Daten/.Schnappschüsse/web1-2020-12-31 des /data/projects/web1 Untervolumen wurde erschaffen.

$ sudo btrfs Subvolume-Liste /data

Jetzt sind wir bereit, ein inkrementelles Backup zu erstellen.

Um ein inkrementelles Backup zu erstellen, benötigen Sie einen gemeinsamen Snapshot sowohl des Quell- als auch des Ziel-(externen Laufwerks) Btrfs-Dateisystems. Der allgemeine Snapshot ist normalerweise der neueste Snapshot eines Btrfs-Subvolumes. Wenn Sie einen neuen Snapshot im Quell-Btrfs-Dateisystem erstellen, wird der neue Snapshot mit dem neuesten Snapshot (verfügbar sowohl im Quell- als auch im Ziel-Btrfs-Dateisystem) des Quell-Btrfs-Dateisystems verglichen. Btrfs berechnet die Differenz und sendet nur die erforderlichen Daten an das Ziel-Btrfs-Dateisystem (das externe Laufwerk).

Um beispielsweise eine inkrementelle Sicherung der /Daten/.Schnappschüsse/web1-2020-12-31 Schnappschuss, Sie müssen den übergeordneten Snapshot angeben (der neueste Snapshot, der sowohl im Quell- als auch im Ziel-Btrfs-Dateisystem verfügbar ist), /Daten/.Schnappschüsse/web1-2020-12-30, auch.

Eine inkrementelle Sicherung der of /Daten/.Schnappschüsse/web1-2020-12-31 Snapshot kann wie folgt in ein externes Btrfs-Dateisystem aufgenommen werden:

$ sudo btrfs send -p /data/.Schnappschüsse/web1-2020-12-30 /Daten/.Schnappschüsse/web1-2020-12-31 | sudo btrfs empfangen /Schnappschüsse

Eine inkrementelle Sicherung der of /Daten/.Schnappschüsse/web1-2020-12-31 Schnappschuss sollte gemacht werden.

Wie Sie sehen können, ist die web1-2020-12-31 Schnappschuss wurde auf das externe Btrfs-Dateisystem gesichert, das auf dem /Schnappschüsse Verzeichnis.

$ sudo btrfs Subvolume-Liste / Snapshots

Wie Sie im Screenshot unten sehen können, haben Sie die Änderungen an der Index.html-Datei gibt es im web1-2020-12-31 Schnappschuss die auf das externe Btrfs-Dateisystem gesichert wurde.

$ cat /snapshots/web1-2020-12-31/index.html

Auf die gleiche Weise können Sie beliebig viele inkrementelle Backups Ihrer Snapshots erstellen.

Ich zeige Ihnen noch einmal, wie Sie ein inkrementelles Backup erstellen. Ich werde mir nicht die Zeit nehmen, es noch einmal zu erklären. Stattdessen zeige ich Ihnen nur den Prozess zur Verdeutlichung.

Öffne das Index.html-Datei von dem /data/projects/web1 Untervolumen, wie folgt:

$ sudo nano /data/projects/web1/index.html

Nehmen Sie alle gewünschten Änderungen an den Index.html-Datei. Wenn Sie fertig sind, drücken Sie <Strg> + X gefolgt von Ja und <Eingeben> um die zu retten Index.html-Datei.

Erstellen Sie einen neuen schreibgeschützten Snapshot der /data/projects/web1 Untervolumen, wie folgt:

$ sudo btrfs Subvolume-Snapshot -r /data/projects/web1 /data/.Schnappschüsse/web1-2020-12-31_2

Erstellen Sie eine inkrementelle Sicherung der /Daten/.Schnappschüsse/web1-2020-12-31_2 Schnappschuss in ein externes Btrfs-Dateisystem wie folgt:

$ sudo btrfs send -p /data/.Schnappschüsse/web1-2020-12-31 /data/.Schnappschüsse/web1-2020-12-31_2 | sudo btrfs empfangen /Schnappschüsse

Hinweis: Nun, der übergeordnete Snapshot, zu dem die /Daten/.Schnappschüsse/web1-2020-12-31_2 Schnappschuss wird verglichen /Daten/.Schnappschüsse/web1-2020-12-31.

Wie Sie sehen können, ist die web1-2020-12-31_2 Snapshot wurde im externen Btrfs-Dateisystem gesichert, das auf dem /Schnappschüsse Verzeichnis.

$ sudo btrfs Subvolume-Liste / Snapshots

Wie Sie im Screenshot unten sehen können, wurden die letzten Änderungen an der Index.html-Datei sind auf der erhältlich web1-2020-12-31_2 Schnappschuss auf dem externen Btrfs-Dateisystem gesichert.

$ cat /snapshots/web1-2020-12-31_2/index.html

Die Dinge sauber halten

Wenn Sie Ihre Btrfs-Snapshots häufig sichern, erhalten Sie am Ende viele Snapshots, und es kann schwierig werden, sie zu verwalten. Glücklicherweise können Sie jeden Snapshot aus dem Btrfs-Dateisystem entfernen.

Wenn Sie ein externes Laufwerk verwenden, das groß genug ist, um Backups der Btrfs-Snapshots aufzubewahren, können Sie einige Snapshots in Ihrem Btrfs-Dateisystem speichern und alle Snapshots auf Ihrem externen Laufwerk sichern.

Wenn Sie ein kleineres externes Laufwerk verwenden, können Sie selektiv nur die wichtigsten Snapshots auf dem externen Laufwerk sichern.

Um Backups Ihrer Btrfs-Snapshots durchzuführen, müssen Sie mindestens den neuesten Snapshot sowohl auf der Quelle (/Daten/.Schnappschüsse) und das Ziel (/Schnappschüsse - externes Laufwerk) Btrfs-Dateisysteme. Sie können also alle Snapshots außer dem neuesten Snapshot an beiden Enden entfernen.

In diesem Fall ist der neueste Snapshot beispielsweise web1-2020-12-31_2. Um inkrementelle Backups durchzuführen, muss dieser Snapshot also auf den Btrfs-Dateisystemen der Quelle und des Ziels (externes Laufwerk) aufbewahrt werden.

Angenommen, Sie möchten die entfernen /Daten/.Schnappschüsse/web1-2020-12-30 Schnappschuss.

Führen Sie dazu den folgenden Befehl aus:

$ sudo btrfs Subvolume löschen /data/.Schnappschüsse/web1-2020-12-30

Der Btrfs-Schnappschuss /Daten/.Schnappschüsse/web1-2020-12-30 sollte jetzt entfernt werden.

Auf die gleiche Weise können Sie die /Daten/.Schnappschüsse/web1-2020-12-31 Schnappschuss, wie folgt:

$ sudo btrfs Subvolume löschen /data/.Schnappschüsse/web1-2020-12-31

Jetzt nur noch der neueste Schnappschuss, /Daten/.Schnappschüsse/web1-2020-12-31_2, ist im Btrfs-Dateisystem verfügbar, eingehängt auf dem /Daten Verzeichnis. Die anderen Snapshots werden auf dem externen Laufwerk gesichert, das auf dem /Schnappschüsse Verzeichnis.

$ sudo btrfs Subvolume-Liste /data
$ sudo btrfs Subvolume-Liste / Snapshots

Wiederherstellen von Snapshots von einem externen Laufwerk

Wenn Sie Ihre Snapshots auf dem externen Laufwerk gesichert haben, können Sie diese jederzeit vom externen Laufwerk wiederherstellen.

Zum Beispiel habe ich die entfernt web1-2020-12-30-Schnappschuss aus meinem Btrfs-Dateisystem, eingehängt auf dem /Daten Verzeichnis. Dieser Snapshot wird jedoch auf dem externen Laufwerk gesichert, das auf dem /Schnappschüsse Verzeichnis. Lassen Sie uns diesen Schnappschuss wiederherstellen.

$ sudo btrfs Subvolume-Liste / Snapshots

Um die wiederherzustellen web1-2020-12-30-Schnappschuss Führen Sie vom externen Laufwerk den folgenden Befehl aus:

$ sudo btrfs sende /snapshots/web1-2020-12-30 | sudo btrfs empfangen /data/.Schnappschüsse

Das Schnappschuss web1-2020-12-30 sollte auf dem Btrfs-Dateisystem wiederhergestellt werden, das auf dem /Daten Verzeichnis.

Wie Sie sehen können, ist die web1-2020-12-30-Schnappschuss wird auf dem Btrfs-Dateisystem wiederhergestellt, das auf dem /Daten Verzeichnis.

$ sudo btrfs Subvolume-Liste /data

Und wie Sie sehen, ist der Inhalt der Index.html Datei aus dem web1-2020-12-30-Schnappschuss. Dies ist die erste Version des Index.html Datei von früher.

$ Katze /Daten/.Schnappschüsse/web1-2020-12-30/index.html

Fazit

In diesem Artikel haben Sie gelernt, wie Sie Snapshots Ihres Btrfs-Dateisystems auf einem externen Laufwerk sichern. Sie haben auch gelernt, wie Sie inkrementelle Backups Ihrer Btrfs-Snapshots auf ein externes Laufwerk erstellen. Schließlich haben Sie gelernt, wie Sie vorhandene Snapshots aus einem Brtfs-Dateisystem entfernen und Snapshots auch von der externen Festplatte wiederherstellen.

So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...
So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...