Boa solução multipath do NFS

3

Eu tenho alguns servidores servindo exatamente o mesmo conteúdo através do NFS para várias webfarms, todos os servidores envolvidos estão executando o CentOS 5

O conteúdo entre os dois servidores NFS é replicado usando Unison (tentou drbd no passado, matou o desempenho mal)

Para distribuir a carga, estou montando um servidor NFS diferente de cada um dos farms.

  • Webfarm1 monta o NFS1
  • Webfarm2 monta o NFS2

O único problema que tenho é quando um dos servidores trava eu gostaria de remontar automaticamente o conteúdo do outro servidor NFS até que o servidor se recupere e, em seguida, retorna para o primeiro servidor após um tempo de graça.

Antes de começar a escrever esse aplicativo, gostaria de saber se existe alguma solução Opensource já disponível que faça algo próximo do que pretendo, toda a inteligência do aplicativo deve estar no lado do cliente (soluções do lado do servidor têm tudo foi testado e descartado (heartbeat, drbd, etc ...) desde que eu quero usar os dois servidores NFS em uma solução ativa-ativa.

Além disso, deve ser importante que todos os servidores em uma webfarm estejam acessando o mesmo servidor NFS, caso contrário eu incorreria em alguns problemas de replicação desagradáveis.

Obrigado antecipadamente por sua ajuda!

    
por lynxman 29.01.2011 / 17:11

2 respostas

2

Dê uma olhada no Manual de NFS do RedHat Cluster Suite , com o subtítulo "Configurando um cluster NFS LoadBalanced com tolerância a falhas Capacidades ". Acho que isso pode ter boas sugestões, se não for exatamente o que você está procurando.

Você pode pegar as ideias apresentadas nesse documento e implementá-las usando o Pacemaker / Corosync, que eu acho muito mais fácil de trabalhar do que as ferramentas de cluster do RedHat legadas.

Você está basicamente solicitando um cluster ativo / ativo com failover automático. Como você está servindo a partir de duas cópias independentes - mas sincronizadas - dos dados, você de fato evitou a maioria dos problemas complicadores que surgem (envolvendo bloqueio e outras sincronizações de estado) se você está realmente tentando criar um balanceamento de carga NFS front-end para algum tipo de armazenamento compartilhado (por exemplo, um sistema de arquivos cluster como GFS).

    
por 29.01.2011 / 18:39
1

Você poderia usar o CTDB para fazer isso. O suporta o NFS com o comportamento correto de bloqueio de arquivos e a recuperação de bloqueios. Além disso, é uma solução ativa-ativa ou seja, todos os servidores NFS estão ativos ao mesmo tempo e os clientes os acessam por meio de endereços IP de serviço (DNS round-robin) que podem ser movidos de servidor para servidor. de uma falha no nó.

No entanto, a) é uma solução do lado do servidor eb) requer um sistema de arquivos de cluster como, por exemplo, GPFS ou GFS (o que o OTOH pode ser uma vantagem em comparação com a sua solução uníssono).

    
por 29.01.2011 / 19:28