Sistema de backup para uma rede lenta

1

Estou tentando criar um sistema de backup que me permita transferir a quantidade mínima de dados toda vez que um novo backup for feito.

Atualmente, estou fazendo um backup incremental via duplicidade para uma montagem smb. Eu estou limitado com isso para cerca de 1MB / s no momento (wi-fi / ndiswrapper sendo bobo, mas ainda assim - eu não vou conseguir mais de 5x acelerar fixando-o).

Infelizmente, os dados removidos, modificados etc. tornam difícil manter os backups incrementais para sempre. Eu não posso facilmente achatá-los para um backup completo e tomar uma cópia completa de 40 + GB está demorando um pouco agora.

Há algumas coisas que gostaria de alcançar com o novo sistema e um casal com o qual não me importo muito:

  • Eu gostaria de ter alguns pontos de verificação, mas provavelmente não mais que 2 ou 3
  • Eu não me importo com criptografia, pois o armazenamento está localizado na rede local
  • A compactação seria boa, mas acho que posso usar a compactação do sistema de arquivos / dispositivo
  • Eu quero ser capaz de me livrar completamente de todos, exceto do último backup, sem me forçar a fazer uma cópia completa novamente

Isto parece ser factível com a compressão de dispositivos rsync + loop + fs snapshotting ... mas infelizmente o meu dispositivo não suporta realmente instantâneos. Ele só tem a lista padrão de sistemas de arquivos suportados pelo Debian e eu realmente não quero usar o btrfs para backups.

Existe alguma solução comparável? Como mais posso abordar isso?

Edit: Eu acho que a parte do snapshot pode ser feita com snapshots somente de leitura lvm. Isso também proporcionaria outra camada de proteção contra aplicativos mal comportados.

    
por viraptor 12.04.2012 / 03:14

1 resposta

3

O

rsnapshot faz backups incrementais através do uso de hardlinks e rsync - se o arquivo for o mesmo da última vez que o backup foi feito correr, então é só hardlinks. Então, se você não alterasse nada e executasse o rsnapshot a cada hora durante três horas, teria três pastas:

hourly.0
hourly.1
hourly.2

Cada um parece conter um backup "completo", mas apenas uma cópia de cada arquivo residiria no disco. Isso significa que, se você excluir hora a hora.2, hora1 e hora.0 ainda conteriam todos os arquivos. Você pode definir a frequência de backup e o número de instantâneos.

Isso alcançaria seu primeiro objetivo, mas o sistema de arquivos de destino deve oferecer suporte a hardlinks para que isso funcione.

Uma alternativa para isso é usar o rsync + LVM no dispositivo de backup e tirar instantâneos periodicamente. Os instantâneos LVM são volumes "copy-on-write", onde permanecem idênticos ao original reutilizando os mesmos blocos que o volume instantâneo, a menos que os blocos sejam alterados, após o que o volume instantâneo armazena apenas os blocos diferentes. Portanto, ele pode ser dimensionado para corresponder à taxa de alteração do volume que está sendo capturada entre os backups.

A compactação seria boa, mas se você não quiser usar o btrfs, será necessário algum tipo de compactação do sistema de arquivos por meio de um loop ou fusível.

    
por 12.04.2012 / 03:40