![]() |
|
Linux - Wegweiser für NetzwerkerOnline-VersionCopyright © 2001
by O'Reilly Verlag GmbH & Co.KG Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser für Netzwerker oder wollen Sie es bestellen, dann klicken Sie bitte hier. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Kapitel 14
|
NFS, das Network File System, ist wahrscheinlich der bekannteste auf RPC basierende Netzwerkdienst. Er ermöglicht es Ihnen, auf Dateien von entfernten Hosts genauso zuzugreifen, wie Sie es mit lokalen Dateien tun. Dies wird durch eine Mischung aus Kernel-Funktionalität und Dämonen auf Benutzerebene auf der Client-Seite und einem NFS-Server auf der Serverseite realisiert. Der Dateizugriff ist für den Client völlig transparent und funktioniert bei diversen Server- und Hostarchitekturen.
NFS bietet eine Reihe nützlicher Merkmale:
Daten, auf die von allen Benutzern zugegriffen wird, können auf einem zentralen Host gehalten werden. Clients mounten dieses Verzeichnis beim Systemstart. Beispielsweise können Sie alle Benutzerkonten auf einem Host speichern und alle Clienten in Ihrem Netzwerk /home von diesem Host mounten lassen. In Verbindung mit NIS können sich die Benutzer dann an jedem System einloggen und arbeiten dennoch mit nur einem Satz von Dateien.
Daten, die sehr viel Plattenspeicher einnehmen, können auf einem einzigen Host gehalten werden. So könnten etwa alle zu LaTeX und METAFONT gehörenden Dateien und Programme an einem Ort gespeichert und verwaltet werden.
Administrative Daten können auf einem einzelnen Host aufbewahrt werden. Es gibt keinen Grund mehr, rcp zu verwenden, um ein und dieselbe Datei auf 20 verschiedene Rechner zu kopieren.
Es ist nicht besonders schwer, die grundlegenden NFS-Funktionen für den Client und den Server einzurichten. Dieses Kapitel beschreibt, wie es geht.
Linux-NFS ist größtenteils die Arbeit von Rick Sladkey, der den NFS-Kernel und große Teile des NFS-Servers geschrieben hat.1 Letzterer wurde vom unfsd-NFS-Server, ursprünglich entwickelt von Mark Shand, und vom hnfs-Harris-NFS-Server, geschrieben von Donald Becker, abgeleitet.
Sehen wir uns nun an, wie NFS arbeitet. Als erstes versucht ein Client, ein Verzeichnis von einem entfernten Host an ein lokales Verzeichnis zu mounten, genau wie er dies mit einem physischen Gerät machen würde. Allerdings ist die für ein entferntes Verzeichnis zu verwendende Syntax anders. Soll zum Beispiel das Verzeichnis /home vom Host vlager an /users auf vale gemountet werden, führt der Administrator auf vale den folgenden Befehl ein:2
#
mount -t nfs vlager:/home /users
mount versucht, über RPC eine Verbindung mit dem Mount-Dämon (rpc.mountd) auf vlager herzustellen. Der Server überprüft, ob vale die Erlaubnis besitzt, das fragliche Verzeichnis zu mounten; wenn ja, liefert er ein Dateihandle zurück. Dieses Handle bzw. dieser Verweis wird bei allen weiteren Anfragen nach Dateien unter /users verwendet.
Greift jemand über NFS auf eine Datei zu, setzt der Kernel einen RPC-Aufruf an rpc.nfsd (den NFS-Dämon) auf der Servermaschine ab. Dieser Aufruf enthält das Dateihandle, den Namen der gewünschten Datei und die Benutzer- und Gruppen-ID als Parameter. Diese werden verwendet, um die Zugriffsrechte auf die angegebene Datei zu ermitteln. Um das Lesen und Modifizieren von Dateien durch nichtautorisierte Benutzer zu verhindern, müssen die Benutzer- und Gruppen-IDs auf beiden Hosts identisch sein.
Bei den meisten UNIX-Implementierungen wird die NFS-Funktionalität sowohl für Clients als auch für Server durch Dämonen realisiert, die auf Kernel-Ebene angesiedelt sind und während der Boot-Phase vom Benutzerbereich aus gestartet werden. Dies ist auf dem Server-Host der NFS-Dämon (rpc.nfsd) und auf dem Client-Host der Block I/O Dämon (biod). Um den Durchsatz zu verbessern, arbeitet biod mit asynchroner Ein-/Ausgabe unter Gebrauch von Read-Ahead und Write-Behind. Häufig werden auch mehrere rpc.nfsd-Dämonen gleichzeitig verwendet.
Die aktuelle NFS-Implementierung von Linux unterscheidet sich etwas vom klassischen NFS, da der Servercode vollständig im Benutzerbereich läuft. Die gleichzeitige Ausführung mehrerer Kopien gestaltet sich daher etwas problematisch. Die aktuelle rpc.nfsd-Implementierung bietet ein experimentelles Feature, das zumindest einen begrenzten gleichzeitigen Betrieb mehrerer Server ermöglicht. Olaf Kirch entwickelte eine Kernel-basierte NFS-Server-Unterstützung, die in den 2.2er Kernel-Versionen enthalten ist. Der Durchsatz ist erheblich besser als bei den vorhandenen Implementierungen auf Benutzerebene. Darauf gehen wir in diesem Kapitel noch näher ein.
1. |
Rick ist unter jrs@world.std.com zu erreichen. |
2. |
Sie können das Argument |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser für Netzwerker
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2001, O'Reilly Verlag