Como usar o envio / recebimento de btrfs para transmitir instantâneos de backup em uma conexão de rede lenta e não confiável?

11

Eu gostaria de usar o recurso de envio / recebimento do btrfs para transmitir instantâneos de backup em uma conexão bastante lenta (semente inicial de cerca de 50 a 100 GB, largura de banda upstream com ~ 1-2 MBit / s) e não confiável (interrupção forçada diária em ambas as extremidades).

Eu vejo os seguintes requisitos:

  • transferência criptografada (geralmente obtida usando um túnel SSH)
  • robustez para conexões interrompidas

Parece que o ZFS é capaz de retomar transferências interrompidas automaticamente , semelhante à maneira como o rsync faz. Isso também se aplica ao BTRFS? A página wiki de envio / recebimento não é útil com relação a transferências interrompidas. Se o btrfs retomar as transferências interrompidas, tudo o que preciso fazer é usar um túnel SSH e continuar se for interrompido.

Caso contrário, eu teria que usar algum buffer intermediário para garantir que a conexão btrfs sobreviva às interrupções ou aproximar os dois servidores para propagação (o que será um problema com relação aos arquivos adicionados que melhoram a transmissão diária capacidades e envio de instantâneos).

O que terei que considerar para transmitir a semente e os instantâneos?

Jens Erat
fonte

Respostas:

8

Eu tenho usado "btrfs send" para backups por um tempo. Ele não controla a retomada de transferências quebradas. Eu escrevi um utilitário que faz transferências de currículo, e sincroniza automaticamente snapshots no sistema de arquivos Btrfs local para Amazon S3. Você pode experimentá-lo para ver se isso ajuda e eu adoraria qualquer comentário! É tanto no GitHub ( https://github.com/AmesCornish/buttersink ) quanto no PyPi ( https://pypi.python.org/pypi/buttersink/ ).

user80646
fonte
Definitivamente vou dar uma olhada nisso assim que eu tiver algum tempo livre. Seu leia-me diz que o ssh-backend ainda não foi implementado, isso significa que a sincronização com um sistema de arquivos btrfs remoto ainda está na fila?
precisa saber é o seguinte
parece ótimo, mas infelizmente eu também preciso do SSH para que seja útil.
Matthias Urlichs
2
Agora, o back-end SSH está implementado (a partir de 0,6)
user80646 30/03
4

"enviar" para um arquivo ou sobre um tubo. "receber" com o arquivo ou tubo na outra extremidade. Com uma conexão questionável, você provavelmente faria melhor com arquivos e um transporte como o rsync.

user66738
fonte
1
certo, é até possível dividir o arquivo em vários pedaços. Pode ser melhor para rsync para retomar uma transferência interrompida (ou usar o --partial com rsync)
ascobol
1

Além do buttersinkcurrículo S3, btrbksuporta:

Resumo dos backups (se o destino do backup não tiver sido alcançado por um tempo)

Editar: desde então, soube que a transferência de snapshots individuais não é retomada btrbk; no entanto, ele lidará com o destino do backup ficando offline (reiniciando a transferência do snapshot interrompido).

Tom Hale
fonte
Definitivamente vou dar uma olhada btrbke como isso implementa a retomada de transferências, embora eu deteste um pouco a escolha da linguagem de programação - mas parece implementar praticamente o conjunto de recursos que eu preciso.
precisa