envio instantâneo ZFS incremental

3

Estou feliz em usar o zfsnap com o CentOS e o ZFSonLinux de maneira semelhante à descrita no site, mas se depararam com um problema. Infelizmente, os backups não foram executados há alguns dias e agora estou preso a uma situação estranha. Eu tenho uma série de backups incrementais no meu servidor ZFS de backup do meu servidor ZFS principal e alguns instantâneos mais recentes no servidor principal. Infelizmente, devido ao backup perdido e à destruição automática de instantâneos mais antigos no servidor principal, não há mais um instantâneo comum entre os dois sistemas para executar um envio incremental com. ou seja, no backup, há:

backuppool/x@snap2 
backuppool/x@snap3
backuppool/x@snap4

e no servidor zfs principal existe:

mainpool/x@snap6 
mainpool/x@snap7
mainpool/x@snap8

Existe alguma maneira de sincronizá-los novamente ou eu tenho que destruir tudo em backup e executar um full (não há espaço suficiente para dois backups completos)? Eu tentei especificar um envio referenciando o nome do snap4 no servidor de backup remoto do servidor principal, mas como o servidor principal não tem o snap 4 ele não pode calcular o incremental. Eu também tentei enviar snap4 do backup para o servidor principal, mas parece que a única maneira de fazer isso seria fazê-lo como um envio completo (não espaço suficiente), e eu precisaria eliminar instantâneos existentes. A exclusão de todo o seu histórico de backup, se você obter instantâneos incompatíveis, parece bastante inconveniente. Existe alguma solução nesse cenário?

    
por ak907 17.09.2015 / 18:21

1 resposta

4

Como você não possui um instantâneo de linha de base comum em sua configuração, não poderá mais executar zfs send incremental. Você precisaria destruir o conjunto de dados em backuppool :

zfs destroy -r backuppool/x

e reenvie o instantâneo mais recente para o backuppool

zfs send mainpool/x@6 | [transfer magic] | zfs recv backuppool/x

The deleting of all your backup history if you get snapshots mismatched seems pretty inconvenient, is there any solution in this scenario?

A "solução" é simplesmente não excluir os snapshots de origem, a menos que esses snapshots tenham sido verificados para terem sido transmitidos com sucesso (por exemplo, aparecer na saída zfs list -tall do controle remoto). Eu não tenho idéia se o zfsnap irá suportá-lo com isso, mas mesmo que não, você poderia usar um script de shell executando este tipo de verificação antes de deixar o zfsnap excluir qualquer coisa.

    
por 17.09.2015 / 20:24