sistema de arquivos espelhado em alguns servidores

10

Estou procurando uma solução para espelhar ou replicar um diretório (ou um sistema de arquivos) em alguns servidores Linux. A solução ideal seria uma, que permite a todos os servidores acesso de leitura e gravação. Eu também quero isso para mim resiliente, se um dos servidores ficar inativo, o restante ainda deve funcionar sem perder nenhum dado.

Eu estive procurando algumas soluções:

  • DRBD : replicações em nível de bloco, parece um pouco exagerado;
  • lsyncd : parece muito simples, mas tenho dúvidas sobre o desempenho;
  • GlusterFS : parece que seria um bom jogo, ainda não descobri como exatamente o modo de replicação funciona. Terá características que eu exija?

Quaisquer outras sugestões são bem-vindas.

    
por vartec 06.05.2011 / 11:51

5 respostas

6

A primeira pergunta que gostaria de fazer é: você quer que isso seja replicado para dois servidores ou mais que dois servidores? Para dois servidores eu iria com DRDB, por três ou mais eu iria com gluster.

Se a latência de E / S não é uma preocupação crítica, eu iria com gluster. É muito fácil de configurar e poderia claramente fazer o que você precisava. Tudo o que você precisa fazer é criar um servidor gluster que sirva os arquivos em todas as três caixas e depois fazer com que cada caixa funcione como um cliente gluster que monta os arquivos.

O DRDB será complicado para trabalhar em um modo mestre < - > com três ou mais servidores. Você tem que configurar uma configuração baseada em toque e eu não recomendaria isso. No entanto, para dois servidores, o DRDB é fantástico. Master < - > O modo Master não é complicado de configurar e você não precisa aprender nada sobre o sistema de arquivos.

O lsycd é ótimo para uma configuração mestre / escravo, mas você não parece querer isso.

O Ceph ainda é bastante novo, da última vez que verifiquei que ele ainda não tinha suporte ao fsck. Eu preferiria basear minha infraestrutura em algo mais estável.

O Lustre é um produto fantástico para implantações em grande escala, mas você precisa configurar o heartbeat e o failover para o servidor mds ou ele terá um único ponto de falha. Dado o número limitado de servidores dos quais ele está falando, suspeito que seja um exagero nesse caso.

    
por 06.05.2011 / 14:05
2

Que tal Ceph ou Lustre ?

    
por 06.05.2011 / 12:03
2

Você deve procurar no OpenAFS - é um sistema de arquivos distribuído na maioria das vezes que permite a existência de várias cópias de dados distribuídos pelo cluster e todos podem ler / escreva para o FS ao mesmo tempo.

Ele também possui vários outros recursos úteis (boa autenticação, criptografia on the wire, caching local embutido em clientes, cliente nativo do windows, portável em várias versões do unix, etc)

É um pouco pesado para configurar, no entanto.

    
por 06.05.2011 / 15:11
1

O NFS também pode funcionar bem, dependendo das suas necessidades.

    
por 06.05.2011 / 13:52
1

Conseguir isso funcionar com o DRBD vai ser realmente difícil - o problema não é que o n8whnp parece achar um problema em relação à replicação multi-way (você cria todos os nós em um conjunto de espelhos), mas é de controle de simultaneidade - você precisaria executar um sistema de arquivos clusterizado em cima do espelhamento sobre o DRBD.

O lsyncd é ainda pior, pois não existe uma solução prática para o controle de concorrência.

Eu recomendaria uma solução do tipo AFS (AFS, OpenAFS) como uma solução aberta, estável e madura. Eu ficaria claro de brilho desde que a Oracle fechou. Não muito familiarizado com o glusterfs, mas como ele depende de armazenamento distribuído em vez de replicado, eu recomendo que você tenha uma visão detalhada de como ele se comportará na operação de divisão cerebral (o AFS OTOH foi projetado para funcionar em modo desconectado).

    
por 06.05.2011 / 18:00