Simple Distributed Desconectado maneira de sincronizar um diretório

3

Eu quero começar a fazer backup regularmente do meu diretório home no meu laptop ubuntu, a máquina X. Suponha que eu tenha acesso a 2 servidores remotos diferentes (linux) que eu possa fazer backup, máquinas A & B. O Machine X será o master, e deve ser sincronizado com A e B. Eu poderia apenas executar o rsync regularmente de X para A e depois de X para B. Isso é tudo que eu preciso.

No entanto, estou curioso para saber se há uma largura de banda mais eficiente e, portanto, uma maneira mais rápida de fazer isso. Supondo que X vai ser em linhas de banda larga estilo residencial, e desde que eu não quero absorver a largura de banda, eu iria limitar a transferência de X. A e B estarão ligados o tempo todo, no entanto X, não será, então eu também gostaria de reduzir a quantidade de tempo que o X está transferindo, potencialmente permitindo que A e B passem mais tempo transferindo. Além disso, o X não estará conectado o tempo todo.

Qual é a melhor maneira de fazer isso? rsync de X para A, depois de A para B? O tempo certo pode ser problemático. Eu não quero manter arquivos antigos, então se eu fosse rsync, então a opção --del seria usada. Isso poderia significar que algo poderia ser transferido de A para B, depois deletado de B, e depois transferido de A para B novamente? Isso é sub-ótimo.

Eu sei que existem sistemas de arquivos distribuídos como o gluster, mas eu acho que é um exagero nesse caso, e pode não se encaixar com a natureza desconectada.

    
por Rory 23.01.2010 / 00:49

6 respostas

1

Existem maneiras inteligentes de fazer isso e simples. Eu optaria por simples sempre que possível.

Você poderia fazer X - > A e, em seguida, A - > B?

Existem também métodos como Unison , mas isso parece ir para apenas uma réplica, e é bidirecional, que parece não ser tão útil para um backup. No entanto, se A e B executassem as coisas no Unison, parece que o cliente X poderia então fazer o backup para A ou B, e ele passaria para o outro bem.

    
por 23.01.2010 / 01:09
0

Você deseja que X inicie a sincronização com A, que então extrairá os dados de X e, quando terminar, os enviará para B. Um script em A pode apenas verificar a existência de um arquivo em algum lugar, que é carregado em A por X quando está online e pronto para uma sincronização. Quando isso é feito puxando de X, ele deve empurrar para B e quando terminar, remova o arquivo. Alternativamente, você poderia ter quase o mesmo script em A e B, mas quando A é feito puxando de X, ele coloca um arquivo em B dizendo a ele para sincronizar com A. Se você tivesse mais de 2 máquinas para sincronizar, este seria o caminho a percorrer desde então, a sincronização pode, em seguida, apenas em cascata através de todos eles (possivelmente em uma forma de árvore distribuída, em vez de linear)

    
por 29.01.2010 / 16:08
0

O Dropbox funcionaria para você?

    
por 31.01.2010 / 18:38
0

gibak é certo para isso, eu acho.

Você pode fazer o laptop ordenar que os servidores sejam puxados uns dos outros e, em seguida, empurrar para qualquer servidor; embora isso signifique que o laptop tenha que esperar e possivelmente ficar on-line por mais tempo. Você pode adicionar cronjobs para o servidor puxar um do outro. Ou você pode fazer o laptop empurrar para A e empurrar para B em um gancho de pós-recepção, o que é mais simples.

    
por 04.02.2010 / 18:46
0

Acho que a solução de Michael Graff é a melhor ideia. rsync X - > A. Então A - > B.

Se você quiser outra sugestão que reduziria o tempo de computação, você poderia ver o xdelta ( link ). É essencialmente a mesma solução que o rsync multi-hop, com o benefício que você poderia economizar o tempo de ter que calcular as delatas em cada salto. Se os arquivos envolvidos forem grandes, isso pode se tornar uma economia material de tempo.

Jim C. link

    
por 06.02.2010 / 04:39
0

Concordo com naelyn, isso parece um cenário para dropbox

Como você diz, você está executando o Ubuntu. Eu pensei que o Ubuntu One deveria fornecer essa funcionalidade também. Eu não uso eu mesmo, mas vale a pena dar uma olhada.

    
por 04.03.2010 / 10:11