Faça backup de instantâneos incrementais para outro volume

2

Estou procurando uma maneira de implementar algo próximo ao seguinte esquema de backup:

  1. Inicialmente, uma imagem completa é copiada para o destino de backup.
  2. Periodicamente (por exemplo, todas as noites), apenas blocos que foram alterados desde o último backup são copiados para o destino de backup.
  3. Idealmente, deve ser possível montar instantâneos de qualquer ponto no tempo ou excluir (achatar) alguns instantâneos de maneira seletiva.

Isso pode ser implementado usando o LVM (ou de alguma outra forma)? Ele precisa monitorar quais blocos ficaram sujos desde o último backup, o que eu não tenho certeza se o LVM pode fazer ... Eu prefiro evitar o custo permanente de performance de rodar em um snapshot do LVM o tempo todo.

    
por Vladimir Panteleev 01.04.2015 / 08:29

3 respostas

4

Um recém-chegado ao local é o link do Attic

Usamos o rdiff-backup por alguns anos como nosso principal método de backup. Foi ótimo para o que ele fez, mas criou dezenas / centenas de milhares de pequenos arquivos diff ao longo de um ano. A maioria dos sistemas de arquivos e discos vai se esforçar para lidar com uma contagem de mais de um milhão de arquivos. Fazer o backup de nosso armazenamento IMAP de 90 GB baseado no Maildir levaria algumas horas. Eu tive que constantemente diminuir o número de semanas / diffs que manteríamos para a história.

Em comparação, quando mudamos para o Attic, os backups noturnos foram executados em apenas 15 a 20 minutos. Isso significa que é muito mais viável manter um ano de backups incrementais para voltar a qualquer dia do ano anterior.

Principais características que me atraíram para o Attic:

  • Não cria milhares de arquivos no servidor de destino
  • Deduplicação usando tamanhos de bloco variável
  • Possui compactação integrada
  • Efetivo no backup de arquivos de imagem de máquinas virtuais
  • Eficiente em conexões WAN

Depois de usá-lo por 6-9 meses, estou bastante confiante de que ele é tão estável quanto o rdiff-backup. Eu ainda faço uma cópia multi-geração dos diretórios Attic usando mídia removível, mas cada mídia removível tem uma cópia completa do repositório Attic.

    
por 20.06.2015 / 04:47
2

Rsync / Rsnapshot são ferramentas muito melhores para esse tipo de trabalho, especialmente considerando que eles fornecem um diretório de snapshot "ao vivo" ser limitado a alguns arquivos no máximo, mas eles não podem derrubar o backup inteiro. Além disso, usando links físicos, você pode ter um backup incremental sem as inconveniências associadas a ele.

Eu usei essa solução no sistema de produção com milhões de arquivos e dezenas de instantâneos, com grande satisfação.

    
por 02.04.2015 / 16:10
2

Uma alternativa ao instantâneo do LVM é usar o driver de bloco datto (também conhecido como dattobd ).

Na página do GitHub do dattobd :

The Datto Block Driver (dattobd) solves the above problems and brings functionality similar to VSS on Windows to a broad range of Linux kernels. Dattobd is an open source Linux kernel module for point-in-time live snapshotting. Dattobd can be loaded onto a running Linux machine (without a reboot) and creates a COW file on the original volume representing any block device at the instant the snapshot is taken. After the first snapshot, the driver tracks incremental changes to the block device and therefore can be used to efficiently update existing backups by copying only the blocks that have changed. Dattobd is a true live-snapshotting system that will leave your root volume running and available, without requiring a reboot.

Eu tentei e funciona como esperado no ext4 fs. Há também um exemplo de trabalho (com scripts) dado no wiki.

Por fim, observe que o UrBackup tem suporte interno para backups de snapshot no Linux usando LVM ou dattobd.

    
por 14.05.2017 / 22:36