Compartilhar / home entre datacenters

15

Eu tenho dois servidores, colocados em datacenters na Holanda e na França. Ambos estão executando o Debian Wheezy. Eu preciso compartilhar / home entre eles, com bom desempenho. Existem 300-alguma coisa usuários nos servidores, cerca de 30 deles devem ser capazes de ter processos ativos em um determinado servidor em um determinado momento, cada um com 50 kbit e 20 kbit / segundo, com picos curtos em torno de 2000 kbit / s leitura. mede com iotop no armazenamento local. Eu tenho muitos arquivos pequenos, cerca de 500.000 no total e preciso da menor latência possível. Ping entre servidores é de 17 ms, e a conexão é capaz de atingir cerca de 20-30 MB / s ao usar scp e wget. Parece que deve haver muita largura de banda disponível para isso também funcionar, mas ...

O que eu tenho dito até agora: sshfs: Parecia que tinha um desempenho melhor do que o nfs, mas alterava as permissões dos arquivos para o root, fazendo com que o aplicativo travasse.

nfs: Maneira de desacelerar, tentou noatime um monte de outras opções, mas continua lento, mesmo quando apenas alguns processos estão ativos.

drbd: 5 horas de trabalho sem saída, quando percebi que não conseguia montar o sistema de arquivos em ambos os sistemas: - (

glusterfs: Ter uma cópia local de todos os dados realmente soa promissora, mas o acesso a arquivos aleatórios é muito lento e depois de um tempo, fica inacreditável e quase trava. o noatime não ajuda.

nfs novamente: ainda lento.

Chorando no teclado: sem melhora alguma.

O que tentar em seguida? Cada um dos testes falhados durou uma noite ou talvez mais durante a última semana, e eu realmente gostaria que o próximo método funcionasse. E sim, é crucial que os sistemas de arquivos sejam compartilhados entre os dois servidores.

Obrigado por quaisquer novas ideias sobre este problema.

    
por user3850506 18.12.2014 / 23:14

1 resposta

2

Existem algumas soluções possíveis para isso:

  1. Você pode optar por um armazenamento em bloco replicado como o DRBD (ou MARS, como mencionado acima), mas é necessário configurar um sistema de arquivos em cluster na parte superior do armazenamento em bloco. Tais sistemas de arquivos podem ser GFS2 ou OCFS2, ambos disponíveis no afaik do kernel da Debian. O DRBD pode manipular primário / primário e você pode montá-lo nos dois servidores ao mesmo tempo. Mas se você fizer isso com um sistema de arquivos padrão, um servidor não sabe sobre o outro e você destruiria seu sistema de arquivos em poucos segundos. Um sistema de arquivos de cluster na parte superior manipularia a comunicação e o bloqueio para que ambos os nós possam gravar no mesmo bloco.

  2. Use um sistema de arquivos distribuído para / home. Você encontrará uma lista desses sistemas de arquivos no link . Mas cuidado e escolha com sabedoria. Todos eles não podem fazer mágica e todos têm suas desvantagens. O Gluster é um sistema de arquivos desse tipo. Para alguns sistemas, você pode precisar de mais do que apenas dois nós.

  3. Se não precisar ser replicado em tempo real e uma sincronização de arquivos quase em tempo real seria suficiente, dê uma olhada no BitTorrent Sync ( link ), Dropbox ou alternativas. Cada servidor tem seu próprio / home, mas as alterações são replicadas na base do arquivo para o outro servidor.

por 20.12.2014 / 22:41