ubuntuusers.de

NFSv4

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/service.png Dieser Artikel behandelt den Umgang mit dem NFS (Network File System) in der Version 4 und stellt die Unterschiede gegenüber der älteren Versionen 2/3 heraus. Ein Artikel zu NFS im Allgemeinen (mit weiterführenden Details) findet sich in NFS.

Vorteil von NFSv4

Gegenüber der vorherigen Versionen bietet NFS in der Version 4 einige Verbesserungen und Vereinfachungen:

Der bemerkenswerteste Unterschied ist, dass NFSv4 mit einem einzelnen Protokoll auskommt. In früheren Varianten von NFS waren stattdessen immer mehrere Protokolle nötig, die vom sog. Portmapper bei jedem Neustart einen Port zugewiesen bekamen. Diese Neuerung macht es v.a. für die (Netzwerk-)Administration um einiges einfacher, da beispielsweise bei Firewall-Freigaben nur noch der NFS-Port 2049 berücksichtigt werden muss.

Weitere Unterschiede

  • NFSv4 kennt UTF-8, sodass es bei Dateinamen mit Sonderzeichen keine Probleme mehr geben sollte.

  • Das Caching wurde erheblich verbessert, dadurch ist NFSv4 einiges schneller.

  • Authentifizierung via Kerberos möglich. (Siehe separater Artikel Kerberos/NFS mit Kerberos sichern)

  • Das Standardprotokoll ist TCP statt UDP wie bei NFSv3.

  • Das File-Locking wurde verbessert. Dies bedeutet insbesondere weniger Probleme, falls ein und dieselben Ordner via Samba und NFS frei gegeben werden.

Anforderung an die Systemumgebung

Wie in den NFS-Versionen zuvor ist es für einen reibungslosen und sicheren Betrieb von Vorteil, wenn alle Benutzer im Netzwerk eindeutige UIDs haben. Alternativ können ab NFSv4 die Berechtigungen auch über die Linux-Benutzernamen gesteuert werden. Zur Autorisierung wird hierfür die Kombination aus Benutzernamen und DNS-Domäne des Rechners verwendet. Falls Server und Client unterschiedlichen DNS-Domänen angehören, kann eine gemeinsame Domäne in der Datei /etc/idmapd eingetragen werden. Weiteres gibt es dazu in der Manpage des idmapd.

Installation

Sollte NFS noch nicht vorhanden sein, lässt es nachträglich problemlos installieren. Folgende Pakete und deren Abhängigkeiten müssen über die Paketverwaltung [1] installiert werden.

Server

Wenn der Rechner als Server dienen soll, der Dateien bereitstellt:

  • nfs-kernel-server

Paketliste zum Kopieren:

sudo apt-get install nfs-kernel-server 

Oder mit apturl installieren, Link: apt://nfs-kernel-server

Die unterstützten Protokollversionen des Servers können mit dem Befehl

sudo cat /proc/fs/nfsd/versions 

abgefragt werden.

Client

Wenn der Rechner nur als Client agieren soll, der auf andere Freigaben zugreift:

  • nfs-common

Paketliste zum Kopieren:

sudo apt-get install nfs-common 

Oder mit apturl installieren, Link: apt://nfs-common

Freigaben

Gegenüber den Versionen 2/3 wird bei der Freigabe über NFSv4 ein sogenanntes "Pseudodateisystem" benötigt. Im Folgenden wird erklärt, was es damit auf sich hat:

Beispiel:

Als Hauptverzeichnis für die Freigaben auf dem Server soll /srv/nfsv4 dienen. Dazu wird zuerst ein Verzeichnis angelegt[2]:

sudo mkdir /srv/nfsv4 

Dieses Verzeichnis ist das Pseudodateisystem, das als Wurzelverzeichnis für die Freigaben dient. Darin enthalten sollen nun zwei einzelne Freigaben erstellt werden.

sudo mkdir /srv/nfsv4/freigabe1
sudo mkdir /srv/nfsv4/freigabe2 

