Beim Empfangen von Datensystem-Snapshots sollten Sie folgenden wichtigen Punkte beachten:
Sowohl der Snapshot als auch das Dateisystem werden empfangen.
Das Dateisystem und alle untergeordneten Dateisysteme werden ausgehängt.
Während des Empfangs kann auf die betreffenden Dateisysteme nicht zugegriffen werden.
Das ursprüngliche Dateisystem, das empfangen werden soll, darf bei der Übertragung nicht vorhanden sein.
Wenn der Dateisystemname bereits vorhanden ist, können Sie das Dateisystem mit dem Befehl zfs rename umbenennen.
Beispiel:
# zfs send tank/gozer@0830 > /bkups/gozer.083006 # zfs receive tank/gozer2@today < /bkups/gozer.083006 # zfs rename tank/gozer tank/gozer.old # zfs rename tank/gozer2 tank/gozer |
Wenn Sie am Zieldateisystem eine Änderung vornehmen und danach einen weiteren inkrementellen Snapshot senden möchten, müssen Sie zunächst den vorherigen Zustand des Zieldateisystems wiederherstellen.
Betrachten wir das folgende Beispiel. Zunächst ändern Sie das Dateisystem wie folgt:
host2# rm newtank/dana/file.1 |
Dann senden Sie einen weiteren inkrementellen Snapshot (tank/dana@snap3). Sie müssen jedoch erst den vorherigen Zustand des Zieldateisystems wiederherstellen, damit es den neuen inkrementellen Snapshot empfangen kann. Sie können den Wiederherstellungsschritt aber auch mithilfe der Option -F überspringen. Beispiel:
host1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh host2 zfs recv -F newtank/dana |
Beim Empfang eines inkrementellen Snapshots muss das Zieldateisystem bereits vorhanden sein.
Wenn Sie am Dateisystem Änderungen vornehmen und den vorherigen Zustand des Zieldateisystems nicht wiederherstellen, sodass es den neuen inkrementellen Snapshot empfangen kann, oder Sie die Option -F nicht verwenden, wird eine Meldung wie die folgende angezeigt:
host1# zfs send -i tank/dana@snap4 tank/dana@snap5 | ssh host2 zfs recv newtank/dana cannot receive: destination has been modified since most recent snapshot |
Bevor das Ausführen der Option -F als erfolgreich gemeldet wird, werden die folgenden Überprüfungen durchgeführt:
Wenn der letzte Snapshot nicht mit der inkrementellen Quelle identisch ist, wird weder die Wiederherstellung des früheren Zustands noch der Empfang abgeschlossen, und es wird eine Fehlermeldung angezeigt.
Wenn Sie versehentlich den Namen eines anderen Dateisystems angeben, der mit dem inkrementellen Quellparameter des Befehls zfs receive nicht übereinstimmt, wird weder die Wiederherstellung des früheren Zustands noch der Empfang abgeschlossen, und es wird die folgende Fehlermeldung angezeigt:
cannot send 'pool/fs@name': not an earlier snapshot from the same fs |