Os backups completos periódicos são realmente necessários em uma configuração de backup incremental?

2

Eu pretendo usar um computador antigo que tenho como servidor de backup remoto para mim e para algumas outras pessoas. Estamos todos separados geograficamente, e o plano é fazer backups diários incrementais usando rsync e ssh.

Minha idéia original era fazer um backup completo inicial e depois nunca mais ter que lidar com a sobrecarga de fazê-lo e, a partir desse momento, copiar apenas os arquivos alterados desde o último backup.

Disseram-me que isso poderia ser ruim, mas não consigo entender o porquê. Como cada snapshot é composto por links físicos para os arquivos inalterados, além dos originais alterados, ele não será idêntico a um novo backup completo? Por que eu iria querer fazer outro backup completo?

EDITAR:

Eu deveria ter explicado melhor um ponto. Quando quero dizer que vou fazer backups incrementais usando o rsync, quero dizer:

rsync -avh --delete --link-dest=./remote/previous_increment ./local/ ./remote/new_increment

Que resulta em um instantâneo completo e funcional, pois conterá hardlinks para todos os arquivos inalterados. Mesmo se o backup completo e todos os incrementais anteriores forem excluídos, o último incremental ainda será consistente. Mas tenho certeza que se algum dos arquivos anteriores ficarem corrompidos, os últimos também, já que apontam para o mesmo inode.

E se eu fizer um backup completo sintético do lado do servidor periodicamente, quebrando os links no último instantâneo e copiando-o para outro HD protegido contra gravação (digamos, uma vez por mês). Dessa forma, eu teria uma cópia completa redundante e ainda evitaria a sobrecarga de reenviar os arquivos.

Isso resolveria o problema? Eu ainda precisaria fazer backups completos?

    
por rgcalsaverini 23.10.2013 / 09:11

3 respostas

6

Normalmente, se você fizer backups incrementais, só armazenará os arquivos realmente alterados de alguma forma (como um arquivo tar), enquanto os arquivos inalterados estiverem armazenados apenas nos arquivos de backup anteriores. Dessa forma, você precisaria de todos os arquivos de backup para uma recuperação e nunca poderia excluir backups antigos. Como isso não é praticável, você precisa fazer novos backups completos após algum tempo.

O que você está usando é mais avançado (rsnapshot?), em que você sempre armazena um conjunto completo de dados, mas mantém a sobrecarga mínima ao compartilhar dados entre backups por meio do uso de links físicos. Dessa forma, você pode excluir backups antigos sem invalidar os atuais. Então o argumento usual não conta.

Editar:

o rsnapshot funciona assim:

A primeira vez que cria uma cópia completa usando o rsync.

Qualquer backup depois disso cria uma nova árvore de diretórios completa, na qual todos os arquivos são hardlinks para o backup anterior. Depois disso, os arquivos alterados são substituídos executando o rsync sobre essa árvore.

Assim, cada backup é concluído, mas compartilha dados com backups mais antigos. Se você excluir um backup mais antigo, somente os arquivos que forem diferentes em todos os outros backups serão realmente excluídos. Para os arquivos compartilhados, apenas a contagem do link físico seria reduzida em 1.

A sobrecarga de um backup é a árvore de diretórios adicional que também usa algum espaço, é claro. Mas você pode excluir árvores de backup antigas sem afetar as restantes para recuperar esse espaço.

A descrição da sua estratégia de backup soa como rsnapshot para mim.

Edit2:

Se você estiver preocupado com a podridão de bits - ou seja, se os arquivos de backup existentes estão sendo corrompidos - você pode adicionar a opção -c ao rsync, que cria somas de verificação MD5 em arquivos locais e remotos. Isso aumentaria significativamente a E / S do disco, já que todos os arquivos teriam que ser lidos. Mas o tráfego na rede aumenta apenas ligeiramente, pois apenas as somas de verificação de todos os arquivos precisam ser transmitidas adicionalmente. Isso removeria o último motivo de um novo backup completo.

    
por 23.10.2013 / 09:40
1

O backup incremental, por exemplo, usando rsync , é um processo mais complicado que um backup estático, por exemplo, usando cp . Algumas pessoas acreditam que o backup incremental tem mais chances de ser corrompido.

  1. A falha pode estar na própria ferramenta; Sabe-se que rsync no Windows é escamoso e às vezes apaga arquivos do backup quando não deveria.

  2. Se a ferramenta de backup apenas armazena a diferença binária entre as versões de um arquivo, a perda de uma versão intermediária do arquivo pode impossibilitar a reconstrução da versão final do arquivo.

Qualquer que seja a sua solução de backup, teste-a regularmente restaurando uma cópia dos seus dados do backup.

    
por 23.10.2013 / 09:47
1

Acho que houve uma falta de comunicação.

Na maioria das vezes, quando ouço backups completos e backup incremental , as pessoas querem dizer:
Completo: backup de todos os dados.
Incremental: faça backup somente das alterações.

Se você precisar restaurar um backup, comece com o backup completo e, em seguida, com todos os incrementais. Isso pode levar muito tempo. Esse é um dos motivos pelos quais muitas corporações fazem backups completos no final de semana e parciais durante os dias da semana. Até cinco parciais são gerenciáveis.

Agora, o rsync geralmente não faz backups parciais. Se envia apenas as alterações através da rede, mas o resultado final é uma cópia completa de todos os dados. Assim, a razão mais usada para não usar apenas parciais não se aplica.


Note que é uma boa ideia ter pelo menos dois backups. Um conhecido bom e uma cópia de trabalho. Alterne entre esses dois, ou faça e teste um backup anual, defina-o como somente leitura e use outro backup até o próximo ano. Então repita.

    
por 23.10.2013 / 10:15