Pretendo usar um computador antigo que possuo 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 nunca mais ter que lidar com a sobrecarga de fazê-lo, e a partir desse momento apenas copiar os arquivos alterados desde o último backup.
Foi-me dito que isso poderia ser ruim, mas não entendo o porquê. Como cada instantâneo é composto por links físicos para os arquivos inalterados, além dos originais alterados, não será idêntico a um novo backup completo? Por que eu gostaria de fazer outro backup completo?
EDITAR:
Eu deveria ter explicado um ponto melhor. Quando eu quero dizer que vou fazer backups incrementais usando rsync, quero dizer o seguinte:
rsync -avh --delete --link-dest=./remote/previous_increment ./local/ ./remote/new_increment
O que resulta em um instantâneo completo e funcional, pois ele conterá links físicos para todos os arquivos inalterados. Mesmo que o backup completo e todos os incrementais anteriores tenham sido excluídos, o último incremental ainda é consistente. Mas tenho certeza de que, se algum dos arquivos anteriores for corrompido, os últimos também, pois 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? Ainda precisaria fazer backups completos?
fonte
Respostas:
Normalmente, se você faz backups incrementais, apenas armazena os arquivos realmente alterados de alguma forma (como um arquivo tar) enquanto tiver os arquivos inalterados apenas nos arquivos de backup anteriores. Dessa forma, você precisaria de todos os arquivos de backup para uma recuperação e nunca poderá excluir backups antigos. Como isso não é praticável, você precisa fazer novos backups completos depois de algum tempo.
O que você está usando é mais avançado (rsnapshot?), Onde você sempre armazena um conjunto completo de dados, mas mantém a sobrecarga mínima ao compartilhar dados entre backups através do uso de links físicos. Dessa forma, você pode excluir backups antigos sem invalidar os atuais. Portanto, o argumento usual não conta.
Editar:
O rsnapshot funciona assim:
Na primeira vez, ele 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 nessa árvore.
Portanto, cada backup é concluído, mas compartilha dados com backups mais antigos. Se você excluir um backup antigo, apenas os arquivos diferentes em todos os outros backups serão realmente excluídos. Para os arquivos compartilhados, apenas a contagem de links físicos seria reduzida em 1.
A sobrecarga de um backup é a árvore de diretórios adicional que também utiliza algum espaço. Mas você pode excluir árvores de backup antigas sem afetar as demais para recuperar esse espaço.
A descrição da sua estratégia de backup parece rsnapshot para mim.
Edit2:
Se você estiver preocupado com a podridão por bits - ou seja, 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, pois todos os arquivos precisariam ser lidos. Mas o tráfego da rede aumenta apenas um pouco, pois apenas as somas de verificação de cada arquivo precisam ser transmitidas adicionalmente. Isso removeria o último motivo para um novo backup completo.
fonte
O backup incremental, ou seja, o uso
rsync
, é um processo mais complicado que o backup estático, ou seja, o usocp
. Algumas pessoas acreditam que é mais provável que o backup incremental seja corrompido.A falha pode estar na própria ferramenta;
rsync
no Windows é conhecido por ser esquisito e, às vezes, exclui arquivos do backup quando não deveria.Se sua ferramenta de backup armazena apenas 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.
fonte
Eu acho que houve uma falta de comunicação.
Na maioria das vezes, quando ouço backups completos e pessoas de backup incrementais, significam:
Completo: Faça backup de todos os dados.
Incremental: faça backup apenas das alterações.
Se você precisar restaurar um backup, inicie com o backup completo e todos os incrementais. Isso pode levar muito tempo. Essa é uma das razões pelas quais muitas empresas fazem backups completos no final de semana e parciais durante a semana. Até cinco parciais são gerenciáveis.
Agora, o rsync geralmente não faz backups parciais. Se envia apenas as alterações pela rede, mas o resultado final é uma cópia completa de todos os dados. Portanto, o motivo mais usado para não usar apenas parciais não se aplica.
Observe que é uma boa ideia ter pelo menos dois backups. Um conhecido e uma cópia de trabalho. Alterne entre esses dois ou faça e teste um backup anual, defina-o somente leitura e use outro backup até o próximo ano. Então repita.
fonte