Wie benenne ich ein BTRFS-Subvolume um?

24

Ich habe ein BTRFS-Dateisystem mit einer Reihe von Subvolumes. So weit, ist es gut. Ich muss den Namen eines Subvolumes ändern, leider btrfserlaubt mir das Programm nicht, ein Subvolume umzubenennen. Die Suche mit Google hat einige Ergebnisse erbracht, von denen einer sagte, ich könne nur mv, der andere sagte, ich könne nur snapshoteinen neuen Namen vergeben und das alte Subvolume löschen. Bevor ich meine Partition zum Absturz bringe und sie von der Sicherung neu laden muss (sie ist ziemlich groß), lautet meine Frage:

  • Wie kann ein Subvolume derzeit am besten umbenannt werden?
  • Ist es in Ordnung, es einfach zu mvmachen, oder werden einige interne Strukturen ungültig?
  • Ist das Erstellen eines neuen Schnappschusses und das Entfernen des alten Subvolumes der richtige Weg, oder hat dies einige Nachteile?

Ich weiß, dass alles noch experimentell ist, aber für meine Zwecke hat es recht gut funktioniert (und ich habe für jeden Tag inkrementelle Backups).

hochl
quelle
1
Ich bin froh zu hören, dass btrfs für Sie gut funktioniert. Bisher funktioniert es auch gut für mich. Keine Probleme.
MountainX für Monica Cellio

Antworten:

16

Einfach mvso. Dies ist die empfohlene Vorgehensweise in der Dokumentation der Ubuntu-Community .

Und um weiter zu verdeutlichen, warum dies der richtige Weg ist, finden Sie hier ein Zitat aus dem Sysadmin-Handbuch von btrfs:

Schnappschüsse

Ein Snapshot ist einfach ein Subvolume, das seine Daten (und Metadaten) mithilfe der COW-Funktionen von btrfs mit einem anderen Subvolume teilt. Sobald ein [beschreibbarer] Snapshot erstellt wurde, gibt es keinen Unterschied im Status zwischen dem ursprünglichen Subvolume und dem neuen Snapshot-Subvolume. Um ein Rollback zu einem Snapshot durchzuführen, heben Sie die Bereitstellung des geänderten Original-Subvolumes auf und hängen Sie den Snapshot an seiner Stelle ein. Zu diesem Zeitpunkt kann das ursprüngliche Subvolume gelöscht werden, wenn dies gewünscht wird. Da ein Snapshot ein Subvolume ist, sind auch Snapshots von Snapshots möglich.

MountainX für Monica Cellio
quelle
8

Es gibt einige wichtige Dinge zu beachten. Die Benennungen:

btrfs Subvolume - unabhängiges insideDateisystem für Datencontainer . Es wird als Verzeichnis des vorhandenen FS dargestellt. Wenn Sie ein neues Subvolume erstellen, ist dieses leer und kann den logischen Datenblock im Dateisystem verwenden. Sehr praktisch, wenn Daten logisch getrennt werden sollen, z. B. verschiedene VMs oder verschiedene Clients auf verschiedenen Subvolumes. Dies ermöglicht das very fastEntfernen aller logischen Datenblöcke mit nur einem Subvolume-Löschbefehl.

btrfs Snapshot - eine Kopie des existingSubvolumes mit all seinen Daten, die sich im Moment des Snapshots befinden. Kann als Betriebssicherung zum Zurücksetzen von Einstellungen oder Änderungen verwendet werden, z. B. Erstellen eines Subvolume-Snapshots, Vornehmen von Änderungen (VM oder Daten), Prüfen, ob alles in Ordnung ist. Entfernen Sie den Snapshot nach einer gewissen Nachfrist. Wichtig zu beachten: Snapshots können nur gelesen ( -rswitch) und somit als Inkrementblöcke von FS-Änderungen verwendet und möglicherweise auf ein absolut anderes BTRFS übertragen werden!

Aktuelle (30.12.2016) BTRFS-Einschränkungen:

Das Kopieren oder Verschieben von Daten zwischen Subvolumes, z. B., mv dir1/dataset1 dir_subvolume1/erzeugt alle realen Daten, um Daten auf ein anderes Subvolume zu kopieren und im Falle eines Verschiebens von dem ursprünglichen zu entfernen. Und sehr effizientes Kopieren von Tonnen von Daten nur durch Referenzieren und damit Verwenden der COW-Funktion von BTRFS:

cp -a --reflink=always dir1/dataset1 dir_subvolume1/

und wenn nötig:

rm -rf dir1/dataset1

Ein schreibgeschützter Subvolume-Snapshot kann mvauf der vorhandenen Verzeichnisebene umbenannt (mit verschoben ) werden, kann jedoch nicht auf eine andere Unterverzeichnisebene umbenannt / verschoben werden. zB mv /btrfs/subvol_snap1 /btrfs/.snaphotsnicht möglich ist , erzeugt nicht viel erklärt Fehler: mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system. Um einen solchen Schnappschuss verschieben zu können, müssen Sie einen neuen schreibgeschützten Schnappschuss eines vorhandenen schreibgeschützten Schnappschusses an den neuen bevorzugten Speicherort erstellen und dann den alten entfernen:

btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1

Nur um das Leben einfacher zu machen:

btrfs sub list /btrfs

Ich hoffe, das spart allen neuen btrfs-Fans jede Menge Zeit :)

Arunas Bartisius
quelle
4

Wenn Sie das Stammvolume in ein verschachteltes Subvolume umbenennen möchten, müssen Sie einen Snapshot erstellen und anschließend a ausführen, find $ROOT_VOL -xdev -deleteum den vorherigen Inhalt des Stammvolumes zu entfernen. Die umgekehrte Manipulation (Umbenennen eines Subvolumes in das Root-Volume) scheint nicht möglich zu sein.

Tobu
quelle