Die Freigaben selbst werden wie bei NFSv2/3 durch direkte Bearbeitung der Datei /etc/exports verwaltet. Dazu muss diese Datei angelegt und/oder bearbeitet werden. Zu Beachten ist hier die Angabe des Pseudodateisystems in der ersten Zeile.

Format/Syntax des Files /etc/exports

<pseudo-dateisystem> <rechneradresse>(<optionen>,fsid=0)
<pfad1>   <rechneradresse>(<optionen>)
<pfad2>   <rechneradresse>(<optionen>)

Man beachte die spezielle Option vom Pseudo-Dateisystem 'fsid=0'. Diese markiert das oberste Verzeichnis für alle Freigaben zusammen. Um die oben angelegten Verzeichnisse frei zu geben, werden beispielsweise folgende Zeilen benötigt:

/srv/nfsv4   192.168.2.0/24(rw,sync,root_squash,no_subtree_check,fsid=0)
/srv/nfsv4/freigabe1  192.168.2.0/24(rw,sync,root_squash,no_subtree_check)
/srv/nfsv4/freigabe2  192.168.2.0/24(rw,sync,root_squash,no_subtree_check)

Achtung!

Als Rechneradresse kann neben einer IP-Adresse oder eines IP-Bereiches auch ein Rechnername oder ein DNS-Domainname angegeben werden. Allerdings müssen im Gegensatz zu IP-Adressangaben diese Namen bereits beim Systemboot richtig aufgelöst werden können, was nicht immer der Fall sein muss. Kann der Name beim Booten nicht aufgelöst werden, wird die Freigabe nicht erstellt. Dies kann zu erheblichen Problemen führen.

Nun muss der NFS-Server noch dazu veranlasst werden, die /etc/exports neu einzulesen.

sudo service nfs-kernel-server reload 

Ein Test auf dem Server zeigt die Freigaben:

sudo exportfs -v 

Einhängen der Freigaben am Client

Um zu testen, ob sich die Freigaben am Client fehlerfrei einbinden lassen, hängt man die Verzeichnisse einmal direkt via Kommandozeile ein. Zu beachten ist hier, dass das Pseudodateisystem das Wurzelverzeichnis der Freigabe definiert - / bei der Angabe der Freigabe entspricht also /srv/nfsv4 auf dem NFS-Server.

Zuerst wird der Mountpoint für die Freigaben erstellt:

sudo mkdir /mnt/nfsv4-test 

Dann wird die erste Freigabe in das Verzeichnis eingehängt:

sudo mount -t nfs -o nfsvers=4 <nfs-server>:/freigabe1 /mnt/nfsv4-test 

Stattdessen kann auch das ganze Wurzelverzeichnis eingehängt werden:

sudo mount -t nfs -o nfsvers=4 <nfs-server>:/ /mnt/nfsv4-test 

Wenn bis hierher alles geklappt hat, kann man sich alle Mountpoints noch mit dem Befehl

mount 

anzeigen lassen.

Wenn alles geklappt hat, kann man die NFS-Freigabe in die fstab eintragen, z.B.

<nfs-server>:/ /mnt/nfsv4-test nfs nfsvers=4,rw 0 0

Wenn man eine höhere NFS-Version als 4.0 verwenden möchte, kann man dies mit der Option '-o minorversion=' angeben. Der fstab-Eintrag

<nfs-server>:/ /mnt/nfsv4-test nfs nfsvers=4,minorversion=2,rw 0 0

hängt die Freigabe mit der NFS-Version 4.2 ein.

Intern

  • NFS – Grundartikel zu NFS (hauptsächlich Version 2/3)

  • Serverdienste – Übersichtsartikel

  • Heimnetzwerk – Einführender Artikel; betrifft vor allem einfache Anwendungen

  • Autofs – Erlaubt auch die Auswahl ("browse") und das Einbinden von NFS-Freigaben

Extern

Diese Revision wurde am 29. Februar 2020 06:00 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Freigaben, Server, Netzwerk