WAN経由で送信するときは常にpbzip2(並列bzip2)を使用します。スレッド化されているため、使用するスレッドの数を-pオプションで指定できます。最初に送信ホストと受信ホストの両方にpbzip2をインストールします。インストール手順はhttp://compression.ca/pbzip2/にあります。
zfs send -i tank/vm@2009-10-10 tank/vm@2009-10-12 | pbzip2 -c | \
ssh offsite-backup "pbzip2 -dc | zfs recv -F tank/vm"
主なキーは、スナップショットを頻繁に(約10分)間隔で作成し、スナップショットのサイズを小さくしてから各スナップショットを送信することです。sshは壊れたスナップショットストリームから再開しないため、送信する巨大なスナップショットがある場合、pbzip2にストリームをパイプし、管理可能なサイズのチャンクに分割し、受信ホストにファイルをrsyncし、連結されたpbzip2ファイルをzfsにパイプします。
zfs send -i tank/vm@2009-10-10 tank/vm@2009-10-12 | pbzip2 -c | \
split -b 500M - /somedir/snap-inc-10-to-12.pbzip2--
これにより、500MBのチャンクで名前が付けられたファイルが生成されます。
/somedir/snap-inc-10-to-12.pbzip2--aa
/somedir/snap-inc-10-to-12.pbzip2--ab
/somedir/snap-inc-10-to-12.pbzip2--ac
...
受信ホストへのrsyncを複数回(zfsの送信が完了する前、または500MBのチャンクが完全に表示されたらすぐにrsyncできます)、キャンセルするにはいつでもctrl + cを押します。
while [[ true ]]; do rsync -avP /somedir/snap-inc-10-to-12.pbzip2--* offsite-backup:/somedir ; sleep 1; done;
zfs receive:
cat /somedir/snap-inc-10-to-12.pbzip2--* | pbzip2 -dc | zfs recv -Fv tank/vm
ユーザーfreindが言及しました。私は直接送信しません| 圧縮| 解凍| これを受信すると、転送ラインがスナップし、受信中にプールが長時間オフラインになる場合、受信側で問題が発生する可能性があります。-進行中の送信/受信がネットワークのドロップによって中断されたが、プールがオフラインになった範囲ではない場合、受信ホストで以前のzfsバージョン<28で問題が発生しました。それは面白い。「zfs recv」が受信側で終了した場合にのみ、スナップショットを再送信します。必要に応じて、手動で「zfs recv」を強制終了します。zfs send / recvは、FreeBSDまたはLinuxで大幅に改善されました。