A ordem das reinicializações é importante. Reiniciar o servidor após os clientes pode resultar nessa situação. O identificador antigo do NFS indica que o cliente tem um arquivo aberto, mas o servidor não reconhece mais o identificador do arquivo. Em alguns casos, o NFS limpará suas estruturas de dados após um tempo limite. Em outros casos, você precisará limpar as estruturas de dados do NFS e reiniciar o NFS posteriormente. Onde essas estruturas estão localizadas depende um pouco do sistema operacional.
Tente reiniciar o NFS primeiro no servidor e depois nos clientes. Isso pode limpar os identificadores de arquivo.
Não é recomendável reiniciar servidores NFS com arquivos abertos de outros servidores. Isso é especialmente problemático se o arquivo aberto foi excluído no servidor. O servidor pode manter o arquivo aberto até ser reinicializado, mas a reinicialização removerá o identificador de arquivo na memória do lado do servidor. Em seguida, o cliente não poderá mais abrir o arquivo.
Determinar quais montagens foram usadas no servidor é difícil e não é confiável. A showmount -aopção pode mostrar algumas montagens ativas, mas pode não reportar todas elas. Os arquivos bloqueados são mais fáceis de identificar, mas exigem que o bloqueio seja ativado e depende do software do cliente para bloquear os arquivos.
Você pode usar lsofnos clientes para identificar os processos que têm arquivos abertos nas montagens.
Eu uso as opções harde intrmount nas minhas montagens NFS. A hardopção faz com que o IO seja repetido indefinidamente. A intropção permite que os processos sejam eliminados se eles estiverem aguardando a conclusão do NFS IO.
hard, intré um bom conselho. No entanto, observe que o NFS duplica os tempos limite a cada tentativa. Então é melhor você definirtimeo=1e maisretrans=5ou menos. Note que este irá colocar forte pressão sobre o seu servidor NFS após o reinício NFS. Tente não reiniciar o serviço NFS tantas vezes;)