L'ordre des redémarrages est important. Redémarrer le serveur après les clients peut entraîner cette situation. Le handle NFS obsolète indique que le client a un fichier ouvert, mais que le serveur ne reconnaît plus le handle du fichier. Dans certains cas, NFS nettoiera ses structures de données après un délai. Dans d'autres cas, vous devrez nettoyer les structures de données NFS vous-même et redémarrer NFS par la suite. L'emplacement de ces structures dépend quelque peu du système d'exploitation.
Essayez d'abord de redémarrer NFS sur le serveur puis sur les clients. Cela peut effacer les handles de fichiers.
Le redémarrage des serveurs NFS avec des fichiers ouverts depuis d'autres serveurs n'est pas recommandé. Cela pose particulièrement problème si le fichier ouvert a été supprimé sur le serveur. Le serveur peut conserver le fichier ouvert jusqu'à son redémarrage, mais le redémarrage supprimera le handle de fichier en mémoire du côté du serveur. Ensuite, le client ne pourra plus ouvrir le fichier.
Déterminer quelles montages ont été utilisés à partir du serveur est difficile et peu fiable. L'option showmount -a
peut montrer certains montages actifs, mais ne rapporte pas tous. Les fichiers verrouillés sont plus faciles à identifier, mais nécessitent que le verrouillage soit activé et reposent sur le logiciel client pour verrouiller les fichiers.
Vous pouvez utiliser lsof
sur les clients pour identifier les processus qui ont des fichiers ouverts sur les montages.
J'utilise les options de montage hard
et intr
sur mes montages NFS. L'option hard
fait en sorte que les E/S soient réessayées indéfiniment. L'option intr
permet aux processus d'être tués s'ils attendent que les E/S NFS se terminent.