Eu tenho dois servidores, colocados em datacenters na Holanda e na França. Ambos estão executando o Debian Wheezy. Eu preciso compartilhar / casa entre eles, com bom desempenho. Existem 300 e poucos usuários nos servidores, cerca de 30 deles devem ter processos ativos em um determinado servidor em um determinado momento, cada um com leituras de 50 kbit e gravações de 20 kbit / segundo, com picos curtos em torno de 2000 kbit / s lendo. medidas com iotop no armazenamento local. Eu tenho muitos arquivos pequenos, cerca de 500000 no total e preciso da menor latência possível. O ping entre os servidores tem 17 ms e a conexão pode atingir cerca de 20 a 30 MB / s ao usar o scp e o wget. Parece que deve haver muita largura de banda disponível, pois também funciona, mas ...
O que eu tentei até agora: sshfs: parecia ter um desempenho melhor do que o nfs, mas alterou as permissões de arquivos para fazer root, causando o travamento do aplicativo.
nfs: Muito lento, tentei noatime várias outras opções, mas continua agindo lentamente, mesmo quando apenas alguns processos estão ativos.
drbd: 5 horas de trabalho sem saída, quando percebi que não era possível montar o sistema de arquivos nos dois sistemas :-(
glusterfs: Ter uma cópia local de todos os dados realmente parecia promissor, mas o acesso aleatório a arquivos é muito lento e, após algum tempo, torna-se inacreditável, lento e quase trava. noatime não ajuda.
NFS novamente: ainda lento.
Chorando no teclado: nenhuma melhoria.
O que tentar a seguir? Cada um dos ensaios fracassados levou uma noite ou 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 novas idéias sobre este problema.
fonte
Respostas:
Existem algumas soluções possíveis para isso:
Você pode optar por um armazenamento em bloco replicado como DRBD (ou MARS, conforme 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 kernel da Debian. O DRBD pode lidar com 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 saberá sobre o outro e você destruirá seu sistema de arquivos em alguns segundos. Um sistema de arquivos de cluster na parte superior lidaria com a comunicação e o bloqueio para que ambos os nós pudessem gravar no mesmo bloco.
Use um sistema de arquivos distribuído para / home. Você encontrará uma lista desses sistemas de arquivos em http://en.wikipedia.org/wiki/Comparison_of_distributed_file_systems . Mas cuidado e escolha sabiamente. Todos eles não podem fazer mágica e todos têm suas desvantagens. Gluster é um sistema de arquivos. Para alguns sistemas, você pode precisar de mais do que apenas dois nós.
Se ele não precisar ser replicado em tempo real e uma sincronização de arquivos quase em tempo real for suficiente, dê uma olhada no BitTorrent Sync ( http://www.getsync.com/ ), Dropbox ou alternativas. Cada servidor possui seu próprio / home, mas as alterações são replicadas em arquivo para o outro servidor.
fonte