man zfs
のzfs receive
を読むと、
-F Force a rollback of the file system to the most recent snap-
shot before performing the receive operation. If receiving an
incremental replication stream (for example, one generated by
"zfs send -R -Fi -iI"), destroy snapshots and file systems
that do not exist on the sending side.
しかし、-F
が実際に何をするのかよくわかりません。
zfs receive tank/pool
の場合、受信したスナップショットは宛先側のファイルシステムにロールバックされます。これが必要です。
どのような状況で-F
を使用しますか?
-Fスイッチは、受信後に宛先データセットをいじった場合に便利です。変更を加えると(ディレクトリリストのように無害なことを行うと、これは時々変更されます)、最初の転送後の状態ではなくなります。反対側のzfs receive
によって作成されたインクリメンタルデータストリームからプレーンなzfs send -i tank/dataset@old tank/dataset@new
を実行しようとすると、エラーが発生します。この場合、受信側には2つのオプションがあります。
zfs rollback
を使用して、手動で最後のスナップショットに戻すことができます。-F
スイッチをzfs receive
に指定して、自動的に処理できるようにしますもちろん、それは破壊的な操作かもしれないので、それを使用する前にそれが何をしているのかを理解する必要があります。ただし、他のデータが書き込まれていない非ライブの「バックアップ」宛先にスナップショットをコピーするだけの場合は、安全であるはずです。
他の人はここZFSの専門家です、あなたがそれを見たことがない場合に備えて、私は単にこれを投稿します。
このオプションの使用は、ロールバックが発生してから受信が開始されるまでの間にファイルシステムが変更された場合に必要になることがあります。