Obtenha eficientemente deltas de arquivos para backups

4

Com muitos arquivos grandes de imagens esparsas do Xen que precisam ser armazenados em backup, estou procurando uma maneira eficiente de fazer isso em termos de espaço em disco (economizando espaço com uma ferramenta diferencial como duplicidade, bup, rsync, lvmsync da womble , etc.) e largura de banda de disco / rede. Infelizmente, o requisito de espaço e largura de banda limita as ferramentas que acabei de mencionar, pois elas varrem todo o conteúdo dos arquivos para encontrar deltas entre a origem e o destino.

Então, eu quero evitar as seguintes armadilhas:

  • Cópia oculta de arquivos inteiros

  • Varredura intensiva de arquivos inteiros para gerar somas de verificação para comparação

  • Cópias redundantes de dados no mesmo volume (devido a COW ou outro recurso) - e isso deve ser válido para os volumes de origem e de destino.

  • Degradação significativa do desempenho durante o uso normal do sistema

Uma pesquisa levou-me a um exemplo legal que atende a todos os critérios acima ... OS X Time Machine ao usar sparsebundles como o volume de origem. Ah, bem, isso não vai funcionar no Linux. Mas foi interessante ver como os tempos dos arquivos individuais de banda em um sparsebundle informam quais bits foram modificados desde a última data de backup - instantaneamente, com quase zero esforço. A economia de espaço não é perfeita, já que as bandas têm 4 MB de comprimento, mas ainda são muito boas.

Por fim, ao trabalhar com volumes lógicos com aprovisionamento dinâmico, deparei com o conjunto de testes de aprovisionamento dinâmico, que inclui um exemplo do uso de dados de alocação thinp para backups diferenciais rápidos. Achei que tinha encontrado minha solução ... basta colocar as imagens em um LV fino e usar instantâneos!

Mas percebi que isso usaria muito espaço no volume de origem, além de diminuir a velocidade. Os LVs normais são para uso a curto prazo.

Ainda me pergunto se há algumas opções de configuração script-fu ou crafty que poderiam fazer um volume lógico de instantâneo agir como um instantâneo 'fantasma': ele registraria apenas os dados de alocação de bloco associados a blocos modificados, mas não copiar - escreva os próprios blocos de dados. Este snapshot fantasma pode ser lido por um script de backup e selecionar instantaneamente os blocos modificados para um determinado LV. (Acho que alguns chamariam isso de diário.) Quando o backup for concluído com êxito, ele poderá excluir o instantâneo fantasma existente e criar um novo para manter as informações de modificação para o próximo backup diferencial.

A solução não precisa envolver o LVM, mas pensar em uma solução dessa maneira me permite apresentar a solução desejada de uma forma mais sólida. Tem que haver alguma maneira de alcançar esse nível de eficiência de backup no Linux.

    
por cprise 13.12.2014 / 10:33

0 respostas