Der Beitrag behandelt die am häufigsten auftretenden NFS-Probleme unter Linux und wie man sie löst.
1. Fehler:„Server antwortet nicht“
Der Network File System (NFS)-Client und -Server kommunizieren mithilfe von Remote Procedure Call (RPC)-Nachrichten über das Netzwerk. Sowohl die Kommunikationspfade Host->Client als auch Client->Host müssen funktionsfähig sein. Verwenden Sie gängige Tools wie Ping, Traceroute oder Tracepath, um zu überprüfen, ob Client- und Servercomputer einander erreichen können. Falls nicht, überprüfen Sie die Einstellungen der Netzwerkschnittstellenkarte (NIC) mit ifconfig oder ethtool, um die IP-Einstellungen zu überprüfen.
Das NFS-Dateisystem meldet auch „Server antwortet nicht“, wenn eine hohe Server- oder Netzwerklast dazu führt, dass die RPC-Nachrichtenantworten eine Zeitüberschreitung aufweisen. Verwenden Sie das „timeo=N ” Mount-Option auf dem Client, um das Timeout zu erhöhen. Unter „man mount“ finden Sie weitere Informationen.
2. Fehler:„Keine Route zum Host“
Der „no route to host“-Fehler kann gemeldet werden, wenn der Client versucht, ein NFS-Dateisystem zu mounten, selbst wenn der Client den Server erfolgreich anpingen kann:
# mount NFS-Server:/data /data_remote mount: mount to NFS server 'NFS-Server' failed: System Error: No route to host.
Dies kann dadurch verursacht werden, dass die RPC-Nachrichten entweder von der Host-Firewall, der Client-Firewall oder einem Netzwerk-Switch gefiltert werden. Überprüfen Sie, ob eine Firewall aktiv ist und ob NFS-Datenverkehr zulässig ist. Normalerweise verwendet nfs Port 2049. Als schnellen Test kann man die Firewall abschalten durch:
# service iptables stop
Sowohl auf dem Client als auch auf dem Server. Versuchen Sie erneut, das NFS-Verzeichnis zu mounten. Vergessen Sie nicht, es wieder einzuschalten und richtig zu konfigurieren, um NFS-Datenverkehr zuzulassen/
3. Fehler:„mount clntudp_create:RPC:Port-Mapper-Fehler – RPC:Empfang nicht möglich“
Die Linux-NFS-Implementierung erfordert, dass sowohl der NFS-Dienst als auch der Portmapper-Dienst (RPC) sowohl auf dem Client als auch auf dem Server ausgeführt werden. Überprüfen Sie es wie folgt:
# rpcinfo -p program vers proto port 100000 2 tcp 111 portmapper [portmap service is started.] 100000 2 udp 111 portmapper 100011 1 udp 881 rquotad 100011 2 udp 881 rquotad ...
# service portmap status portmap (pid 7428) is running... [portmap service is started.]
Wenn nicht, starten Sie es mit den unten angegebenen Befehlen.
# chkconfig portmap on # service portmap start
4. Fehler:„NFS Stale File Handle“
Ein Programm verwendet den open(2)-Systemaufruf, um auf eine NFS-Datei in der gleichen Weise zuzugreifen, wie die Anwendung eine lokale Datei öffnet. Dieser Systemaufruf gibt einen Dateideskriptor oder „Handle“ zurück, den das Programm anschließend in E/A-Befehlen verwendet, um die zu manipulierende Datei zu identifizieren.
Im Gegensatz zu herkömmlichen Linux-Dateisystemen, die einer Anwendung den Zugriff auf eine geöffnete Datei ermöglichen, selbst wenn die Datei mit unlink oder rm gelöscht wurde, unterstützt NFS diese Funktion nicht. Eine NFS-Datei wird sofort gelöscht. Jedes Programm, das versucht, weitere E/A-Vorgänge für die gelöschte Datei auszuführen, erhält den Fehler „NFS Stale File Handle“. Wenn Ihr aktuelles Arbeitsverzeichnis beispielsweise ein NFS-Verzeichnis ist und gelöscht wird, sehen Sie diesen Fehler am nächsten Shell-Prompt.
Um den Status des Clients mit dem des Servers zu aktualisieren, können Sie den Einhängepunkt erzwingen:
# umount -f /mnt/mount_point
oder beenden Sie den Prozess, der auf das gemountete Dateisystem verweist:
# fuser -k [mounted-filesystem]
5. Fehler:„Zugriff verweigert“ oder „Berechtigung verweigert“
Überprüfen Sie die Exportberechtigungen für das NFS-Dateisystem. Sie können dies vom Client aus tun:
# showmount -e server_name
oder vom Server:
# exportfs -a
Wenn Sie unerwartete Exportberechtigungen sehen, überprüfen Sie die Datei /etc/exports auf dem Server. Stellen Sie sicher, dass zwischen dem zulässigen Host und den Berechtigungen kein Syntaxfehler wie Leerzeichen steht. Es gibt einen signifikanten Unterschied in der Zeile:
/home *(ro)
und die Zeile:
/home * (ro)
weil der zweite /home read-write auf alle Systeme exportiert:nicht das, was beabsichtigt war. Beachten Sie, dass die Zeile immer noch die korrekte Syntax hat, sodass sich NFS nicht darüber beschweren wird.
6. Fehler:„rpc mount export:RPC:Timed out“
Fehlermeldung:
Unable to access file system at [NFS SERVER]: rpc mount export: RPC: Timed out
Dies wird durch ein Problem mit der DNS-Namensauflösung verursacht. NFS(RPC) benötigt eine umgekehrte Namensauflösung. Wenn NFS-Server oder -Client ihren Namen nicht auflösen können, tritt dieser Fehler auf. Falls die Fehlermeldung angezeigt wird, überprüfen Sie die DNS-Konfiguration und /etc/hosts-Konfiguration.