Eu tenho dois servidores web, com a chance de ter que adicionar mais servidores ao longo do caminho. No momento, mantenho esses servidores sincronizados usando lsyncd + csync2. Funciona bem em termos de desempenho porque todos os arquivos estão nos dois servidores (não é necessário acesso à rede para abrir arquivos localmente), mas não tão bem em outros casos.
Um exemplo disso é se eu excluir um arquivo no servidor 1 e carregar imediatamente um novo arquivo no servidor 1 com o mesmo nome. Enquanto isso, o arquivo será excluído do servidor 2, fazendo com que o arquivo recém-carregado no servidor 1 seja excluído, pois o servidor 2 envia o evento de exclusão para o servidor 1 para concluir o "círculo de atualização".
Não consigo deixar de pensar que deve haver uma maneira melhor de manter os servidores sincronizados. Eu estive analisando o GlusterFS e vejo que uma configuração em que todos os arquivos são replicados para todos os servidores é desencorajada. No entanto, estou executando sistemas CMS como o Drupal nesses servidores. Esses sistemas CMS geralmente abrem muitos arquivos, e estou preocupado que muito tráfego de rede para se apossar desses arquivos diminua a velocidade das solicitações.
Seria uma idéia investigar a substituição de lsyncd + csync2 pelo GlusterFS configurado para replicar todos os arquivos em todos os nós, ou isso é uma má idéia?