Eu tenho que "falsificar" uma mudança em /etc/exports para que o mount -a seja executado, qual é o problema?

Eu tenho que "falsificar" uma mudança em /etc/exports para que o mount -a seja executado, qual é o problema?

Sempre que preciso reinicializar o servidor1, a única maneira de recuperar as montagens do NFS no servidor2 é alterar um dos números inteiros "fsid" no arquivo/etc/exportaçõesarquivo no servidor1. Caso contrário, omontar -acomando apenas trava no server2.

Cenário típico:

O Servidor1 é reinicializado. No server1, tenho duas linhas de código em/etc/exportações:

/mnt/ramdisk/dir1 *(fsid=0,rw,no_root_squash,no_subtree_check,async)
/mnt/ramdisk/dir2 *(fsid=1,rw,no_root_squash,no_subtree_check,async)

Eu emito este comando:

"exportfs -r".

No server2, eu tenho isso em/etc/fstab:

xxx.xxx.x.x:/server1_dir1/ /dir1_server2 nfs async,noatime 0 0
xxx.xxx.x.x:/server2_dir2  /dir2_server2 nfs async,noatime 0 0

Primeiro eu "desmonto" os diretórios antigos que agora possuem identificadores NFS obsoletos. Então,

"mount -a"

O comando trava. Depois que eu matá-lo,dfmostra dir1 montado, mas dir2 não.

A única maneira de montar os dois diretórios é alterar o número inteiro fsid para outra coisa. Por exemplo, no server1 agora temos:

/mnt/ramdisk/dir1 *(fsid=0,rw,no_root_squash,no_subtree_check,async)
/mnt/ramdisk/dir2 *(fsid=2,rw,no_root_squash,no_subtree_check,async)

eu mudeifsid=1 a =2. Emito novamente oexportarfs -rcomando, e pronto, omontar -acomando funciona no server2.

Talvez eu não entenda o quefsidrealmente faz, mas obviamente deve haver uma maneira melhor de "remontar" o NFS do que ter que editar aleatoriamente o número fsid todas as vezes?

EDITAR: Se eu não tiverfsidincluído no meu arquivo de exportações no servidor1, isso me dá

"Warning: /mnt/ramdisk/dir1 requires fsid= for NFS export" 

E, se eu definir fsid=0 para ambas as linhas (dir1 e dir2), os pontos de montagem acabarão sendo os mesmos, pois todos os meus arquivos foram copiados para o local dir1! Portanto, parece que a única maneira de isso funcionar é alternar constantemente os números inteiros do fsid, de forma um tanto aleatória.

EDITAR2: eu removifsid=0já que é "especial", e os alterou parafsid=1efsid=2em/etc/exportaçõesno servidor1. É claro que isso funcionou (já que o arquivo foi alterado). Mas hoje só tive que reiniciar à força e depois de desmontar (lentamente) as unidades obsoletas do servidor2,montar -afalhou, como antes. Então, (como antes), editei o arquivo de exportação no servidor1, desta vez,fsid=2efsid=3,exportarfs -re pronto,montar -afunciona novamente no server2. De volta à estaca zero.

EDITAR3Informações críticas: Se eu derrubar tudo de maneira controlada (ou seja, o servidor1 não "trava") e primeiro desmontar os diretórios no servidor2, reinicializar o servidor1 e ENTÃO montar -a no servidor2, funciona muito bem. Somente quando as montagens no server2 são interrompidas abruptamente é que esse problema ocorre. Então, estou supondo que algo precisa ser redefinido no servidor2? Sei que leva muito tempo para desmontar os identificadores obsoletos no servidor2 após a falha do servidor1.

Responder1

Meu palpite é que o problema é causado pelo uso de fsid=0em uma de suas exportações.

Lembre-se de que o fsidobjetivo é identificar dispositivos exclusivamente quando o driver do sistema de arquivos subjacente não fornece seus próprios IDs exclusivos. E, em particular, fsid=0tem umsignificado especial:

Para o NFSv4, existe um sistema de arquivos distinto que é a raiz de todos os sistemas de arquivos exportados. Isso é especificado com fsid=rootou fsid=0ambos significam exatamente a mesma coisa.

Como claramente não é isso que você deseja, sempre use um fsid diferente de 0.

informação relacionada