Home / LinuxUser / 2002 / 03 / Das Network File System (NFS)

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Verteilte Daten

Das Network File System (NFS)

01.03.2002

Was passiert eigentlich, wenn man auf Daten entfernter Rechner per NFS zugreift? Ein Blick hinter die Theorie- und Praxiskulissen.

Bereits 1984, also lange, bevor Linus Torvalds auch nur annähernd an Linux dachte, und die Computer-Welt noch von Mainframes regiert wurde, machte sich das Unternehmen Sun Microsystems an die Aufgabe, ein System zu entwickeln, mit dem man über das Netzwerk auf Dateien anderer Rechner zugreifen und diese auslesen, verändern oder abspeichern konnte. 1985 war es schließlich soweit: Sun stellte "NFS Version 2" (NFS V2) der Öffentlichkeit vor. Mit der Veröffentlichung der Spezifikation selbst durchbrach Sun zum ersten Mal die geheiligte Tradition der Geheimhaltung solch technischer Einzelheiten – und ebnete damit letzten Endes den Siegeszug von NFS. Sun stellte allen anderen Firmen die Entwicklungsergebnisse als Lizenz zur Verfügung und ermöglichte somit einen De-facto-Standard in der Unix-Welt, der sich bis heute durchgesetzt hat und immer noch eine der erfolgreichsten Unix-Technologien darstellt.

Nach und nach wurde NFS auf alle möglichen Plattformen wie System V, BSD, AIX, HP-UX und später auch Linux portiert und ist heute Teil jeder Linux-Distribution. Doch was verbirgt sich hinter diesen drei Buchstaben? In erster Linie ein zustandsloses Protokoll, d. h., die beteiligten Programme müssen sich nicht merken, in welchem Zustand ihre Verhandlungen stehen, und sie müssen auch nicht dauernd miteinander reden.

Protokoll-Kollegen

1991 veröffentlichte SunSoft, eine Sun-Tochtergesellschaft, eine Protokoll-Suite namens ONC ("Open Network Computing"), in die alle an einem Datei-Zugriff über NFS beteiligten Protokolle integriert wurden.

Der NFS-Dienst vertritt dort die Applikationsebene, d. h., mit ihm wird direkt gearbeitet. Ein weiterer, wichtiger Kollege aus der ONC-Suite ist der "Remote Procedure Call"-Dienst (RPC), der die Empfangszentrale für Anfragen von Clients ist. Diese leitet er an die zugehörigen Ports und Server weiter, die die eigentliche Arbeit machen.

Da NFS verschiedenartige Plattformen, unabhängig von ihren Herstellern, verbinden möchte, gibt es bei der Verständigung oftmals Probleme. Diese löst der XDR-Dienst ("External Data Representation") durch Konvertierung der Daten, d. h., er übersetzt alle eingehenden Daten in ein für das Betriebssystem des Rechners verständliches Format. Auf der Applikationsebene tummeln sich nicht nur der NFS-Dienst selbst, sondern auch das Mount-Protokoll oder der Lock-Manager. Ersteres koordiniert den "Einhängevorgang" eines NFS-Server-Dateisystems in den Dateibaum des Client-Rechners. Dabei wird der NFS-Server gefragt und die Berechtigungsnachricht an den Client weitergegeben. Der Lock-Manager sperrt Dateien bzw. Ordner bei bereits bestehenden Verbindungen, um Sicherheit bei der Bearbeitung der Daten zu gewährleisten und konsistente Dateien sicherzustellen.

Der Portier

Da eine Kommunikation zwischen zwei Rechnern über sogenannte Sockets, also die IP-Adresse und die zugehörige Port-Nummer eines Dienstes, läuft, muss der Client, der seine Anfrage an den Server richtet, auch den Port kennen. Dies übernimmt der Portmapper, von Sun auch RPC-Bind genannt.

Abbildung 1: So funktioniert eine Client-Server-Abfrage

Dieses Server-Programm sollte standardmäßig auf Ihrem System installiert sein; es wird beim Booten meist automatisch gestartet. Es pflegt eine kleine Datenbank, in der sich die RPC-Dienste nach dem Startvorgang registrieren. Sie geben unter anderem ihre interne Programm- und Versionsnummer an, durch die bei Anfragen an den Portmapper eine Zuordnung zum richtigen Dienst sichergestellt wird. Man kann den Portmapper mit einem Portier vergleichen, der Ihnen, vorausgesetzt, Sie nennen Ihren richtigen Namen, Ihren Schlüssel aushändigt, mit dem Sie Ihr Zimmer aufschließen können.

Ein Client, der einen RPC-Dienst nutzen will, übergibt den passenden Protokolltyp, die Programm- und die Versionsnummer des Dienstes, sodass der Portmapper seine Datenbank durchsuchen und die auf die Anfrage passende Port-Nummer mitteilen kann.

Abbildung 2: Ausgabe der vom Portmapper verwalteten Versionsnummern und Dienstinfos

Dies geschieht pro Sitzung in der Regel einmal: Der Client merkt sich die Port-Nummer und interagiert nun auf direktem Wege mit dem passenden Server-Daemon. Doch wie starten Sie nun eine NFS-Anfrage?

Nehmen wir an, Sie möchten ein freigegebenes Datenverzeichnis /export/RPMS auf dem NFS-Server (nennen wir ihn defiant und geben ihm die IP-Adresse 192.168.1.1), manuell ins Verzeichnis /mnt/nfs/ auf dem Client-Rechner einhängen. Dazu verwenden Sie den Befehl mount, der vom Einhängen lokaler Datenträger hinlänglich bekannt sein dürfte. Dessen Syntax lautet

mount eventuelle_optionen
 server
:/pfad_zum_verzeichnis
 lokaler_mountpoint

…, in unserem Beispiel also

mount -t NFS defiant:/export/RPMS /mnt/nfs

Damit fragt der Client-Daemon beim RPC-Dienst und beim Portmapper an und übergibt diesem als Programmnummer 100005, als Version 2 und als Protokoll UDP. Programmnummer und Version entnimmt der mount-Client seinen eigenen, internen Daten, die diese standardisierten Nummern enthalten

Abbildung 3: Der NFS-Mount-Vorgang

Daraufhin gibt der Portmapper als Zugriffsport den Port 1033 an (vgl. Abbildung 2), eine Information, die unmittelbar an den Client-Daemon weitergegeben wird. Im nächsten Schritt greift der Client über das entsprechende Socket (192.168.1.1:1033, wobei vor dem Doppelpunkt die IP-Adresse des Servers, dahinter die Port-Nummer für diese NFS-Verbindung steht) auf den Server-Rechner zu, wo der dortige Mount-Daemon direkt angesprochen wird. Von dort aus kommt der NFS-Daemon ins Spiel, der die Berechtigungen prüft und ein sogenanntes File Handle erstellt. Dabei handelt es sich um ein Datenobjekt mit eindeutiger Zufallszahl, die die Identifikation der Datei gewährleisten soll und nur einmalig vergeben wird. Mit diesen Parametern versehen geht die Anfrage wieder zurück zum Client-Rechner, der seinen Aufruf wiederum an den NFS-Client weitergibt. Dieser baut die Verbindung auf, um mit den gewünschten Daten arbeiten zu können.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

2654 Hits
Wertung: 55 Punkte (2 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...