Apenas para o Solaris, consulte "Envio do ZFS" (assumindo o Solaris 10 atualização 2 ou posterior).
O processo é primeiro tirar um instantâneo e depois "enviá-lo" para outro lugar. Por exemplo:
zfs snapshot POOL/dataset@backup1
zfs send POOL/dataset@backup1 | ssh $USER@$HOST zfs receive $TARGETPOOL/$TARGETDATASET
A solução acima tem confiabilidade sólida.
O rsync é sua segunda melhor opção, mas oferece o benefício adicional de ser multi-plataforma. O rsync não é fornecido com o Solaris por padrão, mas pode ser facilmente instalado, por exemplo, o Solaris Free Ware.
Você deve limpar seus instantâneos quando não os desejar mais. Mantê-los por um tempo é bom - você pode usá-los para enviar fluxos incrementais.
Para fazer fluxos incrementais, seus segundos (e subseqüentes) backups ficarão assim:
zfs snapshot POOL/dataset@backup2
zfs send -i backup1 POOL/dataset@backup2 | ssh $USER@$HOST zfs receive $TARGETPOOL/$TARGETDATASET
zfs destroy POOL/dataset@backup1
Nota: Destrua o penúltimo instantâneo, permitindo que você faça um incremento novamente na próxima vez !!!
Ter muitas centenas ou milhares de instantâneos espalhados pode ser problemático. Em primeiro lugar, afeta severamente o desempenho dos utilitários de gerenciamento, como zfs list
. Em segundo lugar, à medida que os dados mudam, eles começam a ocupar espaço (inicialmente não ocupam espaço em disco)
Relacionado com o rsync está usando o cpio (de maneira similar ao uso do tar) ... o cpio manipula mais arquivos estranhos do que o tar. Em particular, ele lida com arquivos esparsos, recriará links físicos, se possível, e manipulará outros tipos de arquivos adequadamente.
find /backup_directory | cpio -o | ssh $USER@$HOST cpio -idm /target_directory
cpio -o
= Criar backup (copiar)
cpio -i
= Restaurar do backup (copiar)
O -d e -m devem recriar a estrutura de diretórios e manter permissões / tempos de modificação, etc., respectivamente.
O alcatrão é o favorito de todos porque ... bem, não há uma boa razão. O tar funciona bem se você sabe que só terá arquivos simples.