ZFS-Dataset/ZVol auf anderen Pool umziehen

Gespeichert von Michael Kirgus am Fr., 22.12.2017 - 12:55

Vor kurzem musste ich ein Dataset auf einen anderen ZFS-Pool umziehen. Der Umzug besteht aus 2 Schritten:

1. Snapshot von dem Pool/ZVol erstellen:

zfs snapshot -r <Poolname>/<Name bzw. Pfad zum Dataset/ZVol>@migrate

2. Den Snapshot an den neuen Pool senden:

zfs send -R <Poolname>/<Name bzw. Pfad zum Dataset>@migrate | zfs receive -F <Neuer Pool>/<Name bzw. Pfad zum gewünschten Dataset>

Am neuen Pool muss zusätzlich auch nochmals der Name des Snapshots angegeben werden, Beispiel:

zfs send -R DATA1/Daten123@migrate | zfs receive -F DATA2/Daten123

Hinweis: Bei einem send/receive eines ZFS-Snapshots werden auch alle Snapshots übertragen, welche vor dem manuellen Snapshot angelegt wurden.

Kommentare

Gespeichert von hardy (nicht überprüft) am Do., 15.03.2018 - 13:39

Permalink

hallo,

ich würde gern den kompletten inhalt eines pools auf einen anderen (größeren pool) kopieren. gibt es da einen einfachen befehl oder muss das für jedes dataset/snapshot einzeln gemacht werden?

 

lg hardy

 

Gespeichert von Michael Kirgus am Sa., 24.03.2018 - 01:19

Permalink

Prinzipiell müsste auch ein Snapshot eines Pools möglich sein, dieser beinhaltet dann auch alle Datasets und ZVols in dem Pool sowie natürlich auch die jeweiligen Snapshots. Wichtig ist hier natürlich der -r Schalter.

Mit

zfs snapshot -r <Poolname>@migrate

und dann mit

zfs send -R <Poolname>@migrate | zfs receive -F <größerer Pool>

mal probieren. Ich kann die Thematik jetzt leider nicht in meinem Produktivsystem nachvollziehen, sollte aber so funktionieren.

Nichts anderes macht zum Beispiel dieses Shellscript unter https://gist.github.com/petedoyle/1241674...

 

Gespeichert von Karl (nicht überprüft) am Do., 19.12.2019 - 17:55

Permalink

Hallo,habe mal eine Frage,wenn ich den snapshot immer gleich benenne wird der Alte dann Automatsich ueberschrieben ?

 

Mvh. Karl

Gespeichert von Michael Kirgus am Fr., 13.03.2020 - 20:09

Antwort auf von Karl (nicht überprüft)

Permalink

Hallo Karl,

der Name eines ZFS-Snapshots ist eindeutig in jedem Dataset/Zvol. Bei dem Versuch 2 Snapshots mit dem gleichen Namen zu erstellen, wirst du einen Fehler zurückgeliefert bekommen.

Ich empfehle hier das "zerstören" des Snapshots mit "zfs destroy". Out-Of-Box gibt es keine Möglichkeit einen Snapshot einfach zu überschreiben.

Eine andere Möglichkeit wäre mittels "zfs send" sowie "zfs receive -F" direkt das gesamte Dataset/Zvol zu überschreiben, das enthält dann auch alle Snapshots des Ziel-Datasets.

Neuen Kommentar hinzufügen

Sind Sie ein Mensch? Schlimm, aber leider notwendig:

Bild-CAPTCHA
Geben Sie die Zeichen ein, die im Bild gezeigt werden.