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
Prinzipiell müsste auch ein…
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...
zfs snapshot
Hallo,habe mal eine Frage,wenn ich den snapshot immer gleich benenne wird der Alte dann Automatsich ueberschrieben ?
Mvh. Karl
Hallo Karl, der Name eines…
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
- Neuen Kommentar hinzufügen
- 3688 Aufrufe
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