Eu uso o pbzip2 o tempo todo (bzip2 paralelo) ao enviar pela WAN. Como está encadeado, você pode especificar o número de encadeamentos a serem usados com a opção -p. Instale o pbzip2 primeiro nos hosts de envio e recebimento. As instruções de instalação estão em 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"
A chave principal é criar instantâneos em intervalos frequentes (~ 10 minutos) para diminuir o tamanho do instantâneo e enviar cada instantâneo. O ssh não será retomado a partir de um fluxo de snapshot quebrado, por isso, se você tiver um snapshot enorme para enviar, canalize o fluxo para pbzip2, depois divida em pedaços de tamanho gerenciável, em seguida, rsync divida os arquivos no host de recebimento e, em seguida, envie para o zfs recv os arquivos pbzip2 concatenados.
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--
isso produzirá arquivos nomeados em blocos de 500 MB:
/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 para receber o host várias vezes (você pode rsync antes mesmo que o envio do zfs seja concluído ou assim que vir um fragmento completo de 500 MB), pressione ctrl + c a qualquer momento para cancelar:
while [[ true ]]; do rsync -avP /somedir/snap-inc-10-to-12.pbzip2--* offsite-backup:/somedir ; sleep 1; done;
O zfs recebe:
cat /somedir/snap-inc-10-to-12.pbzip2--* | pbzip2 -dc | zfs recv -Fv tank/vm
O amigo do usuário mencionou: Para o que vale a pena. Eu não faria um envio direto | comprimir | descomprimir | receber isso pode causar problemas no final do recebimento, se a linha de transferência se romper e seus pools ficarem offline por um longo período durante o recebimento. - Eu encontrei problemas antes com as versões mais antigas do zfs <28 no host de recebimento, se um envio / recv em andamento for interrompido por quedas na rede, mas não na medida em que os pools estejam off-line. Isso é interessante. Reenvie o instantâneo apenas se o "zfs recv" tiver saído no final de recebimento. Mate o "zfs recv" manualmente, se necessário. O zfs send / recv está muito melhorado agora no FreeBSD ou Linux.