O NFS monta aleatoriamente o servidor errado

2

Eu tive um problema com o NFS, o que me deixou perplexo. Eu não posso nem chegar a uma explicação plausível para isso. Eu tenho dez máquinas:

slave1 (10.0.0.10) - slave10 (10.0.0.20)

Cada um executa o servidor NFS e exporta um diretório.

Eu montei os diretórios como de costume:

sudo mount 10.0.0.11:/var/export /mnt/slave/1/ -o soft
sudo mount 10.0.0.12:/var/export /mnt/slave/2/ -o soft
...
sudo mount 10.0.0.20:/var/export /mnt/slave/10/ -o soft

Neste ponto, as montagens são assim:

10.0.0.11:/var/export on /mnt/slaves/1 type nfs (rw,soft,vers=4,addr=10.0.0.11,clientaddr=10.3.3.212)
10.0.0.12:/var/export on /mnt/slaves/2 type nfs (rw,soft,vers=4,addr=10.0.0.12,clientaddr=10.3.3.212)
10.0.0.13:/var/export on /mnt/slaves/3 type nfs (rw,soft,vers=4,addr=10.0.0.13,clientaddr=10.3.3.212)
10.0.0.14:/var/export on /mnt/slaves/4 type nfs (rw,soft,vers=4,addr=10.0.0.14,clientaddr=10.3.3.212)
10.0.0.15:/var/export on /mnt/slaves/5 type nfs (rw,soft,vers=4,addr=10.0.0.15,clientaddr=10.3.3.212)
10.0.0.16:/var/export on /mnt/slaves/6 type nfs (rw,soft,vers=4,addr=10.0.0.16,clientaddr=10.3.3.212)
10.0.0.17:/var/export on /mnt/slaves/7 type nfs (rw,soft,vers=4,addr=10.0.0.17,clientaddr=10.3.3.212)
10.0.0.18:/var/export on /mnt/slaves/8 type nfs (rw,soft,vers=4,addr=10.0.0.18,clientaddr=10.3.3.212)
10.0.0.19:/var/export on /mnt/slaves/9 type nfs (rw,soft,vers=4,addr=10.0.0.19,clientaddr=10.3.3.212)
10.0.0.20:/var/export on /mnt/slaves/10 type nfs (rw,soft,vers=4,addr=10.0.0.20,clientaddr=10.3.3.212)

Agora, pelo que me desconcertou. Algumas dessas montagens estão, aleatoriamente, apontando para o servidor errado!

Por exemplo, os arquivos / mnt / slaves / 2 podem ser do slave5 (10.0.0.15). Ou talvez de escravo9. Ou se eu tiver sorte de ser escravo2. Desmontar e montar novamente, usando exatamente a mesma linha, faz com que a montagem aponte aleatoriamente para outro escravo. Ao remontar tempos suficientes (e depois de cada verificação, se eu tiver o escravo certo), posso acertar as montarias, mas é um grande aborrecimento.

Este problema está aparecendo usando o Ubuntu LTS 14.04.1.

Algumas informações:

  • Não é DNS. Nós não estamos usando DNS.
  • Não é um conflito de endereço IP / Mac. Todos os outros protocolos (SSH, HTTP, etc) vão para a direita escravo.
  • Não consigo ver nada nos logs, até onde sei que o mestre acha que se comunica com o escravo certo.
  • Usando o wireshark, vejo algum tráfego para o escravo direito. O mestre envia o comando SETCLIENTID, portanto, inicia a comunicação. Depois disso, a comunicação simplesmente pára. Nenhum SETCLIENTID_CONFIRM é enviado.

Então, neste momento, eu me pergunto:

  • Isso é algum tipo de bug conhecido?
  • Existe uma solução para isso?

Eu consegui reproduzir o mesmo comportamento em dois sistemas diferentes de configuração do Ubuntu em momentos diferentes, por isso não é isolado para um único servidor.

    
por pehrs 14.03.2015 / 15:38

0 respostas

Tags