Wir haben eine NFS 4-Freigabe, die ein Volume zwischen einer Reihe von Servern teilt (NFS-Server und Clients, alle Debian 8). Wir hatten in letzter Zeit einige Probleme, bei denen Netzwerkausfälle die Client-Systeme einfrieren konnten.
Unsere NFS-Optionen waren minimal, nur rw
(und damit die Voreinstellung hard
, fg
usw.).
Ich experimentiere jetzt mit diesen Optionen, bekomme aber nicht das erwartete Verhalten:rw,soft,bg,retrans=6,timeo=150
(Ich habe die Rücktransaktionen erhöht, um einen Teil des weichen Risikos auszugleichen)
Das Verfahren, das ich zum Testen befolge, lautet:
- Maschine booten
cd
nach/mnt/mountpoint
- Überprüfen Sie, ob die NFS-Verbindung in Ordnung ist
cd /
- Netzwerk beenden
ifdown eth0
cd
nach/mnt/mountpoint
ls
An diesem Punkt friert die Befehlszeile ein und ich kann sie nicht unterbrechen. Nach einiger Zeit erscheint die Meldung „nfs:server [servername] not responding, timed out“, die scheinbar einmal pro Minute (unendlich) wiederholt wird.
Was ich möchte/erwarte, dass der Vorgang fehlschlägt und die Kontrolle zurückgibt.
Könnte mir bitte jemand sagen, wo ich mit diesen Einstellungen falsch liege?
(PS:Ich habe auch versucht, mit autofs zu mounten, habe aber ein ähnliches Verhalten gesehen)
Vielen Dank
Akzeptierte Antwort:
intr
sollte es Ihnen ermöglichen, die Kontrolle wieder zu erlangen, wenn Sie ^C
drücken , aber normalerweise nicht sofort.
intr If an NFS file operation has a major timeout and it is hard mounted, then allow signals to interupt the file operation and cause it to return EINTR to the calling program. The default is to not allow file operations to be interrupted.
Wie Sie sagen, sind Erwartungen hier das Problem. Netzwerkprobleme können vorübergehend sein, aber das Fehlschlagen einer Operation ist dauerhaft. Daher blockieren die meisten Operationen standardmäßig einfach, bis die Operation abgeschlossen ist.
Dies ist die Standardantwort, aber wenn ich mir eine aktuelle Manpage anschaue, sehe ich Folgendes:
The intr / nointr mount option is deprecated after ker- nel 2.6.25. Only SIGKILL can interrupt a pending NFS operation on these kernels, and if specified, this mount option is ignored to provide backwards compatibility with older kernels.
Es scheint mir also kein NFS3/NFS4-Problem zu sein, sondern eine Entscheidung darüber, wie intr
funktioniert. Sie sollten also KILL
können der Prozess, aber das wird Ihnen möglicherweise nicht viel Nutzen bringen.
Ich konnte die Diskussion darüber, warum die Option entfernt wurde, nicht finden. Können Sie Ihren Prozess beenden -KILL?
Verwandte Themen:Enthält das Video Fehler, wenn die Verbindung beim Hochladen auf YouTube unterbrochen wird?