Ich möchte wissen, was mit Verbindungen passiert, wenn NFS auf einen anderen Server (drbd) umgeschaltet wird. Wenn ich eine Datei in vim geöffnet habe, wird sie sich aufhängen, ich glaube, sie kommt nur manchmal zurück... nach einer langen Zeit?
Welche allgemeinen Methoden gibt es, um herauszufinden, ob bei einem Failover die E/A blockiert wird, Verbindungen unterbrochen werden usw.?
Hier wird eine Floating-IP zwischen zwei Servern verwendet, die NFS mit DRBD-Volume verwenden.
Antwort1
Wenn der Failower gut genug implementiert ist, wird es aus Sicht des Clients nur so aussehen, als wäre der NFS-Server für sehr kurze Zeit weg und dann wieder da. Um jedoch Datenverlust zu vermeiden, sollten Sie die Option „Sync“ verwenden.
Eine Möglichkeit, um herauszufinden, ob ein Prozess auf IO wartet, besteht darin, „ps aux“ auszuführen und in der Spalte „STAT“ nach „D“ zu suchen. Eine gängige Methode, um herauszufinden, ob ein Problem mit einem NFS-Server vorliegt, besteht darin, den Inhalt von Protokolldateien und die Ausgabe von „dmesg“ zu untersuchen und nach NFS-bezogenen Nachrichten wie „nfs: Server MyServer antwortet nicht, versuche es noch“ zu suchen.
Eine Möglichkeit, das Hängenbleiben nicht abbrechbarer Prozesse auf verlorenen NFS-Servern zu verhindern, besteht darin, beim Mounten von NFS den Schalter „intr“ hinzuzufügen. Mit diesem Schalter können Sie zumindest Prozesse beenden, die auf verlorene NFS-Server warten.