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

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

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

Post by OsunSeyi »

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: 166
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 »

Hallo,

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

Der Standardwert für ein Timeout ist 60 Sekunden. 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.
OsunSeyi
Posts: 68
Joined: 4. Dec 2016, 11:05

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

Post by OsunSeyi »

Vielen Dank,
Ich habe den FStab-Eintrag übernommen, und will mal schauen.

An die andere Möglichkeit habe ich auch schon gedacht:
Ein vor dem Herunterfahren des Servers eingebundenes Script, was prüft, ob Remote erreichbar ist.
Falls ja, wird eine Art "Sperrdatei" angelegt. Solange die besteht, wird mit dem Herunterfahren gewartet.

Auf Remote nun müsste bei gemountetem NFS ein Script laufen, was alle Minute prüft, ob eine besagte Datei auf dem Server angelegt ist. Falls sie auftaucht, löscht das Script die Datei, umountet den Server und stoppt NFS. Es kann auch eine Desktop-Benachrichtigung mit notify-send erfolgen.

Wenn nun also die Sperrdatei durch Remote entfernt ist, wartet der Server noch kurz ab und fährt dann mit dem Herunterfahren fort.

Was für ein Aufwand...
Mir wurde auch der Einsatz von "Automount" empfohlen.
galmei
Posts: 166
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 »

OsunSeyi wrote: 6. Aug 2018, 06:46 Was für ein Aufwand...
Es gibt auch sehr einfache Lösungen. Zum Beispiel bekommt der hektische Superuser und/oder der erste Benutzer bei dem Shutdown-Versuch des Serverrechners eine Warnung angezeigt, mit der Möglichkeit, den Vorgang noch abzubrechen.
OsunSeyi
Posts: 68
Joined: 4. Dec 2016, 11:05

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

Post by OsunSeyi »

Hallo again..

Der von Galmei gepostete Beitrag hat insofern geholfen, als daß nach einigen Versuchen das System tatsächlich korrekt herunterfährt. Der Eintrag in der fstab hat hier auch durchaus geholfen...

Das ändert aber nichts daran, daß ich
1. in meiner Schusseligkeit natürlich jedes Mal den Server herunterfahre ohne vorher Remote auszuhängen
2. Und sich dann ROX in jedem Fall aufhängt, so daß ich
3. jedes Mal zu dem Vergnügen komme, mich über die jetzt ja verkürzte Wartezeit zu freuen.
4. Nach wie vor können sich ungeduldige Zeitgenossen in so einer Situation mit einem langen und beherzten Druck auf den Auschaltknopf behelfen, davon hat sich mein System bislang noch nicht geschreddert...

Darum scheint "Automount" wohl der richtige Weg zu sein.

mit vielen Grüßen,
tom
Post Reply