nfsd(7) Miscellaneous Information Manual nfsd(7)

nfsd - Spezialdateisystem zum Steuern eines Linux-NFS-Servers

mount -t nfsd nfsd /proc/fs/nfsd

Das nfsd-Dateisystem ist ein spezielles Dateisystem, das den Zugriff auf einen Linux-NFS-Server ermöglicht. In dieses Dateisystem zu schreiben kann sich auf den Server auswirken. Lesen aus diesen Dateien kann Informationen über den Server bereitstellen.

Neben diesem Dateisystem gibt es eine Sammlung von Dateien im procfs-Dateisystem (das normalerweise in /proc eingehängt ist), die zum Steuern des NFS-Servers verwendet werden. Diese Handbuchseite beschreibt alle dieser Dateien.

Die Programme exportfs und mountd (die Teil des Pakets nfs-utils sind) erwarten, dass dieses Dateisystem in /proc/fs/nfsd oder /proc/fs/nfs eingehängt ist.

Die Dateien im nfsd-Dateisystem sind unter anderem:
exports
Diese Datei enthält eine Liste der Dateisysteme, die aktuell exportiert sind und der Clients, an die jedes der Dateisysteme exportiert ist, sowie eine Liste der Exportoptionen für jedes Client/Dateisystem-Paar. Dies ähnelt der Datei /proc/fs/nfs/exports in 2.4. Ein Unterschied ist, dass ein Client nicht unbedingt genau einem Rechner entsprechen muss. Er kann auf eine große Auswahl an Rechnern reagieren, die identisch behandelt werden.

Jede Zeile der Datei enthält einen Pfadnamen, einen Clientnamen und eine Reihe von Optionen in Klammern. Jedes Leerzeichen, jeder Tabulator, Zeilenvorschub oder Rückschrägstrich im Pfad- oder Clientnamen wird durch einen Rückschrägstrich ersetzt, dem der oktale ASCII-Code für das jeweilige Zeichen folgt.

threads
Diese Datei stellt die Anzahl der Threads dar, in denen nfsd aktuell läuft. Durch Lesen der Datei wird die Anzahl der Threads dargestellt. Durch Schreiben einer ASCII-Dezimalzahl wird die Anzahl der Threads geändert (erhöht oder verringert, wie erforderlich), um diese Anzahl zu erreichen.
filehandle
Diese Datei ist etwas unüblich, im Hinblick darauf, dass was daraus gelesen wird, davon abhängt, was hineingeschrieben worden ist. Sie bietet eine Transaktionsschnittstelle, über die ein Programm die Datei öffnen, eine Anforderung schreiben und eine Antwort lesen kann. Falls zwei separate Programme gleichzeitig öffnen, schreiben und lesen, werden deren Anfragen nicht miteinander vermischt.

Die an filehandle gestellte Anfrage sollte ein Clientname, ein Pfadname und eine Anzahl Bytes sein. Darauf sollte ein Zeilenvorschub folgen, die Felder sollten durch Leerraum getrennt sein und spezielle Zeichen sollten oktal maskiert werden.

Nachdem dies geschrieben wurde, ist das Programm in der Lage, einen Datei-Handle für diesen Pfad zu lesen, wie er an den angegebenen Client exportiert wurde. Die Länge des Datei-Handles wird höchstens die Anzahl der angegebenen Bytes sein.

Der Datei-Handle wird mit einem vorangestellten »\x« hexadezimal dargestellt.

clients/
Dieses Verzeichnis enthält ein Unterverzeichnis für jeden NFSv4-Client. Jede Datei in diesem Unterverzeichnis enthält einige Details zum Client im YAML-Format. Außerdem zwingt »expire\n« in der ctl-Datei den Server, jeglichen Status des Clients unmittelbar zu widerrufen.

Das Verzeichnis /proc/net/rpc im procfs-Dateisystem enthält eine Reihe von Dateien und Verzeichnissen. Die Dateien enthalten Statistiken, die mit dem Programm nfsstat angezeigt werden können. Die Verzeichnisse enthalten Informationen über verschiedene Zwischenspeicher, die der NFS-Server verwaltet, um die Zugriffsrechte verfolgen zu können, die verschiedene Clients auf verschiedenen Dateisystemen haben. Die Zwischenspeicher sind:

