NFS - Mount hängt das System auf, wenn Remote nicht mehr zur Verfügung steht

German Forum
Post Reply
OsunSeyi
Posts: 30
Joined: 4. Dec 2016, 11:05

NFS - Mount hängt das System auf, wenn Remote nicht mehr zur Verfügung steht

Post by OsunSeyi » 22. Mar 2018, 05:23

Hi,

es gibt dazu verschiedene Beiträge im Netz:

Ein via NFS eingehängtes Dateisystem sollte mit den Optionen "intr" und "soft" eingehängt werden,
siehe /etc/fstab:

Code: Select all

TOURNEE:/mnt/hd/sda4/DAT   /mnt/hd/nfs/DAT   nfs         user,noauto,rw,intr,soft   0   0

# "INTR"
#
# Um zu vermeiden, dass I/O Operationen bei der Nichtverfügbarkeit des NFS Servers
# hängen bleiben.
#
# "SOFT"
#
# Zusätzlich kann auch die Option "soft" beim mount angegeben werden, damit bei
# Nichtverfügbarkeit Filesystemoperationen automatisch abgebrochen werden.
#
# Normalerweise ist es nicht möglich, über NFS gemountete Freigaben zu unmounten,
# wenn der NFS Server nicht mehr verfügbar ist.
#
# https://wiki.ubuntuusers.de/NFS/

"etc/mtab" zeigt, daß dies auch geschieht:
TOURNEE:/mnt/hd/sda4/DAT /mnt/hd/nfs/DAT nfs rw,user=root,noexec,nosuid,nodev,intr,soft,addr=192.168.2.2 0 0
Trotzdem hängt sich das System beim herunterfahren auf, just wenn die Meldung kommt:
"Umount remote Filesystems" (o.ä), wenn der Server aus Versehen vorher heruntergefahren wurde.

Kann ich das nicht so bewerkstelligen, daß ein "umount" trotzdem möglich ist?
Ich dachte, das wäre mit der Option "soft" bereits gegeben?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EDIT 1:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Habe dazu verschiedenes gefunden:
Google-Search

Noch nicht probiert: umount -f -l

You can use umount -f -l /mnt/myfolder , and that will fix the problem. -f – Force unmount (in case of an unreachable NFS system). (Requires kernel 2.1.116 or later.) -l – Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore.

Werde danach hier berichten.
Die Lösung wäre, ein kurzes Script zu schreiben, daß beim herunterfahren eingebunden wird.
siehe hier im Forum

Testen, ob eingehängt laut /etc/mtab, und testen, ob erreichbar mittels 'ls'
Falls also in mtab gelistet, aber 'ls' bringt kein Ergebnis, umount -f -l zur Anwendung bringen.
(Edit: geht nicht, 'ls' hängt sich auf)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EDIT 2:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Nichts davon hat funktioniert...:

Code: Select all

root[tom]# umount -f -l TOURNEE:/mnt/hd/sda4/DAT
^C
root[tom]# umount -fr TOURNEE:/mnt/hd/sda4/DAT
^C
root[tom]# service restart  nfsd
Starte den nfsd Systemdienst neu
Eine Lösung wäre "autofs" einzurichten, aber es nervt nervt nervt...
Es muss doch irgendwie möglich sein, das nicht mehr erreichbare NFS wieder loszuwerden?

BTW:
Trotz der Mount-Optionen "intr" und "soft" hängt sich ROX auf, sch... :evil:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EDIT 3:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

stackoverflow:force-unmount-of-nfs-mounted-directory
github:force umount NFS
opensuse:Force nfs umount (hard, no intr)

"I already tried to setup a fake interface with the original ip and also setup a nfs server at the original ip with the same share. Both attempts did not help.
...
Setting up a nfsserver with same ip, hostname and shared directory restored the connection so I was able to umount."

Code: Select all

man umount:
-f     Force  unmount  (in  case  of  an unreachable NFS system). (Requires kernel 2.1.116 or later.)

uname -r:
3.10.17-smp
Warum 'umount -f' nicht funktioniert, hat sich mir nicht erschlossen.
Also scheint das Ende der Diskussion, daß es keine praktikable Lösung gibt, und im Fall, daß bei eingehängtem NFS-Filesystem in der Tat nur der Hauptschalter hilft, sollte sich Remote unvorhergesehen verabschieden.

Daß sich trotz der Mount-Optionen "intr" und "soft" der Filemanager aufhängt, kommt noch hinzu!

In meinem Fall würde es genügen, nach Durchführung der Backup-Scripte (um derentwillen NFS läuft) einen Dialog zu öffnen, der an das Aushängen erinnert.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EDIT 4:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Code: Select all

ifconfig eth0:fakenfs 192.168.2.2 netmask 255.255.255.255
ping 192.168.2.2
... (klappt)

umount -f  192.168.2.2:/mnt/hd/sda4/DAT
umount -f  TOURNEE:/mnt/hd/sda4/DAT
umount -fl  TOURNEE:/mnt/hd/sda4/DAT

(klappt alles nicht)

ifconfig eth0:fakenfs down

galmei
Posts: 6
Joined: 1. Jun 2018, 21:54

Re: NFS - Mount hängt das System auf, wenn Remote nicht mehr zur Verfügung steht

Post by galmei » 3. Jun 2018, 17:23

Hallo,

ein der Ungeduld geschuldetes Problem? Wahrscheinlich wurde nicht lange genug gewartet, denn NFS, beziehungsweise das NFS-Mount-Unterkommando, verwendet bei der Protokollabarbeitung Retries und Timeouts.

Der Standardwert für ein Timeout ist 600 Zentelsekunden. Nach einem NFS-Umount-Versuch verstreichen also nach Standardwert bis zu 60 Sekunden. Darauf folgen bei Bedarf standardmäßig bis zu drei Wiederholungen, jeweils wieder mit dem Timeout. Erst wenn der Server dann noch nicht geantwortet hat, erfolgt eine Fehlermeldung an das beauftragende Programm.

Es müssten also 4 * 60 s = 240 s = 4 min verstreichen, bevor es überhaupt weitergehen kann.

Mit den Parametern timeo=n und retrans=n kann in dieses Verhalten eingegriffen werden, was aber auf stark belasteten Netzen von Nachteil sein wird.

Eine Parameterisierung des betreffenden fstab-Eintrags mit z.B.

Code: Select all

user,noauto,rw,soft,timeo=100,retrans=2
würde eine Gesamtwartezeit von 30 Sekunden ergeben.

Eine weitaus bessere Lösung könnte erreicht werden, wenn mit Beginn des Serverrechner-Shutdowns geprüft werden könnte, ob Clients noch Verbindungen über NFS bestehen haben. Gegebenenfalls werden diese Clients dann informiert und beenden ihre Verbindungen, sodass ab einem Zeitpunkt keine solchen Verbindungen mehr bestehen. Dazu müssten die Anwender informiert werden und mitwirken. Erst wenn keine geöffneten Dateien mehr existieren und die Clients ihre Anteile am NFS-Dateisystem abgemeldet haben, würde der Server-Shutdown fortgesetzt. Der Server verzeichnet diese Verbindungen bestimmt, sodass ein Skript zur Auswertung und Benachrichtigung eingesetzt werden könnte. Vielleicht existieren hierzu bereits Lösungen.

Der Parameter intr ist bei den heute üblichen Kernel ohne Bedeutung, sagt das NFS-Manual.

Post Reply