Démonter un montage nfs où le serveur nfs a disparu

32

Le serveur A était un serveur NFS. Le serveur B montait une exportation de cela. Tout était bien. Puis A est mort. Juste éteint. Disparu. Disparu.

Cependant, ce dossier est toujours monté sur B. Je ne peux évidemment pas y cdentrer ni quoi que ce soit. Cependant, umount /mnt/myfoldertout se bloque et ne sera pas démonté. Est-il possible de le démonter sans redémarrer B?

Le client et le serveur sont des machines Linux.

Rory
la source

Réponses:

45

En supposant que Linux:

umount -f -l /mnt/myfolder

Cela résoudra-t-il le problème:

-f Forcer le démontage (en cas de système NFS inaccessible). (Nécessite le noyau 2.1.116 ou une version ultérieure.)

-l Démonter paresseux. Détachez maintenant le système de fichiers de la hiérarchie du système de fichiers et nettoyez toutes les références au système de fichiers dès qu'il n'est plus occupé. (Nécessite le noyau 2.4.11 ou ultérieur.)

-f existe également sur Solaris et AIX.

Douglas Leeder
la source
1
J'ai eu le même problème, googlé et est venu ici. Oui - le drapeau paresseux m'a vraiment aidé ici ... -f sur son propre , il ne faisait pas ...
wawawawa
oui, doit avoir l'option "-l" "-f" SAME TIME.
Liuyang1
2
De plus, j'ai parfois plus de succès en spécifiant l'adresse distante plutôt que le chemin local pour umount, par exemple. umount -f -l nfsserver:/export/thefolder.
oliver
18

Expliquant l’allusion donnée par David Pashley ,

À moins que "umount -l" ne résolve votre problème, vous pouvez configurer un faux serveur avec la même adresse que celle qui a disparu - mais vous n'avez pas réellement besoin de configurer un nouveau serveur ou quoi que ce soit. Le moyen le plus simple de sortir de la situation de blocage / blocage en attente est de configurer une interface IP d'alias locale , comme suit:

ifconfig eth0:nfstmp 11.22.33.44 netmask 255.255.255.255
umount -l /mnt/deadnfsmount    # -l or -f or whichever that gets the job done
ifconfig eth0:nfstmp down

(évidemment, 11.22.33.44 étant la (ancienne) adresse IP du serveur NFS (maintenant mort))

conny
la source
Cela a fonctionné pour moi sauf que je devais exécuter un serveur NFS local.
gak
6

Il peut être judicieux d’ajouter cette introption à toutes les /etc/fstabentrées susceptibles de se bloquer ou de se bloquer. Si vous n'utilisez pas les options softou intr, lorsque le serveur hébergeant les fichiers NFS tombe en panne, le serveur sur lequel les fichiers sont montés (le client) peut se bloquer lors du démarrage.

Selon man 5 nfs:

soft / hard
Détermine le comportement de récupération du client NFS après l'expiration d'une demande NFS. Si aucune option n'est spécifiée (ou si l'option matérielle est spécifiée), les demandes NFS sont réessayées indéfiniment. Si l'option logicielle est spécifiée, le client NFS échoue à une demande NFS après l'envoi de retransmissions de retransmissions, le client NFS renvoyant une erreur à l'application appelante.

... et ensuite, il intrest préférable de préférer soft, mais cela a le même effet d'empêcher la pendaison.

sg
la source
3
Notez qu'avec les nouvelles versions de nfs, intr est obsolète ou n’a aucune opération. Dans ce cas, vous devez utiliser le logiciel.
Paul
3

umount -f /mnt/myfolderdevrait résoudre ce problème. Voir la page de manuel umount.

Pauska
la source
2
Cela ne se fait pas vraiment avec NFS et un serveur mort. Vous avez également besoin du drapeau paresseux (ou de l’astuce consistant à ajouter un IfAlias). lsof et le fuser bloquent tous et umount -f dit "périphérique occupé".
wawawawa
1

Soit dit en passant , automount gère le démontage des partages NFS quand ils deviennent indisponibles, ce qui évite de rester bloqué dans cette situation à l'avenir.

Coops
la source
2
Pas nécessairement. Les montages automount peuvent également être bloqués dans cette situation, si vous essayez d'accéder au répertoire de quelque manière que ce soit, le processus sera bloqué.
Kamil Kisiel
Oui, le montage automatique pose autant de problèmes qu'il en résout.
pjc50
1

Je n'ai jamais réussi à me rendre umount -fau travail. Une astuce utile consiste à configurer un autre serveur montant le même export, en lui attribuant la même adresse IP que l'ancien serveur. Votre client NFS doit penser que tout est rentré dans l'ordre et que les processus se débloquent. Vous pouvez ensuite démonter le point de montage normalement et supprimer l'adresse IP du serveur NFS temporaire.

David Pashley
la source
2
le -l (paresseux) est la clé, comme mentionné ci-dessus
Matt Simmons
1

Pour Solaris, le redémarrage du client NFS résoudra la "spirale de la mort". La commande pour Solaris 10 est "svcadm restart network / nfs / client". Cette opération n’a pas été tentée récemment sur une machine Linux (parce que tous sont montés avec le drapeau "intr", ils ont donc rarement ce problème), mais cela corrigera probablement aussi le problème.

John Grant
la source
0

Je viens de remarquer que le blocage forcé du noyau 3.2.0 est bloqué avec les montages NFSv4. Les démontages NFSv3 fonctionnent correctement.

$ mount [...] -o nfsvers=3
Kuu Tirronen
la source
0

juste un suivi spécifique à OS X, puisque les commandes de montage sont généralement agnostiques * nix: le drapeau -l (lazy) n'existe pas sous OS X, cependant, le drapeau -f (force) existe, et s'est avéré suffisant . De plus, les points de montage générés par le système se trouvent dans / Volumes (/ Volumes / myserversexport).

niels
la source
0

J'ai rencontré le même problème. Depuis que le serveur NFS a été supprimé, je ne peux pas démonter le nfs du client. J'ai essayé le truc suivant, voir si cela pouvait être utile. Le serveur NFS d'origine ayant disparu, je crée un nouveau serveur avec la même adresse IP et les mêmes exportations. Ensuite, j'essaie umount -f / mnt / nfs_part. Je pouvais enfin démonter le NFS maintenant.

Lan
la source