Como sincronizar duas pastas em duas máquinas virtuais Linux remotas

0

Eu tenho duas máquinas virtuais, o Host OS é o ESXi 3.5 e o guest OS é o Centos 4.6. Existem dois servidores ESXi localizados remotamente, cada um contendo uma máquina virtual Centos 4.6. Eu desejo, qualquer alteração que eu faça em qualquer arquivo / pasta em uma máquina virtual deve ser automaticamente sincronizada em outra máquina virtual remota. O processo de sincronização deve ser automático. Deve apenas sincronizar diferenciais, não simular cópia inteira com operação de sobrescrever. A sincronização deve ser inteligente o suficiente para procurar o que mudou e o que não, e deve atualizar apenas os arquivos / pastas alterados. Além disso, deve haver algum tipo de visão geral e seleção para sincronização, por exemplo, se ele mostra que 4 arquivos foram alterados. Deve ser possível sincronizar apenas dois arquivos e deixar outros dois por enquanto. Portanto, é necessário algum mecanismo de sincronização inteligente para o Linux.

    
por Manoj Agarwal 27.11.2012 / 11:19

3 respostas

0

Publicamos uma pergunta semelhante aqui . Ainda sem respostas.

Eu tenho tentado muitos, mas o uníssono é o único que realmente funciona. Ele pode ser usado no modo headless com cron (automático) ou no modo GUI, este último mostra os diffs entre os dois diretórios que você deseja comparar.

Ele tende a ser "disco-intensivo" na máquina local, mas calcula transferências delta e não desperdiça largura de banda (ele usa o rsync para transferências).

Você também pode tentar sincronização gratuita de arquivos : é semelhante, mas é menos popular.

    
por 27.11.2012 / 11:51
0

Uma opção é usar o rsync ou a versão gráfica (gnome) do grsync.

Eu uso este programa para fazer backup dos meus arquivos, mas ele pode ser usado para sincronizar.

Para automatizar o processo, você pode usar uma tarefa cron com a frequência desejada.

    
por 27.11.2012 / 14:13
0

Sincronizar em várias direções é muito difícil de fazer bem. O que acontece quando você tem um conflito inevitável? isto é, o arquivo A foi editado no node1 e no node2 simultaneamente; ou perto o suficiente para que seu sistema veja alterações em ambos. Qual deles é o preferido? você pára a sincronização e espera por intervenção manual?

Você verá que, quando vários sistemas precisam acessar / sincronizar os mesmos dados e precisam de acesso de leitura e gravação, você terá um dos três métodos:

  1. Cliente / servidor: algo como NFS / SMB com um servidor que hospeda os arquivos para que todos possam acessar de uma só vez; o servidor manipula o bloqueio de arquivos e permite que cada nó saiba quando uma atualização ocorreu no sistema de arquivos.
  2. Armazenamento compartilhado: ou seja, SAN ou alguma forma de acesso direto; talvez um servidor executando um destino iSCSI. Com um gerenciador de bloqueio distribuído e um sistema de arquivos em cluster
  3. Armazenamento sincronizado / em cluster: coisas como Lustre, Ceph e DRBD (com um sistema de arquivos em cluster no topo).

Devido aos problemas que mencionei antes, quase ninguém faz uma ferramenta de sincronização peer to peer. Se você puder refazê-lo para que você sempre tenha atualizações em uma direção, as coisas se tornarão extremamente fáceis.

    
por 29.11.2012 / 08:09