通过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拆分文件传输到接收主机,然后通过管道传输到zfs recv接收串联的pbzip2文件。
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接收:
cat /somedir/snap-inc-10-to-12.pbzip2--* | pbzip2 -dc | zfs recv -Fv tank/vm
用户朋友提到:物有所值。我不会直接发送| 压缩| 解压缩 如果传输线断裂,并且接收期间您的池长时间处于脱机状态,则在接收端会导致问题。-如果正在进行的发送/接收被网络中断中断,但接收池中的<28较早的zfs版本以前遇到过问题,但没有使池脱机。那很有意思。仅在接收端退出“ zfs recv”时,才重新发送快照。如果需要,请手动终止“ zfs recv”。在FreeBSD或Linux中,zfs send / recv现在有了很大的改进。