Netzwerk Dateisysteme - I4 * Lehrstuhl fuer Informatik * RWTH Aachen
Netzwerk Dateisysteme - I4 * Lehrstuhl fuer Informatik * RWTH Aachen
Netzwerk Dateisysteme - I4 * Lehrstuhl fuer Informatik * RWTH Aachen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Rheinisch-Westfälische Technische Hochschule <strong>Aachen</strong><br />
<strong>Lehrstuhl</strong> für <strong>Informatik</strong> IV<br />
Prof. Dr. rer. nat. Otto Spaniol<br />
¡£¢¥¤§¦ ¡©¨�������¢¥¡©���£����¢�¡©� ¡<br />
Proseminar: Kommunikationsprotokolle<br />
SS2003<br />
Juliane Mathes<br />
Matrikelnummer: 235672<br />
Betreuung: Mesut Günes<br />
<strong>Lehrstuhl</strong> für <strong>Informatik</strong> IV, <strong>RWTH</strong> <strong>Aachen</strong>
Inhaltsverzeichnis<br />
1 Einführung 4<br />
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1.2 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1.3 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2 Grundlagen von <strong>Netzwerk</strong>dateisystemen 5<br />
2.1 Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2.2 Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
3 NFS - das bekannteste <strong>Netzwerk</strong>dateisystem 6<br />
3.1 Geschichtliches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
3.2 Spezifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
3.3 Unterschiede NFS Version 2 und NFS Version 3 . . . . . . . . . . . . . . . . . . . . 8<br />
3.4 Schwächen von NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
3.5 NFS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
3.5.1 Dienste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
3.5.2 Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
3.5.3 Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
3.6 NFS Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
3.6.1 Dienste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
3.6.2 Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
3.6.3 Kommandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
3.7 Beispiel für NFS-Server und NFS-Client . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
3.7.1 Aufbau eines NFS-Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
3.7.2 Zugriff über verschiedene NFS-Clients . . . . . . . . . . . . . . . . . . . . 15<br />
4 Andere <strong>Netzwerk</strong>dateisysteme 16<br />
4.1 CIFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
4.2 AFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
4.3 Speichernetze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
2
5 Zusammenfassung 18<br />
Abbildungsverzeichnis<br />
1 Übermittlung des RPC Port eines Dienstes vom Server an den Client . . . . . . . . . 7<br />
2 Ablauf des mount Vorgangs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
3 Asynchrones Schreiben bei NFS Version 3 . . . . . . . . . . . . . . . . . . . . . . . 9<br />
4 <strong>Netzwerk</strong> mit einem NFS-Server und zwei Clients . . . . . . . . . . . . . . . . . . . 14<br />
5 Ein Speichernetz trennt Server und Speichergeräte . . . . . . . . . . . . . . . . . . 17<br />
Übersicht der Abkürzungen<br />
Abkürzung Bedeutung<br />
ACL Access Control List<br />
AFS Andrew File System<br />
CIFS Common Internet File System<br />
FTP File Transfer Protocol<br />
NAS Network Attached Storage<br />
NFS Network File System<br />
RFC Request for Comments<br />
RPC Remote Procedure Call<br />
SAN Storage Area Network<br />
SMB Server Message Block<br />
TCP Transmission Control Protocol<br />
UDP User Datagram Protocol<br />
UID userID interne Benutzernummer, die vom System verwendet wird<br />
XDR External Data Representation<br />
3
1 Einführung<br />
1.1 Motivation<br />
Jeder handelsübliche Rechner und jede Workstation ist heute mit großen Festplatten ausgestattet, so<br />
dass es an Speicherplatz nicht mangelt. Werden mehrere Rechner vernetzt, dann sind die Daten eines<br />
Benutzers auf der Festplatte eines bestimmten Rechners gespeichert. Diese auf mehrere Rechner<br />
verteilte Speicherung der Daten ist von Nachteil, da der Zugriff auf die Daten nur von diesem einen<br />
Rechner aus erfolgen kann. Die regelmässige Datensicherung muss über mehrere Rechner hinweg<br />
erfolgen und ist daher sehr aufwendig. Software, die auf jedem Rechner installiert ist, muss bei Erscheinen<br />
einer neuen Version auf jedem einzelnen Rechner auf den neusten Stand gebracht werden.<br />
Abhilfe schafft ein <strong>Netzwerk</strong>dateisystem. Es ermöglicht den gemeinsamen Zugriff auf Daten, die auf<br />
einem zentralen Server bereitgestellt werden. Die Daten können von verschiedenen Rechnern aus<br />
von allen Benutzern, die auf diese Daten individuell Zugriff haben, erreicht werden. Für den Benutzer<br />
macht es keinen Unterschied, ob die Daten lokal oder auf einem entfernten Rechner liegen. Er<br />
merkt dies im Idealfall überhaupt nicht. Die Sicherung von Daten erfolgt zentral auf dem Server. Die<br />
Aktualisierung eines Softwarepakets wird zunächst auf dem Server durchgeführt. Damit wird eine<br />
automatische Aktualisierung der Software auf den Clients möglich. Diese Methode ist dann nützlich<br />
wenn Software aus Sicherheitsgründen innerhalb kürzester Zeit aktualisiert werden muss, wie zum<br />
Beispiel bei Virenscannern. Vertrauliche Daten werden durch Zugriffsrechte geschützt und sind nur<br />
bestimmten Benutzern zugänglich. Für manche Arbeitsbereiche wie zum Beispiel Softwareentwicklung<br />
ist es wichtig, dass mehrere Benutzer gleichzeitig an einem Projekt arbeiten und auf gemeinsame<br />
Dateien zum gleichen Zeitpunkt zugreifen können. Der simultane Zugriff auf Dateien wird von einem<br />
<strong>Netzwerk</strong>dateisystem geregelt.<br />
1.2 Zielsetzung<br />
Durch ein <strong>Netzwerk</strong>dateisystem werden Daten für alle Rechnerarchitekturen transparent verfügbar<br />
gemacht und stehen im gesamten <strong>Netzwerk</strong> bereit. Die Daten werden zentral auf einem oder mehreren<br />
Servern abgelegt. Die Benutzerverwaltung ist ebenfalls zentral geregelt, das Betriebssystem der<br />
einzelnen Rechner spielt im Hinblick auf Dateisystem und Benutzerverwaltung eine unwesentliche<br />
Rolle. Der Benutzer kann sich durch die zentrale Benutzerverwaltung an jedem Rechner im lokalen<br />
<strong>Netzwerk</strong> (LAN) anmelden und findet dort durch das <strong>Netzwerk</strong>dateisystem immer seine gewohnte<br />
Arbeitsumgebung vor. Die Zugriffsbeschränkungen werden durch den Server auf Dateien und Verzeichnisse<br />
vergeben und kontrolliert, es ist kein unbefugter Zugriff auf Daten möglich. Der Zugriff<br />
auf Daten kann von mehreren Benutzern gleichzeitig erfolgen und es stehen Funktionen zum Auffinden<br />
und Beseitigen von Fehlern bereit. Auf dem Server erfolgt eine regelmässige Datensicherung. Im<br />
Falle der Fälle ist eine schnelle Wiederherstellung der Daten möglich.<br />
4
1.3 Aufbau der Arbeit<br />
In dieser Arbeit wird das Konzept und der Aufbau von <strong>Netzwerk</strong>dateisystemen beschrieben und ihre<br />
Funktionsweise erläutert. Das Network File System (NFS) wird vorgestellt und an einem Beispiel detailliert<br />
erklärt. Es werden weitere <strong>Netzwerk</strong>dateisysteme beschrieben sowie ihre Vor- und Nachteile<br />
miteinander verglichen. Im Ausblick werden andere Ansätze zur zentralen Verwaltung von Daten im<br />
<strong>Netzwerk</strong> vorgestellt.<br />
2 Grundlagen von <strong>Netzwerk</strong>dateisystemen<br />
2.1 Funktionsweise<br />
<strong>Netzwerk</strong>dateisysteme erlauben einen transparenten Zugriff auf Daten eines Servers von enfernten<br />
Rechnern (Clients) aus. Ein oder mehrere Server bieten Verzeichnisse mit Dateien und Programmen<br />
für andere Rechner an. Der Server stellt Funktionen zur Authentifizierung der Clients und der Benutzer,<br />
zur Übermittlung der Daten, zum Auffinden und Beseitigen von Fehlern sowie zur Regelung<br />
des gleichzeitigen Zugriffs von mehreren Rechnern auf eine Datei bereit. Die Clients binden die Verzeichnisse<br />
des Servers so in das lokale System ein, dass der Benutzer des Clients keinen Unterschied<br />
zwischen lokalen und entfernten Daten bemerkt. Ein Benutzer meldet sich mit Benutzernamen und<br />
Passwort auf einem Client an und versucht auf Daten zuzugreifen, die auf einem Server gespeichert<br />
sind. Der Client fordert dann beim Server die Daten für diesen Benutzer an. Der Benutzer selbst muss<br />
nicht wissen, wo diese Dateien liegen, er merkt nichts von der Kommunikation zwischen den beiden<br />
Rechnern. Der Server verifiziert den Client und den Benutzer und ermittelt, welche Berechtigungen<br />
der Benutzer auf welche Verzeichnisse oder Dateien hat. Ist dem Benutzer der Zugriff auf die angeforderten<br />
Daten erlaubt, so werden die Daten zum Client übertragen. Ist der Zugriff nicht erlaubt, so<br />
wird eine entsprechende Fehlermeldung an den Client geschickt. Bei erfolgreicher Authentifizierung<br />
kann der Benutzer mit den Daten so arbeiten, als ob diese lokal gespeichert wären.<br />
2.2 Anforderungen<br />
Für den reibungslosen Ablauf der Kommunikation im <strong>Netzwerk</strong>dateisystem soll dieses folgende Eigenschaften<br />
erfüllen.[1]<br />
Zugriffstransparenz: Benutzer oder Programme merken beim Zugriff auf Dateien nicht, ob auf ein<br />
lokales oder auf ein entferntes Dateisystem zugegriffen wird<br />
Ortstransparenz: Der tatsächliche Speicherort der Daten ist dem Benutzer unbekannt und kann<br />
sich ändern, für den Benutzer scheinen die Daten immer an derselben Stelle zu liegen.<br />
Fehlertransparenz: Nach Ausfällen von Client oder Server wird der Dateibetrieb reibungslos wieder<br />
aufgenommen.<br />
5
Leistungstransparenz: Verzögerung durch Zugriff auf entfernte Dateien bei Schreib-/Lesezugriffen<br />
sollen möglichts vermieden werden. Zu diesem Zweck werden die Daten beim Client und beim<br />
Server in einem Cache abgelegt.<br />
Nebenläufigkeitstransparenz: Der gleichzeitige Zugriff von mehreren Benutzern auf ein und dieselbe<br />
Datei verursacht keine Inkonsistenzen.<br />
Zugriffstransparenz: Für jede Datei und jedes Verzeichnis wird festgelegt, welche Benutzer oder<br />
welche Gruppen welche Zugriffsrechte haben. Dabei wird zwischen verschiedenen Berechtigungen,<br />
beispielsweise Lesen, Schreiben und Ausführen unterschieden.<br />
3 NFS - das bekannteste <strong>Netzwerk</strong>dateisystem<br />
3.1 Geschichtliches<br />
Die Firma Sun Microsystems begann 1984 damit, ein System zu entwickeln, das den transparenten<br />
Zugriff auf entfernte Daten ermöglichen sollte. Das Network File System (NFS) Version 1 gelangte<br />
jedoch nicht zum praktischen Einsatz, sondern wurde direkt zur Version 2 weiterentwickelt. Ein Jahr<br />
später wurde die Version 2 von NFS vorgestellt und inklusive der Spezifikation veröffentlicht. Die<br />
Herausgabe der Spezifikation stellte zu dieser Zeit eine Neuheit dar, da solche Interna üblicherweise<br />
nicht veröffentlicht wurden. Die Bereitstellung der Spezifikation von NFS ist einer der Hauptgründe<br />
für die weite Verbreitung dieses <strong>Netzwerk</strong>dateisystems. NFS wurde auf weitere Plattformen wie BSD,<br />
HP-UX, AIX und Linux portiert. Die Version 3 von NFS wurde 1987 vorgestellt. Sie ist eine Erweiterung<br />
der Version 2 und zu dieser abwärtskompatibel. Beide Version laufen neben- und miteinander,<br />
das heißt, Server und Client können auch dann miteinander kommunizieren, wenn auf einem Rechner<br />
NFS Version 3 und auf dem anderen noch NFS Version 2 eingesetzt wird. Der Funktionsumfang ist<br />
dann allerdings auf Version 2 beschränkt. Seit Dezember 2000 existiert eine Spezifikation für NFS<br />
Version 4, Ziele dieser Version sind der verbesserte Zugriff und Durchsatz von NFS übers Internet<br />
sowie strenge Sicherheitsmechanismen des NFS-Protokolls. Diese Version ist ebenfalls abwärtskompatibel<br />
zu Version 3 und Version 2, sie ist bis jetzt aber noch nicht im praktischen Einsatz.<br />
3.2 Spezifikation<br />
Das <strong>Netzwerk</strong>dateisystem NFS wird durch die Request for Comments (RFC) 1094 [2], 1813 [3] und<br />
3010 [4] beschrieben. NFS stellt netzwerkweit Dateien zur Verfügung, das <strong>Netzwerk</strong>dateisystem ist<br />
in einer Client-Server-Struktur organisiert. Ein oder mehrere Server bieten Verzeichnisse für viele<br />
verschiedene Clients an. Der NFS-Server ist ein zustandsloser Server, es werden keine Statusmeldungen<br />
an die Clients geschickt. Per NFS ist es möglich, Verzeichnisse auf entfernten Rechnern auf dem<br />
lokalen Rechner so einzubinden, dass clientseitig der Eindruck einer einzigen großen Festplatte entsteht.<br />
Das <strong>Netzwerk</strong>dateisystem ist portabel über Rechner, Systeme und <strong>Netzwerk</strong>protokolle hinweg.<br />
6
Die Portabilität wird durch die Verwendung von Remote Procedure Calls (RPC) [6] gesichert. Das<br />
RPC-Protokoll verwaltet mit einem eigenem Dienst, dem Portmapper, das Angebot an Diensten und<br />
deren Funktionen, die ein Rechner anbietet. NFS ist einer der Dienste.<br />
Abbildung 1: Übermittlung des RPC Port eines Dienstes vom Server an den Client<br />
Abbildung 1 zeigt den Ablauf der Kommunikation zwischen zwei Rechnern über RPC. Jeder RPC-<br />
Dienst wird durch den Rechnernamen und die zugehörige Portnummer des Dienstes angesprochen.<br />
Beim Start des Rechners registrieren sich die Dienste beim Portmapper und melden die Nummer des<br />
Ports, über den der Dienst mit anderen Rechnern kommuniziert. Der Client fragt beim Portmapper<br />
des Servers nach der Portnummer für den Dienst, der genutzt werden soll. Anschliesend kommuniziert<br />
der Client direkt mit dem Sever über den zurückgelieferten Port. Der Portmapper ist an dieser<br />
Kommunikation nicht mehr beteiligt.<br />
Auf einem NFS-Server müssen beim Booten der NFS-Dienst nfsd und der Mount-Dienst mountd<br />
gestartet werden. Das d an dem Namen der Dienste weisst daraufhin, dass es sich um einen Daemon<br />
handelt, der im Hintergrund läuft und auf Anfragen wartet. Der NFS-Dienst gibt Verzeichnisse zum<br />
Exportieren frei. Der Mount-Dienst ist für den Zugriff auf ein angefordertes Verzeichnis verantwortlich.<br />
Weitere nützliche Dienste sind in diesem Zusammenhang der Network State Monitor (NSM)<br />
statd und der Network Lock Manager (NLM) lockd. Sie koordinieren den gleichzeitigen Zugriff<br />
auf ein und dieselbe Datei. Der Quota-Dienst rquotad beschränkt die Speicherplatzgröße, die<br />
einem Benutzer zur Verfügung steht.<br />
Jedes UNIX Dateisystem ist hierarchisch aufgebaut, die Wurzel des Verzeichnisbaums wird mit ,,/”<br />
bezeichnet. Verzeichnisse von anderen Rechnern können an jedem beliebigen Punkt unterhalb der<br />
Wurzel eingehängt werden. Der Vorgang, dass ein Client beim Server ein Verzeichnis anfordert und<br />
dieses dann in das eigene Dateisystem einhängt, wird als mounten bezeichnet. Der Einhängepunkt<br />
muss vorher existieren. Das Gegenstück zum mount ist umount. Der Inhalt des Verzeichnisses wird<br />
mit Hilfe von umount aus dem Verzeichnisbaum ausgekoppelt.<br />
Abbildung 2 stellt den Ablauf eines mount Vorgangs dar. Beim Zugriff des Clients auf den NFS-<br />
Server fragt der Client zuerst beim Portmapper des Servers nach den Portnummern von Mount- und<br />
7
NFS-Dienst. Über die Portnummern nimmt der Client mit dem Mount-Dienst des Servers direkt Kontakt<br />
auf und fordert den Zugriff auf ein bestimmtes Verzeichnis an. Der Mount-Dienst überprüft, ob<br />
dieses Verzeichnis per NFS verfügbar ist und ob der Client die nötigen Berechtigungen besitzt. Es<br />
werden die Zugriffsberechtigungen des Rechners auf das exportierte Verzeichnis überprüft. Der Benutzer<br />
wird von NFS nicht authentifiziert. Bei erfolgreicher Authentifizierung des Rechners wendet<br />
sich der Mount-Dienst an den NFS-Dienst und bekommt von diesem ein Dateihandle auf das Verzeichnis<br />
geliefert. Dieses Dateihandle sendet der Mount-Dienst an den Client. Alle weiteren Zugriffe<br />
auf das vom Client angeforderte Verzeichnis erfolgen danach direkt zwischen dem Client und dem<br />
NFS-Dienst des Servers. Der Client prüft die Berechtigungen des Benutzers auf das Verzeichnis und<br />
erlaubt oder verweigert den Zugriff.<br />
Abbildung 2: Ablauf des mount Vorgangs<br />
NFS arbeitet auf unterschiedlichen Systemen und Hardware-Plattformen, so dass die Darstellung der<br />
Daten unterschiedlich ausfällt. Das External Data Representation Protocol (XDR) [8] konvertiert die<br />
zu übermittelnden Daten für die Übertragung in ein standardisiertes Format und nach der Übermittlung<br />
auch wieder zurück.<br />
3.3 Unterschiede NFS Version 2 und NFS Version 3<br />
Die Version 3 ist eine Erweiterung der Version 2. Die Veränderungen führen zu mehr Leistung und dadurch<br />
zu einem schnelleren Zugriff auf die Daten. Eine der wichtigsten Neuerungen ist der asynchrone<br />
Schreib-/ Lesezugriff, der die Geschwindigkeit deutlich erhöht. Beim synchronen Zugriff werden Daten,<br />
die ein Client an den Server schickt, direkt auf dem Server geschrieben und der Client erhält eine<br />
Bestätigung. Im Gegensatz dazu werden beim asynchronen Zugriff die Daten zuerst auf dem Server<br />
zwischengespeichert und der Client erhält eine Empfangsbestätigung. Zu einem günstigen Zeitpunkt<br />
werden die gesammelten Daten auf dem Server dann aus dem Cache auf das Speichermedium geschrieben<br />
und der Client bekommt eine Nachricht über den erfolgreichen Schreibvorgang. Erst nach<br />
8
dieser Vollzugsbestätigung verwirft der Client die Daten in seinem Cache. Abbildung 3 beschreibt<br />
den asynchronen Schreibvorgang.<br />
Die Obergrenze bezüglich der Übertragungsgröße wird gestrichen. Andere Größenlimits werden angepasst<br />
oder ganz aufgehoben. In der Version 3 kann als Übertragungsprotokoll zwischen User Datagram<br />
Protocol (UDP) [11], einem verbindungslosen Transportprotokoll, und Transmission Control<br />
Protocol (TCP) [12], einem verbindungsorientierten Transportprotokoll, gewählt werden. In Version<br />
2 wird nur mit UDP gearbeitet. Den immer größeren Dateien und <strong>Dateisysteme</strong>n wird durch die<br />
Unterstützung von 64 Bit langen Dateizeigern Rechnung getragen.<br />
3.4 Schwächen von NFS<br />
Abbildung 3: Asynchrones Schreiben bei NFS Version 3<br />
NFS gewährt einem Client-Rechner Zugriff auf ein exportiertes Verzeichnis, nicht einem Benutzer.<br />
Der NFS-Server prüft anhand der IP-Adresse des Clients, ob der Client auf das Verzeichnis zugreifen<br />
darf. Die Authentifizerung des Benutzers geschieht bei NFS durch den Client-Rechner über die<br />
interne Nummer des Benutzers (UID). Sie wird vom Client-System beim Zugriff auf das gemountete<br />
Verzeichnis überprüft. Beim Anlegen des Benutzers auf dem Client wird diese UID erstellt. Wird<br />
der Benutzer auf einem anderen Client zusätzlich angelegt, dann muss darauf geachtet werden, dass<br />
er dort die gleiche UID besitzt. Wird dieselbe UID fälschlicherweise an verschiedene Benutzer vergeben,<br />
erhalten alle diese Benutzer Zugriff auf dieselben Daten. Benutzern wird damit der Zugriff<br />
auf Daten erlaubt, den sie eigentlich nicht bekommen dürften. Durch eine einheitliche Benutzerverwaltung,<br />
bei der die Benutzer zentral eingerichtet werden und dann auf allen Clients zur Verfügung<br />
stehen, tritt dieser Effekt nicht mehr auf. Beispiele für eine zentrale Benutzerverwaltung sind Yellow<br />
Pages (YP) oder der Nachfolger Network Information Service (NIS+).<br />
Der NFS Server ist ein zustandsloser Sever, das heißst, den Clients werden keine Informationen über<br />
den Status des Servers übermittelt. Dies ist bei einem Ausfall des Servers nachteilig, da die Clients<br />
9
immer wieder versuchen, den Server zu erreichen und so das eigene System verlangsamen oder ganz<br />
lahmlegen. Werden zum Beispiel Verzeichnisse des Servers beim Systemstart des Clients gemountet<br />
und der Server ist nicht erreichbar, dann wiederholt der Client den Mount-Vorgang solange, bis der<br />
Server wieder erreichbar ist. Dieser Prozess läuft im Hintergrund ab, kostet aber Ressourcen.<br />
NFS verfolgt das Ziel, Daten für alle Rechner, unabhängig vom Betriebssystem des Clients, bereitzustellen.<br />
In einer UNIX Umgebung ist NFS auf allen Systemen vorhanden und zwischen diesen<br />
funktioniert der Datenaustausch. Anders hingegen sieht es in einem heterogenen <strong>Netzwerk</strong> aus, in<br />
dem Windows und UNIX Systeme miteinander kommunizieren sollen. Ein Windows-Client kennt<br />
kein NFS und kann nicht direkt auf einen NFS-Server zugreifen. Es existiert kein Protokoll, das den<br />
direkten Zugriff von Windows-Clients auf einen NFS-Server ermöglicht. Der freiverfügbare Dateiserverdienst<br />
SAMBA macht NFS-Ressourcen für Windows-Clients zugänglich. Dafür muss allerdings<br />
der Benutzer unter beiden Betriebssystemen bekannt sein, da keine betriebssystemübergreifende Benutzerverwaltung<br />
existiert.<br />
NFS zeichnet sich im LAN durch gute Performance aus. Für Verbindungen über weite Entfernungen<br />
ist es jedoch weniger geeignet. Grund hierfür sind nicht nur Performance Probleme sondern auch die<br />
schon angesprochenen schwachen Sicherheitsmechanismen zum Schutz der Daten.<br />
3.5 NFS Server<br />
Als NFS Server kann jeder Rechner mit einem UNIX Betriebssystem arbeiten. Die Dienste sind<br />
in der Regel auf dem Rechner bereits vorhanden aber nicht aktiv. Die Konfiguration des Rechners<br />
geschieht durch Dateien, die von den Diensten eingelesen und ausgewertet werden. Die benötigten<br />
Konfigurationsdateien und Kommandos sind auf allen UNIX Derivaten gleich, der Speicherort der<br />
Dateien kann hingegen variieren. Die in dieser Arbeit verwendeten Pfade beziehen sich auf SuSE<br />
Linux Version 8.0.<br />
3.5.1 Dienste<br />
rpc.mountd: Der Dienst implementiert das Mount-Protokoll. Wenn der Dienst eine Anfrage von einem<br />
NFS-Client bekommt, prüft er in der Liste der exportierten Verzeichnisse, ob dem Client der<br />
Zugriff erlaubt werden kann. Falls dem Client der Zugriff gewährt wird, liefert der Dienst ein Dateihandle<br />
auf das angeforderte Verzeichnis an den Client zurück. Jede erfolgreiche Anforderung eines<br />
exportierten Verzeichnisses wird in der Datei /var/state/nfs/rmtab eingetragen. Dieser Eintrag wird,<br />
nachdem der Client das Verzeichnis nicht mehr importiert, wieder entfernt.<br />
rpc.nfsd: Der Dienst exportiert die in der Datei /etc/exports festgelegten Verzeichnisse für bestimmte<br />
Rechner oder <strong>Netzwerk</strong>e mit den zugehörigen Optionen.<br />
Die Dienste rpc.lockd, rpc.statd und rpc.quotad sind nicht zwingend für den Betrieb des NFS-<br />
Servers erforderlich. Der Network Lock Manager lockd kontrolliert den gleichzeitigen Zugriff auf<br />
eine Datei und akzeptiert oder verweigert diese. Das Ergebnis wird an den Lock-Daemon des Clients<br />
10
übermittelt. Der Network State Monitor statd verwaltet die Statusmeldungen des Lock-Managers über<br />
Dateisperren und reicht diese bei Bedarf an den Client weiter. Das Sperren einer Datei für exklusiven<br />
Zugriff bleibt dem zugreifenden Programm überlassen, dies ist keine Aufgabe von NFS.<br />
Durch den Dienst rpc.rquotad wird der dem Benutzer zur Verfügung stehende Speicherplatz begrenzt.<br />
Die Quotas werden auf dem Server für jeden Benutzer individuell eingerichtet und dort überwacht.<br />
Der Benutzer erhält eine Warnmeldung, wenn der ihm zur Verfügung stehende Speicherplatz<br />
fast vollständig belegt ist. Er kann den Belegungsgrad auch selbst abfragen.<br />
3.5.2 Dateien<br />
/etc/rpc : Die Datei enthält eine Liste der laufenden Dienste und ihre Portnummern. Diese<br />
�<br />
Liste wird bei jedem Booten des Rechners neu erstellt.<br />
� /etc/hosts.allow und /etc/hosts.deny : In diesen Dateien wird eingetragen, welche<br />
Rechner, Gruppen von Rechnern oder <strong>Netzwerk</strong>e auf bestimmte Dienste zugreifen dürfen<br />
bzw. wem der Zugriff verboten ist. Jeder Eintrag besteht aus dem Namen des Dienstes gefolgt<br />
von einer Liste der Rechner, die von ALLOW oder DENY beendet wird. Allgemein ist es<br />
üblich, den Zugriff auf sicherheitskritsche Dienste zuerst komplett zu sperren und dann explizit<br />
den Zugriff für das lokale Subnetz oder bestimmte Rechner zu erlauben.<br />
� /etc/exports : Die Datei verwaltet die zu exportierenden Verzeichnisse. Ein Eintrag besteht<br />
aus dem Namen des Verzeichnis, das exportiert werden soll, gefolgt von den zugelassenen<br />
Clients. Die zu jedem Client gehörigen Zugriffsoptionen werden in Klammern hinter dem Client<br />
angegeben. Der Eintrag /home *.rwth-aachen.de(rw) erlaubt jedem Rechner der<br />
<strong>RWTH</strong> den schreibenden Zugriff auf das Verzeichnis /home des NFS-Servers. Dieses Schreibrecht<br />
bedeutet nicht, dass jeder Benutzer auf dem Verzeichnis schreiben darf, sondern erlaubt<br />
lediglich dem Client grundsätzlich den schreibenden Zugriff. Die Option ro deaktiviert den<br />
Schreibzugriff des Clients auf das Verzeichnis, unabhängig davon, ob der Benutzer dort Schreibrechte<br />
hat oder nicht. Alle Optionen und ihre Bedeutung erhält man durch den Befehl man<br />
exportfs [16].<br />
� /ect/init.d/nfsserver : Das Skript erledigt das Starten oder Stoppen der Dienste<br />
rpc.mountd und rpc.nfsd. Damit diese Dienste beim Serverstart automatisch aktiviert werden,<br />
müssen in dem Verzeichnis /etc/init.d/rcn.d Verweise auf das Skript angelegt werden.<br />
Das n gibt die Nummer des Runlevels an, in dem ein bestimmter Dienst starten soll. Mehr zu<br />
Runleveln und ihrer Konfiguration unter [13].<br />
3.5.3 Kommandos<br />
exportfs [-airuv] [host:/path] : Der Befehl exportiert ein Verzeichnis des Servers ,,per<br />
Hand”.<br />
11
-a Alle Verzeichnisse aus der Datei /etc/exports und aus der Kommandozeile werden exportiert.<br />
-i Das Verzeichnis der Kommandozeile wird exportiert, die Datei /etc/exports wird nicht<br />
ausgewertet.<br />
-r Alle Verzeichnisse werden erneut exportiert, (äquivalent zu -u dann -a)<br />
-u Alle exportierten Verzeichnisse werden nicht länger exportiert.<br />
-v Statusmeldungen anzeigen (verbose mode)<br />
showmount [-ae] : Durch den Befehl werden die exportierten Verzeichnisse des aktuellen Rechners<br />
oder eines anderen Rechners aufgelistet.<br />
-a Es werden die exportierten Verzeichnisse der Maschine ausgegeben.<br />
-e hostname Die exportierten Verzeichnisse vom Rechner hostname werden aufgelistet.<br />
nfsstat [-nr] : Der Befehl zeigt statistische Informationen zur Auslastung und zur Nutzung<br />
des NFS Servers an.<br />
-n Die für NFS spezifischen Werte werden angezeigt.<br />
-r Es werden die für RPC spezifischen Werte ausgegeben.<br />
3.6 NFS Client<br />
Die exportierten Verzeichnisse eines NFS-Servers stehen jedem Rechner, der zum Zugriff berechtigt<br />
ist, zur Verfügung. Der Benutzer kann diese Verzeichnisse mit dem Befehl mount in das Dateisystem<br />
des Clients einfügen. Beim jedem Neustart des Clients muss dieser Mount-Vorgang wiederholt<br />
werden. Dies ist für oft benutze Verzeichnisse unpraktisch. Abhilfe schafft das feste Einbinden der<br />
Verzeichnisse beim Hochfahren des Rechners. Hierzu werden die benötigten Verzeichnisse genau wie<br />
lokale Laufwerke in der Datei /etc/fstab eingetragen. Eine andere Möglichkeit ist das Ein- und<br />
Aushängen eines Verzeichnisses bei Bedarf. Dies wird durch einen Daemon, den Automounter, erledigt.<br />
Der Automounter überwacht den Zugriff auf ein bestimmtes lokales Verzeichnis und mountet bei<br />
Bedarf das entsprechende NFS-Verzeichnis. Findet über längere Zeit kein Zugriff mehr auf das lokale<br />
Verzeichnis statt, so wird das NFS-Verzeichnis wieder entfernt. Das Verfahren des dynamischen Einund<br />
Auskoppelns von Verzeichnissen in das Dateisystem wird zum Beispiel bei Homeverzeichnissen<br />
genutzt.<br />
3.6.1 Dienste<br />
Zum Zugriff auf einen NFS-Server ist kein Dienst erfoderlich. Für die Benutzung des Automounters<br />
muss der Dienst autofs konfiguriert werden. Dieser Dienst erzeugt für jedes Verzeichnis, das<br />
dynamisch eingebunden werden soll, einen Automounter-Daemon, der das Verzeichnis überwacht.<br />
12
3.6.2 Dateien<br />
� /etc/fstab : In der Datei werden alle statischen Informationen über <strong>Dateisysteme</strong>, die<br />
Einhängepunkte und Optionen verwaltet. Ein Eintrag in der Datei besteht aus sechs Feldern,<br />
die durch Leerzeichen voneinander getrennt sind. Der Eintrag marple:/home /home nfs<br />
rw,bg 0 0 besagt, dass das Verzeichnis home des Servers marple an der Stelle /home in das<br />
Dateisystem eingehängt werden soll. Der Typ des Dateisystems ist nfs, die Optionen sind auf<br />
Standardwerte gesetzt. Die erste Spalte eines solchen Eintrags gibt an, welches Gerät oder Verzeichnis<br />
gemountet werden soll. Der zweite Eintrag gibt den Einhängepunkt im Dateisystem<br />
an, der dritte legt den Typ des Dateisystems fest. Das vierte Feld enthält die Optionen für den<br />
Mount-Vorgang. Die beiden letzten Felder geben an, ob und in welcher Reihenfolge ein Backup<br />
oder eine Überprüfung des Dateisystems stattfinden soll. All diese Begriffe werden ausführlich<br />
und gut unter [13] erklärt.<br />
� autofs : Das Skript startet den autofs-Dienst. Der Dienst überwacht alle Verzeichnisse, die<br />
in der Datei /etc/auto.master angegeben sind, und mountet bei Bedarf das zugehörige<br />
Verzeichnis vom NFS-Server. Nach längerer Nichtbenutzung wird das Verzeichnis wieder aus<br />
dem Dateisystem ausgehängt. Damit der autofs-Dienst beim Hochfahren des Clients gestartet<br />
wird, müssen Verweise auf das Skript in den einzelnen Runleveln angelegt werden. Die Vorgehensweise<br />
wird in [13] erklärt.<br />
� auto.master : Die Datei enthält eine Liste von Verzeichnissen, die durch den autofs-Dienst<br />
überwacht werden sollen. Jeder Eintrag besteht aus dem Verzeichnisnamen sowie dem Namen<br />
einer Datei, der keymap. In dieser Datei ist das zu mountende Verzeichnis mit den zugehörigen<br />
Optionen angegeben. Mehr Informationen zur Syntax dieser Datei erhält man durch den Befehl<br />
man autofs [16].<br />
3.6.3 Kommandos<br />
mount [-t vfstype] [-o options] device dir : Durch diesen Befehl wird das Gerät<br />
oder Verzeichnis device an der Stelle dir in das lokale Dateisystem eingehängt. Mit dem Paramter<br />
-t kann der Typ des Dateisystems angegeben werden. Mit -o werden weitere Optionen gesetzt und<br />
die Standardwerte verändert. Alle Optionen und ihre Bedeutung erhält man durch den Befehl man<br />
mount [16].<br />
umount dir : Dies ist das Gegenstück zum Befehl mount. Mit dem Befehl wird das Verzeichnis<br />
dir wird aus dem Dateisystem ausgehängt.<br />
Der Befehl showmount -e hostname zeigt die auf dem Server hostname über NFS verfügbaren<br />
Verzeichnisse an. Die genaue Syntax dieses Befehl ist unter Abschnitt 3.5.3 zu finden.<br />
3.7 Beispiel für NFS-Server und NFS-Client<br />
Das konkrete Beispiel zeigt den Aufbau und die Konfiguration eines NFS-Servers unter Linux sowie<br />
den Zugriff von verschiedenen Clients aus. Um Unstimmigkeiten der UIDs zu vermeiden, existieren<br />
13
Abbildung 4: <strong>Netzwerk</strong> mit einem NFS-Server und zwei Clients<br />
auf allen Maschinen die gleichen Benutzer mit den gleichen UIDs und Passwörtern. In einem grösseren<br />
<strong>Netzwerk</strong> sollte die Benutzerverwaltung über ein System wie NIS geregelt werden. Der Server<br />
marple bietet die Verzeichnisse /opt und /home. Auf diese Verzeichnisse soll der Client stringer<br />
Zugriff haben. Dem Client craddock soll kein Zugriff auf die Verzeichnisse erlaubt werden. Der<br />
Aufbau des <strong>Netzwerk</strong>s ist in Abbildung 4 zu erkennen.<br />
3.7.1 Aufbau eines NFS-Servers<br />
Die Installation der benötigten Pakete und die Konfiguration des NFS Servers muss als Benutzer root<br />
durchgeführt werden, da nur dieser die nötigen Rechte besitzt. Zuerst wird auf dem Server das Paket<br />
nfs-utils und, falls noch nicht geschehen, der Portmapper (Paket portmap) installiert.<br />
In der Datei /etc/host.deny wird durch den Eintrag nfs: ALL der Zugriff per NFS von allen<br />
Maschinen aus verboten. Der Eintrag rpc.mountd : 192.168.99.*/255.255.255.0:<br />
ALLOW in der Datei /etc/hosts.allow berechtigt alle Rechner des Subnetzes 192.168.99 zum<br />
Zugriff per NFS. Die Verzeichnisliste und die zugehörigen Optionen werden in /etc/exports angegeben.<br />
/opt 192.168.99.*(ro)<br />
/home 192.168.99.*(rw,no root squash)<br />
Dann wird der NFS Server gestartet:<br />
marple:/etc/init.d # ./nfsserver start<br />
Starting kernel based NFS server done<br />
und das Ergebnis überprüft.<br />
marple:/etc/init.d # showmount -e marple<br />
Export list for marple:<br />
/opt 192.168.99.*<br />
/home 192.168.99.*<br />
14
3.7.2 Zugriff über verschiedene NFS-Clients<br />
Auf dem Client werden keine besonderen Pakete für den Zugriff auf Verzeichnisse über NFS benötigt,<br />
da das mount Kommando zum Linux System gehört. Im folgenden Beispiel werden zwei verschiedene<br />
Client Rechner betrachtet. Der Client stringer hat die IP Adresse 192.168.99.2. Damit gehört er<br />
zum lokalen Subnetz, weshalb ihm der Zugriff auf den Server erlaubt ist. Der Client craddock hat<br />
die IP Adresse 192.168.100.3. Er gehört nicht zum lokalen Subnetz und hat daher keinen Zugriff auf<br />
den NFS-Server.<br />
Dem Clients stringer ist der Zugriff auf die exportierten Verzeichnisse des NFS-Servers gestattet.<br />
Auf dem Client werden, falls noch nicht vorhanden, die Verzeichnisse /sw und /home mit dem Befehl<br />
mkdir /sw;mkdir /home erstellt. Durch den Befehl<br />
stringer:/ # mount marple:/home /home -obg,hard,rw<br />
wird das Verzeichnis ’zu Fuss’ gemountet. Der mount Vorgang kann durch den Befehl mount überprüft<br />
werden. Das Verzeichnis /home erscheint dann in der Liste der gemounteten Verzeichnisse.<br />
Eine andere Möglichkeit besteht darin, den Namen des zu importierenden Verzeichnisses in der Datei<br />
/etc/fstab einzutragen. Das Verzeichnis marple:/opt wird dann beim Booten des Clients an der<br />
Stelle /sw eingehängt oder kann nachträglich mit dem Befehl<br />
stringer:/ # mount /sw<br />
mount: can’t find /sw in /etc/fstab or /etc/mtab<br />
eingehängt werden. Weil im Beispiel der erwähnte fstab-Eintrag noch nicht vorhanden ist, führt der<br />
Befehl zu einer Fehlermeldung. In der Datei /etc/fstab wird deswegen folgende Zeile hinzugefügt<br />
marple:/opt /sw nfs bg,hard,ro 0 0. Damit wird festgelegt, dass das Verzeichnis<br />
/opt des Servers marple im Verzeichnis /sw auf dem Client eingehängt wird. Als Dateityp wird nfs<br />
angeben, die Optionen sind bg, rw, hard. Die beiden Nullen sorgen dafür, dass auf dem Verzeichnis<br />
beim Booten keine Überprüfung des Dateisystems ausgeführt wird.<br />
Danach wird das Verzeicnis /sw erneut gemountet, diesmal mit Erfolg. Der folgende Befehl zeigt,<br />
dass beide Verzeichnisse vom Server gemountet wurdenin das Dateisystem des Clients eingehängt<br />
wurden.<br />
stringer:/etc # mount<br />
/dev/hda3 on / type reiserfs (rw)<br />
/dev/hda2 on /boot type ext2 (rw)<br />
marple:/home on /home type nfs (rw,bg,hard,addr=192.168.99.1)<br />
marple:/opt on /sw type nfs (ro,bg,hard,addr=192.168.99.1)<br />
Dem Client stringer ist der Zugriff auf die exportierten Verzeichnisse des Servers erlaubt, da<br />
sich beide Rechner in demselben Subnetz befinden und der NFS-Server den Zugriff von Rechnern<br />
aus demselben Subnetz erlaubt. Anders sieht es bei dem Rechner craddock aus. Auf Grund der<br />
IP-Adresse gehört der Rechner zu einenem anderen Subnetz als der Server. Diesem Rechner ist der<br />
Zugriff auf den NFS-Server verboten, ein mount-Vorgang schlägt daher mit einer Fehlermeldung fehl.<br />
15
craddock: # mount marple:/opt /sw<br />
mount: marple:/opt failed, reason given by server: Permission denied<br />
Das Beispiel bietet einen kurzen Einblick in die Arbeitsweise von NFS und zeigt das Zusammenspiel<br />
zwischen Client und Server. Weitere Möglichkeiten wie der Aufbau eines komplexen <strong>Netzwerk</strong>s oder<br />
die Benutzung von autofs zum dynamischen mounten von Homeverzeichnissen werden in diesem<br />
Beispiel nicht erläutert.<br />
4 Andere <strong>Netzwerk</strong>dateisysteme<br />
4.1 CIFS<br />
Das Common Internet File System (CIFS) dient zur Verbindung von Windows-Rechnern in einem<br />
<strong>Netzwerk</strong>. Es setzt auf TCP/IP auf und ist wie NFS in einer Client-Server-Struktur organisiert. Das<br />
<strong>Netzwerk</strong>dateisystem beruht auf Server Message Block (SMB). Dieser Mechanismus ist der Vorläufer<br />
von CIFS und wird bei Windows 3.11 und Windows95/98 eingesetzt. Über sogenannte Freigaben<br />
können Rechner auf Verzeichnisse oder Festplatten anderer Rechner zugreifen. Anders als bei NFS<br />
erfolgt bei CIFS ab WindowsNT die Freigabe von Verzeichnissen für Benutzer und nicht für Rechner.<br />
Die Benutzer werden von einem zentralen Server, dem Domänen-Controller verwaltet. Auf dem<br />
Server werden Freigaben eingerichtet und die Benutzer erhalten auf diese Freigaben Berechtigungen.<br />
Ein Benutzer meldet sich auf dem Client an und wird, bevor er Zugriff auf die Freigaben des Servers<br />
erhält, von diesem authentifiziert. Der Zugriff auf Dateien wird durch Access Control Lists (ACL) auf<br />
dem Server kontrolliert.<br />
Seit WindowsNT Service Pack3 werden die Passwörter verschlüsselt im <strong>Netzwerk</strong> übertragen, in allen<br />
vorherigen Versionen erfolgte eine unverschlüsselte Übergabe des Passwortes. Durch die Kopplung<br />
des Dateizugriffs an einen Benutzer reagiert das CIFS sehr empfindlich auf eine Unterbrechung der<br />
Verbindung zum Server. Der Benutzer verliert unter Umständen Daten und muss sich nach Wiederherstellung<br />
der Verbindung erneut am Server anmelden.<br />
4.2 AFS<br />
Als gemeinsames Projekt von IBM und der Carnegie-Mellon-University wurde das Andrew File System<br />
(AFS) entwickelt. AFS ist ein verteiltes <strong>Netzwerk</strong>dateisystem. Anders als bei NFS werden bei<br />
AFS die Dateien über mehrere Dateiserver verteilt. Der Benutzer muss nicht wissen, auf welchem<br />
Fileserver seine Daten liegen, da sich die AFS-Verzeichnisstruktur über Links in das Dateisystem<br />
integriert. Jedes lokale Dateisystem ist eine AFS-Zelle. Diese Zellen werden zu einem globalen AFS-<br />
Katalog zusammengefügt, so dass prinzipiell alle Daten im AFS weltweit zugänglich sind. Durch<br />
diese Skalierbarkeit des Dateisystems bietet sich AFS auch für den Einsatz in grossen <strong>Netzwerk</strong>en<br />
oder dem Internet an. Die Berechtigungen der Benutzer werden wie bei CIFS in ACLs verwaltet.<br />
16
AFS unterstützt die Replikation von Dateien. Von jeder Datei können read-write-Kopien und readonly-Kopien<br />
auf anderen Servern existieren. Der Client entscheidet dann, welche Version er von welchem<br />
Server anfordert. Die Replikation bietet eine gewisse Sicherheit bei Serverausfällen. Eine solche<br />
Replikation wird von NFS standardmässig nicht unterstützt. AFS wird zur Zeit auf UNIX-Servern<br />
aufgesetzt und läßt sich sowohl von Windows- als auch auf UNIX-Clients aus nutzen.<br />
4.3 Speichernetze<br />
Im Zuge der stetig wachsenden Speicherkapazität entstehen Alternativen zum herkömmlichen Speichermedium<br />
Festplatte. Speichernetze (Storage Area Networks, SAN) trennen Server und Speicher,<br />
diese Trennung wird in Abbildung 5 verdeutlicht. Die vielen kleinen Festplatten und Bandlaufwerke,<br />
die an jeden Server angeschlossen sind, werden durch wenige große Speichergeräte ersetzt. Dieser<br />
Vorgang wird als Speicherkonsolidierung bezeichnet.<br />
Abbildung 5: Ein Speichernetz trennt Server und Speichergeräte<br />
Speichernetze können an zwei Stellen zwischen Anwendung und Festplatte geschaltet werden. Blockorientierte<br />
Speichernetze ersetzten das lokale Datenkabel durch ein serielles <strong>Netzwerk</strong>. Dieses <strong>Netzwerk</strong><br />
kann auch grössere Entfernung überbrücken, die Geräte kommunizieren weiterhin blockorientiert<br />
miteinander. Mehrere Server können dann auf das gleiche Speichermedium zugreifen, die Speichergeräte<br />
sind unabhängig von den Rechnern. Auch beim Network Attached Storage (NAS) ist der<br />
Speicher unabhängig von den Rechnern. Im Gegensatz zu SAN treten bei NAS die Speichermedien<br />
selbst als Dateiserver auf. Auf diese vorkonfigurierten Server wird dann dateiorientiert durch Anwendungsprotokolle<br />
wie NFS oder CIFS zugegriffen.<br />
SAN und NAS sind keine konkurrierenden Konzepte sondern zwei verschiedene Techniken, die sich<br />
kombinieren lassen. Ein NAS-Server kann ein Speichernetz hervorragend zur Speicherung oder Sicherung<br />
von Daten nutzen.<br />
17
5 Zusammenfassung<br />
Die Arbeit stellt die generelle Idee und den Aufbau von <strong>Netzwerk</strong>dateisystemen vor und beschreibt<br />
die an sie gestellten Anforderungen. Das <strong>Netzwerk</strong>dateisystem NFS wird erläutert und die Vor- und<br />
Nachteile von NFS werden aufgezeichnet. Die Dateien und Dienste, die zum Funktionieren von NFS<br />
notwendig sind, werden detailliert beschrieben, sowie einige nützliche Kommandos im Umgang mit<br />
NFS erläutert. Anschliessend wird in einem Beispiel der Aufbau eines NSF Servers erklärt und die<br />
Kommunikation zwischen Server und Clients gezeigt. Dann werden andere <strong>Dateisysteme</strong> wie CIFS<br />
und AFS vorgestellt und ihre Unterschiede zu NFS untersucht.<br />
In heutigen <strong>Netzwerk</strong>en ist ohne ein <strong>Netzwerk</strong>dateisystem kein vernüftiges Arbeiten mehr möglich.<br />
In allen Firmen und Institutonen, selbst zu Hause im Heimnetzwerk, wird ein <strong>Netzwerk</strong>dateisystem<br />
eingesetzt um Daten zwischen Rechnern auszutauschen. Die bestehenden <strong>Netzwerk</strong>dateisysteme<br />
erfüllen viele Aufgaben, haben aber auch Schwächen und lassen Verbesserungswünsche offen. Das<br />
Ziel eines <strong>Netzwerk</strong>dateisystems, Daten für Clients unabhängig von Betriebssystemen und <strong>Netzwerk</strong>en<br />
anbieten zu können, wird von keinem zur Zeit existierenden <strong>Netzwerk</strong>dateisystem erreicht. Der<br />
Austausch zwischen Rechnern mit verschiedenen Betriebssystemen gestaltet sich schwierig und ist<br />
nur mit zusätzlichem Aufwand zu realisieren. Der Datentransfer über das Internet wird im Allgemeinen<br />
durch systemspezifische Applikationen mit Hilfe des File Transfer Protocol (FTP) gelöst und<br />
nicht durch ein <strong>Netzwerk</strong>dateisystem. In dieser Hinsicht bleibt noch viel Raum für die Weiterentwicklung<br />
der einzelnen <strong>Netzwerk</strong>dateisysteme.<br />
In der Version4 von NFS wird bei der Weiterentwicklung die größste Schwäche von NFS behoben, die<br />
mangelhaften Sicherheitsmechanismen. Der NFS-Server überprüft dann nicht nur den Client sondern<br />
auch den Benutzer. Die Authentifizierung des Benutzers geschieht über Kerberos [10], so sind strenge<br />
Sicherheitsregeln möglich. Durch die besseren Sicherheitsfunktionen bietet sich NFS dann auch zum<br />
Einsatz im Internet an.<br />
Es bleiben noch viele Einsatzmöglichkeiten für ein <strong>Netzwerk</strong>dateisystem offen. Der Benutzer könnte<br />
zum Beispiel zu Hause bei Bedarf so an seinem Rechner mit den Daten arbeiten, als ob er an seinem<br />
Arbeitplatz wäre. Die Möglichkeit, jederzeit eine Sicherung der eigenen Daten anzufertigen und gesicherte<br />
Daten wiederherzustellen, würde dem Benutzer weitere Sicherheit bieten. Die zeitverzögerte<br />
Synchronisation wäre für Konferenzen und Projektentwürfe praktisch.<br />
18
Literatur<br />
[1] Reinhard Riedl Universität Zürich: Kernvorlesung Kommunikation und Verteilte Systeme. SS02<br />
http://www.ifi.unizh.ch/ riedl/lectures/KV-Einfuehrung.pdf<br />
[2] Sun Microsystems Inc.: RFC 1094 - NFS: Network File System Protocol Specification. March<br />
1989 http://www.faqs.org/rfcs/rfc1094.html<br />
[3] B. Callaghan, B. Pawlowski, P. Staubach Sun Microsystems Inc.: RFC 1813 - NFS Version 3<br />
Protocol Specification. June 1995 http://www.faqs.org/rfcs/rfc1813.html<br />
[4] S. Shepler, B. Callaghan, D. Robinson, R. Thurlow Sun Microsystems Inc., C. Beame, Hummingbird<br />
Ltd., M. Eisler Zambeel Inc., D. Noveck Network Appliance Inc.:RFC 3010 - NFS<br />
Version 4 Protocol. December 2000 http://www.faqs.org/rfcs/rfc3010.html<br />
[5] S. Shepler Sun Microsystems Inc.: RFC 2624 - NFS Version 4 Design Considerations. June<br />
1999 http://www.faqs.org/rfcs/rfc2624.html<br />
[6] Sun Microsystems Inc.: RFC 1057 - RPC: Remote Procedure Call Prtotocol Specification Version<br />
2. June 1988 http://www.faqs.org/rfcs/rfc1057.html<br />
[7] R. Srinivasan Sun Microsystems: RFC 1831 - RPC: Remote Procedure Call Protocol Specification<br />
Version 2. August 1995 http://www.faqs.org/rfcs/rfc1831.html<br />
[8] Sun Microsystems Inc.: RFC 1014 - XDR: External Data Representation Standard. June 1987<br />
http://www.faqs.org/rfcs/rfc1014.html<br />
[9] R. Srinivasan Sun Microsystems: RFC 1832 - XDR: External Data Representation Standard.<br />
August 1995 http://www.faqs.org/rfcs/rfc1832.html<br />
[10] J. Linn OpenVision Technologies: RFC 1964 - The Kerberos Version 5 GSS-API Mechanism.<br />
June 1996 http://www.faqs.org/rfcs/rfc1964.html<br />
[11] J. Postel ISI: RFC 768 - UDP: User Datagram Protocol. August 1980<br />
http://www.faqs.org/rfcs/rfc768.html<br />
[12] Information Sciences Institute University of Southern California: RFC 793 - TCP: Transmission<br />
Control Protocol. September 1981 http://www.faqs.org/rfcs/rfc793.html<br />
[13] Sebastian Hentze, Dirk Hohndel, Martin Müller, Olaf Kirch: Linux Anwenderhandbuch. 1995<br />
5.Auflage LunetIX Softfair<br />
[14] Alexander Mattausch: Gut Verbunden - Kooperation im Netz mit dem Network Files System<br />
NFS. c’t 15/2000 S.198-203<br />
[15] Ulf Troppens: Speicher im Netz - Professionelle Speicherverwaltung mit SAN und NAS. c’t<br />
08/2003 S.174-181<br />
[16] Man-Pages unter SuSE Linux 8.0<br />
19