auth.unix.ip
Dieser Zwischenspeicher enthält die Zuweisung der IP-Adresse zum Namen der Authentifizierungsdomain, der die IP-Adresse als Teil zugeordnet werden soll.
nfsd.export
Dieser Zwischenspeicher enthält die Zuweisung von Verzeichnis und Domain zu Exportoptionen.
nfsd.fh
Dieser Zwischenspeicher enthält eine Zuweisung einer Domain und eines Dateisystembezeichners zu einem Verzeichnis. Der Dateisystembezeichner wird in den Datei-Handles gespeichert und besteht aus einer Zahl, die den Typ des Bezeichners angibt sowie einer Hexadezimalzahl, die den Inhalt des Bezeichners angibt.

Jedes Zwischenspeicherverzeichnis kann eine bis drei Dateien enthalten. Dies sind:

flush
Wenn eine Anzahl der Sekunden seit dem Beginn der Unix-Zeitrechnung (Epoche, 1. Januar 1970) in diese Datei geschrieben wird, werden alle Einträge im Zwischenspeicher, die zuletzt vor dieser Datei aktualisiert wurden, ungültig und werden entfernt. Durch Schreiben eines Zeitpunkts, der in der Zukunft liegt (in Sekunden seit der Epoche), wird alles entfernt. Dies ist die einzige Datei, die immer vorhanden sein wird.
content
Diese Datei enthält, falls vorhanden, eine textuelle Darstellung jedes Eintrags im Zwischenspeicher, einen pro Zeile. Falls ein Eintrag abgelaufen oder aus anderen Gründen ungültig ist, sich aber noch im Zwischenspeicher befindet (beispielsweise weil er aktiv genutzt wird), wird er als Kommentar dargestellt (mit einem vorangestellten Rautezeichen).
channel
Diese Datei agiert, falls vorhanden, als Kanal für die Übergabe von Anfragen vom Kernel-basierten NFS-Server zu einem Programm auf Anwendungsebene zur weiteren Verarbeitung.

Wenn der Kernel Informationen benötigt, die im Zwischenspeicher nicht vorhanden sind, erscheint eine Zeile in der channel-Datei, die den Schlüssel für die Information darstellt. Ein Programm auf Anwendungsebene sollte dies lesen, die Antwort finden und eine Zeile schreiben, die den Schlüssel, die Ablaufzeit und den Inhalt enthält. Zum Beispiel könnte der Kernel nfsd 127.0.0.1
in der Datei auth.unix.ip/content erscheinen lassen. Das Programm auf Anwendungsebene könnte dann nfsd 127.0.0.1 1057206953 localhost
schreiben, um anzuzeigen, dass 127.0.0.1 an localhost zugewiesen werden soll, zumindest für den jetzigen Zeitpunkt.

Falls das Programm select(2) oder poll(2) verwendet, um herauszufinden, ob es aus dem channel lesen kann, dann wird es niemals ein Dateiende sehen, aber wenn alle Anfragen beantwortet wurden, wird es blockieren, bis eine neue Anfrage erscheint.

Im /proc-Dateisystem gibt es vier Dateien, die zum Aktivieren zusätzlicher Verfolgung von Nfsd und darauf bezogenem Code verwendet werden können. Diese sind:
/proc/sys/sunrpc/nfs_debug
/proc/sys/sunrpc/nfsd_debug
/proc/sys/sunrpc/nlm_debug
/proc/sys/sunrpc/rpc_debug

Sie steuern die Verfolgung des NFS-Clients, des NFS-Servers, der Verwaltung der Netzwerksperren (lockd) beziehungsweise der zugrunde liegenden RPC-Ebene. Aus dieser Datei können Dezimalzahlen gelesen oder in diese geschrieben werden. Jede Zahl stellt ein Bitmuster dar, wobei gesetzte Bits bestimmte Verfolgungsklassen aktivieren. In den Header-Dateien des Kernels finden Sie Informationen dazu, welche Zahl welcher Verfolgungsklasse entspricht.

Dieses Dateisystem ist ist nur für Linux-Kernel der Version 2.6 und neuer verfügbar. Außerdem steht es in den späteren Teilen der Entwicklungsreihe 2.5 zur Verfügung, die zur Version 2.6 führte. Diese Handbuchseite bezieht sich nicht auf 2.4 und frühere Versionen.

Früher wurde der nfsctl()-Systemaufruf zur Kommunikation zwischen Nfsd und den Benutzerwerkzeugen eingesetzt. Dieser Systemaufruf wurde im Kernel der Version 3.1 entfernt. Ältere Versionen der Nfs-utils waren in der Lage, sofern erforderlich, auf Nfsctl zurückzufallen; dies wurde ab Nfs-utils 1.3.5 entfernt.

nfsd(8), rpc.nfsd(8), exports(5), nfsstat(8), mountd(8) exportfs(8).

NeilBrown

Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

3. Juli 2003