Solução para solução transparente de sistema de arquivos bidirecional

2

Eu preciso implementar algum tipo de configuração de alta disponibilidade, onde dois servidores precisam estar sempre em sincronia, não importa em qual você escreva. A peça do banco de dados pode ser coberta por uma configuração de replicação mestre-mestre. No entanto, quando se trata de arquivos e conteúdo, não consegui encontrar algo para atender a essas necessidades muito bem. Eu preciso ser capaz de replicar / var / www, por exemplo, de uma máquina para outra e ser capaz de escrever em qualquer um deles e sempre ter o mesmo conteúdo disponível, não importa onde o pedido http vá.

  • unison : fácil de usar, conceito simples, no entanto, é mais como um rsync bidirecional, não há propagação automática de alterações de arquivo, a menos que você execute com sua opção de repetição. Não tenho certeza de como isso é confiável. Eu estava esperando por um recurso semelhante ao daemon que "assistisse" as alterações no conteúdo de uma pasta.
  • glusterfs : fácil de configurar, um bom projeto, parece ser perfeito para o que eu preciso, no entanto, não parece lidar com esse 2-way.
  • xtreemfs : é difícil de configurar se você quiser replicação (os documentos são um pouco difíceis de seguir) e parece ser mais adequado para a parte "sistema de arquivos distribuído" do que para o aspecto de replicação.
  • ceph : semelhante ao gluster, mas, novamente, não pense que lida com a replicação bidirecional.
  • mogilefs : não transparente, o aplicativo que você constrói precisa estar ciente disso e usar seus serviços para acessar o sistema de arquivos. Não é algo que eu possa usar.

Por isso, não tenho certeza se a replicação bidirecional é algo que normalmente não é feito e preciso reconsiderar isso ou não pesquisei o suficiente, mas estou perdido. Eu não pareço encontrar outras soluções.

Existe mais alguma coisa lá fora que possa lidar com replicação automática de arquivos bidirecional transparente?

    
por cbaltatescu 22.09.2011 / 14:12

4 respostas

2

Que tal DRBD com seu modo dual-primário e um sistema de arquivos de cluster, como OCFS2 ou GFS?

Pode funcionar surpreendentemente bem, especialmente se a sua árvore de diretórios não contiver uma quantidade enorme (digamos, milhões ou mais) de arquivos pequenos que mudam frequentemente.

    
por 22.09.2011 / 14:24
0

Se você precisar de replicação totalmente automatizada no nível do sistema de arquivos, será necessário um sistema de arquivos compartilhado (por exemplo, GFS) e uma maneira de acessá-lo de ambas as máquinas (DRBD, SAN, SCSI multi-host, iSCSI). Mas, além das soluções baseadas em hardware, IME, não é uma solução muito robusta.

Anteriormente, eu usava o rsync para grandes atualizações e um sistema de notificação / pesquisa para atualizações provisórias para uma configuração semelhante - mas isso usava muita inteligência dentro do código do aplicativo. Eu também usei o AFS (embora não para esse tipo de configuração) e achei que ele fosse robusto e escalonável; você pode querer dar uma olhada nisso.

    
por 22.09.2011 / 15:34
0

Eu consegui fazer isso com gluster usando esse tipo de configuração: link

A chave é NÃO montar volumes remotamente, mas localmente, e deixar o gluster replicar a pasta por trás dos volumes em ambas as máquinas, assim qualquer máquina pode ficar inativa a qualquer momento.

    
por 23.09.2011 / 14:56
0

O Ceph deve funcionar, esse é o ponto de um sistema de arquivos distribuídos.

Observe que quanto mais você tiver vários hosts gravando no mesmo diretório, o pior desempenho será (porque eles têm que ter muito cuidado com a sincronização), o inverso está vivendo com algum grau de atraso de propagação.

Eu posso estar errado, e certamente testar, eu acho que Gluster ou Ceph funcionariam, note que você deve assumir que precisará de seus backups em algum ponto com o Ceph (ainda sem o fsck para o btrfs).

Execute alguns testes e veja como isso funciona para você. Verifique se você está verificando coisas como md5 somas e recupere o tipo de cabo de alimentação.

    
por 28.09.2011 / 20:48