Se você armazenar os instantâneos em arquivos, ao contrário do sistema de arquivos (por exemplo,
com zfs receive
), receio, isso não é possível.
ZFS no lado de recebimento
Se você usa o ZFS no envio e no lado de recepção, pode evitar ter para transferir todo o instantâneo e apenas transferir as diferenças do instantâneo em comparação com o anterior:
ssh myserver 'zfs send -i pool/dataset@2014-02-04 pool/dataset@2014-02-05' | \
zfs receive
O ZFS sabe sobre os instantâneos e armazena blocos mútuos apenas uma vez. Tendo o sistema de arquivos entender os instantâneos permite que você exclua os antigos sem problemas.
Outro sistema de arquivos no lado de recebimento
No seu caso, você armazena os instantâneos em arquivos individuais e o seu sistema de arquivos não tem conhecimento dos instantâneos. Como você já percebeu, isso quebra a rotação. Você ou tem que transmitir instantâneos inteiros, o que desperdiçará largura de banda e armazenamento espaço, mas permite excluir instantâneos individuais. Eles não dependem de entre si. Você pode fazer instantâneos incrementais como este:
ssh myserver 'zfs send -i pool/dataset@2014-02-04 pool/dataset@2014-02-05' \
> incremental-2014-02-04:05
Para restaurar um instantâneo incremental, você também precisa dos instantâneos anteriores. Isso significa que você não pode excluir os incrementais antigos.
Soluções possíveis
Você pode fazer incrementais como mostrado no meu último exemplo e fazer um novo não incremental a cada mês. Os novos incrementos dependem disso não incremental e você está livre para excluir os instantâneos antigos.
Ou você pode procurar outras soluções de backup. Há sim
rsnapshot , que usa rsync
e hard links.
Ele faz um trabalho muito bom em rotação e é muito eficiente na largura de banda, já que
requer um backup completo apenas uma vez.
Depois, há bareos . Faz incrementais, que têm economia de espaço e largura de banda. Tem um recurso muito bom; pode calcular um backup completo de um conjunto de incrementais. Isso permite que você exclua o antigo incrementais. Mas é um sistema bastante complexo e destinado a configurações maiores.
A melhor solução, no entanto, é usar o ZFS no lado do recebimento. Será
largura de banda eficiente, armazenamento eficiente e muito mais rápido do que o outro
soluções. A única desvantagem que posso pensar é que você deve ter um
mínimo de 8 GiB de memória ECC nessa caixa (você pode ficar bem com 4 GiB se
não execute nenhum serviço e use-o apenas em zfs receive
).