NFSv4 unter Linux

Die aktuellen Linux-Distributionen bringen das Network File System Version 4 schon mit und bringen bei richtiger Konfiguration das Dateisystem auf Trab.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 6 Min.
Von
  • Reiko Kaps
Inhaltsverzeichnis

Die Neuerungen von NFSv4 (siehe dazu Das Netzwerkdateisystem NFSv4) machen Lust auf einen ersten Blick, zumal die meisten Linuxe alle nötigen Pakete für das verteilte Dateisystem schon mitbringen.

Das eigene Netz benötigt für die Experimente einige Voraussetzungen. In der einfachsten Einrichtung authentifiziert NFSv4 Clients über ihre IP-Adresse, die der Server gegen das Domain Name System (DNS) überprüft. Die meisten Netze besitzen dank des Heim-Routers zwar einen lokalen DNS-Server. Doch verwaltet dieser meist nicht die Rechner des lokalen Netzes, sodass man entweder einen zweiten Server aufsetzen oder die Adress-Namens-Zuordnung in der Datei /etc/hosts (auf allen LAN-Rechnern) eintragen muss.

Bei nur einem NFS-Server und einem Client reichen dort die beiden Zeilen

192.0.2.10	    nfs-server.example.net
192.0.2.11 nfs-client.example.net

Alle Adressangaben entstammen dem Bereich 192.0.2.0/24, der für die Dokumentation reserviert ist. Auch die Domainnamen folgen den Empfehlungen aus RFC 2606 und müssen für eigene Experimente angepasst werden.

Der NFSv4-Server steckt in den meisten Linux-Distributionen im Paket nfs-kernel-server, das der Paketmanager nachlädt und installiert. OpenSuse benötigt zusätzlich den Wert NFS4_SUPPORT="yes" in der Datei /etc/sysconfig/nfs, der NFSv4 nach einem Neustart des NFS-Servers einschaltet.

Anschließend überprüft man, ob alle nötigen Dienste laufen. Der Aufruf ps ax | egrep 'rpc|nfs' sollte eine Ausgabe liefern, die dem folgenden Beispiel ähnelt:

2036 ?	      S<     0:00  [nfsiod]

2521 ? S< 0:00 [nfsd4]

2522 ? S 0:00 [nfsd]

...

1663 ? S< 0:00 [rpciod/0]

2029 ? Ss 0:00 /sbin/rpc.statd

2045 ? Ss 0:00 /usr/sbin/rpc.idmapd

2533 ? Ss 0:00 /usr/sbin/rpc.mountd

Die Prozesse nfsd, rpc.statd und rpc.mountd gehören zu NFSv3, nfsd4 und rpc.idmapd zu NFSv4.

Anders als seine Vorgänger hängt NFSv4 die Freigaben in ein Basisverzeichnis ein. Der Befehl mkdir /srv/nfsv4 legt es an und die Zeile

/srv/nfsv4 192.0.2.0/24(rw,fsid=0,insecure,no_subtree_check,async)

in der Datei /etc/exports teilt es dem NFS-Server mit (siehe entsprechende Manpage). Das NFSv4-Basisverzeichnis benötigt zwingend die Option fsid=0, die es als Wurzelverzeichnis markiert und über das ein Client alle Freigaben des Servers in einem Rutsch einhängen kann. Diese Freigabe authentifiziert Clients wie die Vorgängerversion über die IP-Adresse oder den Hostnamen – mit der Angabe 192.168.1.0/24 können alle Rechner aus einem privaten Netz zugreifen. Die weiteren Optionen zwischen den Klammern sind optional, sie erlauben NFS-Zugriffe von Ports überhalb 1024 (insecure) und Schreibzugriffe (rw). Der Parameter async schaltet asynchrones Schreiben ein und no_subtree_check eine Sicherheitsfunktion ab, die überprüft, ob sich eine vom Client angesprochene Datei im freigegebenen Verzeichnisbaum befindet.