Toda vez que tento montar um compartilhamento NFS, recebo isto:
>> mount -t nfs gitlab-replica-storage.blah.com:/export/registry-gitlab-prod-data-vol /mnt/test
mount.nfs: Stale file handle
O problema é que não consigo desmontar, como diz:
>> umount -f -l /mnt/test
umount: /mnt/test: not mounted
Tentei verificar se algum processo estava usando o ponto de montagem, mas não é o caso.
Alguma outra alternativa para solucionar isso?
Como esclarecimento:
- Posso montar em outra máquina.
- Não consigo montá-lo em outro ponto de montagem na máquina afetada.
A
mount -t nfs
falhaStale file handle
se o servidor tiver algumas entradas de exportação obsoletas para esse cliente.Cenário de exemplo: isso pode acontecer quando o servidor reinicia sem que o cliente desmonte os volumes nfs primeiro. Quando o servidor está de volta e o cliente desmonta e tenta montar o volume nfs, o servidor pode responder com:
Você pode verificar isso olhando para
/proc/fs/nfs/exports
ou/proc/fs/nfsd/exports
. Se houver entrada para o cliente, pode ser obsoleto.Você pode corrigir isso desexportando e reexportando explicitamente as exportações relevantes no servidor. Por exemplo, para fazer isso com todas as exportações:
Depois disso, o cliente
mount -t nfs ...
deve ter sucesso.Observe que o rendimento da montagem
ESTALE
é bem diferente de alguma outra chamada do sistema (como open/readdir/unlink/chdir ...) retornandoESTALE
. É uma exportação obsoleta versus um identificador de arquivo obsoleto. Um tratamento de arquivo obsoleto acontece facilmente com o NFS (por exemplo, um cliente tem um tratamento de arquivo, mas o arquivo foi excluído do servidor).Link original sobre ESTALE: ESTALE LWN .
Sugiro que você verifique os arquivos e diretórios no servidor NFS ou diga ao administrador do servidor NFS para fazer isso.
Talvez algumas entradas antigas de pagecache, inode e dentry cache existam no servidor NFS. Por favor, limpe-o:
No meu caso, também estava recebendo o erro "mount.nfs: Stale file handle", ao montar o novo volume. Isso estava acontecendo desde que o volume mais antigo montado foi excluído. Após a desmontagem, o volume usando,
Quando montei novamente, resolveu o problema.
Encontre a entrada de montagem obsoleta no servidor NFS:
Se você vir linhas relacionadas com o endereço IP do cliente NFS e o compartilhamento que está tentando montar, remova as entradas obsoletas do rmtab:
Recarregue o rpc.mountd para que ele veja o novo rmtab:
Verifique se a exportação está realmente montada:
Erro de manipulação de arquivo obsoleto significa que o servidor NFS mantém uma versão antiga dos arquivos em seu caminho de exportação. Às vezes, uma reinicialização do servidor NFS pode ajudar. Mas com sistemas operacionais mais antigos (RHEL/CentOS 6.9) às vezes é melhor reverter para NFS3 em vez de NFS4. Na minha experiência, clientes NFS4 mais antigos às vezes têm dificuldades com os servidores NFS4.1 mais novos. Isso é especialmente verdadeiro para o bloqueio de arquivos.