Se seus servidores estiverem na mesma LAN, um sistema de arquivos em cluster (por exemplo: GlusterFS) ou uma solução de armazenamento compartilhado (por exemplo: via NFS) deverá ser a melhor opção.
Se os seus servidores estiverem em locais diferentes, tendo apenas conectividade WAN, a solução acima não funcionará bem. Nesse caso, e se você precisar apenas de replicação unidirecional (por exemplo: do servidor ativo para o de backup), lsyncd
é uma boa solução. Outra solução é csync2
. Finalmente, outra possibilidade é usar DRBD + DRBD Proxy
(note que seu componente proxy é um plugin comercial).
Finalmente, se os seus servidores só têm conectividade WAN e você precisa de replicação bidirecional (isto é: ambos os servidores estão ativos ao mesmo tempo), basicamente não existe um marcador de prata. Vou listar algumas possibilidades, mas estou longe de recomendar uma configuração semelhante:
-
unison
com seu plugin em tempo real -
psync
, que escrevi exatamente para resolver um problema semelhante (mas, por favor, note que ele tem sua própria parcela de idiossincrasias, e eu fornecer sem suporte para isso) -
syncthing
com seu plugin em tempo real (mas tem limitações significativas, ou seja, não preserva as ACLs nem o proprietário / grupo do arquivo)