Heben Sie die Bereitstellung eines NFS-Mount auf, bei dem der NFS-Server verschwunden ist

32

Server A war früher ein NFS-Server. Server B hat einen Export von diesem bereitgestellt. Alles war gut. Dann starb A. Einfach ausgeschaltet. Weg. Verschwunden.

Allerdings ist dieser Ordner immer noch auf B gemountet. Ich kann offensichtlich nicht cdhinein oder so. umount /mnt/myfolderHängt aber einfach und steigt nicht um. Gibt es sowieso, um es ohne Neustart von B umzumounten?

Sowohl Client als auch Server sind Linux-Maschinen.

Rory
quelle

Antworten:

45

Vorausgesetzt Linux:

umount -f -l /mnt/myfolder

Wird das Problem irgendwie beheben:

-f Aushängen erzwingen (im Fall eines nicht erreichbaren NFS-Systems). (Erfordert Kernel 2.1.116 oder neuer.)

-l Lazy aussteigen. Trennen Sie das Dateisystem jetzt von der Dateisystemhierarchie und bereinigen Sie alle Verweise auf das Dateisystem, sobald es nicht mehr ausgelastet ist. (Erfordert Kernel 2.4.11 oder neuer.)

-f ist auch unter Solaris und AIX verfügbar.

Douglas Leeder
quelle
1
Ich hatte das gleiche Problem, googelte und kam hierher. Ja - die faule Fahne hat mir hier wirklich geholfen ...
wenn
Ja, muss die Option "-l" "-f" haben, GLEICHZEITIG.
Liuyang1
2
Außerdem hatte ich manchmal einen besseren Erfolg, indem ich die entfernte Adresse anstelle des lokalen Pfads für umount angab, z. umount -f -l nfsserver:/export/thefolder.
Oliver
18

Ausarbeitung auf den Hinweis gegeben von David Pashley ,

es sei denn, "umount -l" löst Ihr Problem, können Sie einen gefälschten Server mit der gleichen Adresse wie die, die weggegangen ist, einrichten - aber Sie müssen tatsächlich keinen neuen Server oder etwas anderes einrichten. Der einfachste Ausweg aus der Situation des Blockierens / Hängenbleibens besteht darin, eine lokale Alias-IP-Schnittstelle wie folgt einzurichten :

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

(offensichtlich ist 11.22.33.44 die (frühere) IP-Adresse des (jetzt toten) NFS-Servers)

conny
quelle
Dies funktionierte für mich, außer dass ich einen lokalen NFS-Server ausführen musste.
GAK
6

Es kann ratsam sein, die intrOption zu /etc/fstabEinträgen hinzuzufügen, die hängen bleiben oder abstürzen könnten. Wenn Sie die Option softoder nicht verwenden intr, hängt der Server, auf dem die Dateien bereitgestellt werden (der Client), beim Hochfahren möglicherweise, wenn der Server, auf dem die NFS-Dateien gehostet werden, ausfällt.

Nach man 5 nfs:

soft / hard
Bestimmt das Wiederherstellungsverhalten des NFS-Clients nach einem Timeout für eine NFS-Anforderung. Wenn keine Option angegeben ist (oder wenn die Option hard angegeben ist), werden NFS-Anforderungen auf unbestimmte Zeit wiederholt. Wenn die Option soft angegeben ist, schlägt der NFS-Client eine NFS-Anforderung fehl, nachdem erneute Übertragungen gesendet wurden, wodurch der NFS-Client einen Fehler an die aufrufende Anwendung zurückgibt.

... und dann heißt es weiter, es intrsei vorzuziehen soft, aber es hat den ähnlichen Effekt, das Hängen zu verhindern.

sg
quelle
3
Beachten Sie, dass in neueren Versionen von nfs intr veraltet ist oder keinen Betrieb hat - in diesem Fall sollte soft verwendet werden.
Paul,
3

umount -f /mnt/myfoldersollte dies lösen. Siehe die manpage umount.

pauska
quelle
2
Mit NFS und einem toten Server geht das nicht ganz. Du brauchst auch die Lazy Flag (oder den Trick mit dem Hinzufügen eines IfAlias). lsof und fuser hängen alle und umount -f sagt "device busy".
Wawawawa
1

Nebenbei bemerkt, mit auto wird Aushängen von NFS Aktien behandeln , wenn sie sich unavaliable, die in diesem situatuion in Zukunft immer stecken vermeidet.

Coops
quelle
2
Nicht unbedingt. automount-Bereitstellungen können in diesem Zustand auch hängen bleiben, wenn Sie versuchen, auf das Verzeichnis zuzugreifen, ohne dass der Prozess hängen bleibt.
Kamil Kisiel
Ja, der Automounter verursacht so viele Probleme, wie er löst.
pjc50
1

Ich habe es nie geschafft, umount -fzur Arbeit zu kommen. Ein nützlicher Trick besteht darin, einen anderen Server einzurichten, der denselben Export ausführt, und ihm dieselbe IP-Adresse wie dem alten Server zuzuweisen. Ihr NFS-Client sollte denken, dass alles wieder normal ist und die Prozesse entsperrt werden. Anschließend können Sie den Mount-Punkt normal aushängen und die IP-Adresse vom temporären NFS-Server entfernen.

David Pashley
quelle
2
Das -l (faul) ist der Schlüssel, wie oben erwähnt
Matt Simmons
1

Unter Solaris wird durch einen Neustart des NFS-Clients die "Hard Mount Spiral of Death" behoben. Der Befehl für Solaris 10 lautet "svcadm restart network / nfs / client". Ich habe dies in letzter Zeit nicht auf einer Linux-Box ausprobiert (weil alle mit dem "intr" -Flag eingebunden sind, sodass sie dieses Problem selten haben), aber es wird wahrscheinlich auch behoben das Problem.

John Grant
quelle
0

Mir ist gerade aufgefallen, dass das Erzwingen von Unmounts auf Kernel 3.2.0 mit NFSv4-Mounts hängt. NFSv3-Unmounts funktionieren einwandfrei.

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

nur ein OS X-spezifisches Follow-up, da Mount-Befehle meistens * nix-unabhängig sind: Das Flag -l (Lazy) existiert in OS X nicht, das Flag -f (Force) jedoch und hat sich als ausreichend erwiesen . Die vom System generierten Mount-Punkte befinden sich auch in / Volumes (/ Volumes / myserversexport).

niels
quelle
0

Ich habe das gleiche Problem getroffen. Da der NFS-Server entfernt wurde, kann ich das NFS vom Client nicht ummounten. Ich habe den folgenden Trick ausprobiert, um herauszufinden, ob er hilfreich sein könnte. Da der ursprüngliche NFS-Server weg ist, erstelle ich einen neuen Server mit derselben IP und exportiere. Dann versuche ich umount -f / mnt / nfs_part. Endlich konnte ich das NFS umounten.

Lan
quelle