É possível sincronizar arquivos entre servidores em tempo real?

5

Tenho 5 ou mais servidores Web em um balanceador de carga e, se um usuário fizer o upload de uma foto, pode levar até um minuto para rsync-lo (crontab). Isso pode ser frustrante para alguns que pensam que falhou. Existe uma maneira de fazer um rsync em tempo real?

Obrigado

    
por Markii 08.02.2010 / 11:46

6 respostas

11

A maioria das pessoas cria esse tipo de sistema usando armazenamento centralizado, não exigindo nenhuma sincronização.

    
por 08.02.2010 / 11:51
6

Como Chopper3 disse, há armazenamento centralizado usando um SAN ou NAS, e isso parece ser o mais comum. Se você realmente quiser mantê-los em servidores separados, você poderia olhar para algo como o DRBD, que é como o RAID através da ethernet, para manter um volume sincronizado entre os servidores.

    
por 08.02.2010 / 11:55
1

inosync é praticamente pronto para isso, desde que os uploads cheguem em uma máquina Linux (mac e bsd tem mecanismos diferentes e requerem uma utilidade diferente)

    
por 11.02.2011 / 08:04
0

Você também pode usar inotify para assistir a um diretório e disparar instantaneamente a propagação de alterações de arquivos por meio de scp ou rsync ou qualquer outro método.

    
por 11.02.2011 / 05:48
0

Historicamente, você usaria um sistema de arquivos de rede compartilhado (canônico, por exemplo, NFS) para resolver isso.

Hoje em dia eu uso o gridfs do MongoDB para esse tipo de armazenamento de objetos compartilhados de acesso múltiplo.

    
por 11.02.2011 / 08:16
0

Neste momento estamos fazendo alguns testes com o inotify. Eu também recomendo estas opções:

jnotify : biblioteca de eventos do sistema de arquivos para Java inotify-java : biblioteca fornece ligações e uma API para monitorar o sistema de arquivos em plataformas Linux E claro: inosync

    
por 11.02.2011 / 08:54

Tags