Modos de falha para rsyncing simultâneo entre dois computadores

2

Como o rsync lida com a possibilidade de interferência com outro rsync na mesma máquina? Eu li toda a documentação que posso encontrar, mas não vejo nenhuma menção a isso. Eu vou fazer alguns experimentos, mas estou preocupado que eles não revelem a extensão total de quaisquer problemas que eu possa encontrar.

Aqui está o cenário. Eu quero manter duas máquinas em sincronia. Cada máquina monitora alterações de arquivos em um diretório e, quando detecta algumas, executa o rsync para sincronizar esse diretório com a máquina remota. Normalmente, apenas uma máquina por vez ocorrerá uma alteração no arquivo, mas o que aconteceria se o mesmo arquivo fosse alterado nas duas máquinas ao mesmo tempo, presumivelmente para algo diferente? O rsync detectará que está sendo executado em ambas as máquinas e lidará corretamente com a situação (por exemplo, sincronizar apenas o arquivo mais recente) ou poderá ocorrer um erro terrível, resultando em corrupção ou comportamento indeterminado?

O resultado será diferente se houver um servidor rsync em cada máquina versus o uso de ssh? Eu não vi nenhuma boa explicação dos benefícios de usar um método contra o outro.

    
por Michael 13.07.2013 / 23:45

1 resposta

3

Em resumo - dois rsync processos não sabem nada um do outro.

No tempo de execução, rsync simplesmente executará a ação que é apropriada, considerando o estado atual dos arquivos de origem e destino e os argumentos / sinalizadores passados (ou seja, se você estiver especificando --dry-run , --delete ou qualquer outro sinalizador de alteração de comportamento).

Isto é o que torna o rsync (e também outras ferramentas de sincronização unidirecional) muito perigoso em certos ambientes, e também porque soluções como DFS do Windows Server e sistemas de arquivos em cluster do Linux, como GlusterFS e GFS ou ferramentas de replicação em nível de bloco, como DRBD mais aplicável se você está procurando uma verdadeira sincronização bidirecional.

Você pode achar esse sinalizador útil (na página rsync man), mas você pode ter um comportamento inesperado / imprevisível, especialmente se você combinar com --delete :

-u, --update                skip files that are newer on the receiver
    
por 13.07.2013 / 23:58

Tags