05.02.2013 Aufrufe

Netzwerk Dateisysteme - I4 * Lehrstuhl fuer Informatik * RWTH Aachen

Netzwerk Dateisysteme - I4 * Lehrstuhl fuer Informatik * RWTH Aachen

Netzwerk Dateisysteme - I4 * Lehrstuhl fuer Informatik * RWTH Aachen

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!