ファイルシステムのスナップショットを受信するときは、次の重要な点に留意してください。
スナップショットとファイルシステムの両方が受信されます。
ファイルシステムとその子孫のすべてのファイルシステムがマウント解除されます。
ファイルシステムが受信されている間は、それらにアクセスできません。
受信される元のファイルシステムは、その転送中に存在してはいけません。
ファイルシステム名がすでに存在する場合は、zfs rename コマンドを使ってファイルシステムの名前を変更できます。
次に例を示します。
# 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 |
対象のファイルシステムに変更を加え、新たに増分スナップショットを送信する場合は、まず受信側のファイルシステムをロールバックする必要があります。
次のような例を考えます。まず、次のようにファイルシステムに変更を加えます。
host2# rm newtank/dana/file.1 |
次に、tank/dana@snap3 の増分を送信します。ただし、新しい増分スナップショットを受信するには、まず受信側のファイルシステムをロールバックする必要があります。または、-F オプションを使用すれば、ロールバック手順を実行する必要がなくなります。次に例を示します。
host1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh host2 zfs recv -F newtank/dana |
増分スナップショットを受信するときは、対象のファイルシステムが存在している必要があります。
ファイルシステムに変更を加えたあとで、新しい増分スナップショットを受信するために受信側のファイルシステムのロールバックを行わない場合、または -F オプションを使用しない場合は、次のようなメッセージが表示されます。
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 |
-F オプションが正常に実行される前に、次の検査が行われます。
最新のスナップショットが増分ソースと一致しない場合は、ロールバックも受信も完了せず、エラーメッセージが返される。
zfs receive コマンドで指定された増分ソースと一致しない異なるファイルシステムの名前を間違って指定した場合は、ロールバックも受信も完了せず、次のエラーメッセージが返される。
cannot send 'pool/fs@name': not an earlier snapshot from the same fs |