Grundlagen des Network File System
Exportartikel
von Thorsten Scherf
Erschienen im Linux-Magazin
2005/01
Unter den Netzwerk-Dateisystemen ist NFS das bekannteste und verbreitetste. Verzeichnisse entfernter Rechner vermag es so einzubinden, dass sie aus Benutzerperspektive wie lokale Ressourcen erscheinen.
Ein entferntes Dateisystem ist immer zugleich ein zentralisiertes - das macht zum großen Teil seinen Nutzen aus: Von vielen Anwendern benötigte Daten werden an einem Ort, auf dem Server, gepflegt und gesichert. Nutznießer sind die Clients, die weder Kopien noch Plattenkapazität dafür brauchen, keine verschiedenen Versionen synchronisieren müssen und sich nicht mit Backups oder Ausfallsicherheit belasten.
Dennoch arbeiten sie mit den entfernten Files so wie mit lokalen. Hat ein Benutzer sein Homeverzeichnis auf dem Fileserver, darf er von Arbeitsstation zu Arbeitsstation laufen und hat dennoch stets seine Daten und die eigenen Programmeinstellungen zur Hand.
Ein Benutzer sieht einem Verzeichnis auch nicht ohne weiteres an, ob es sich auf einem lokalen oder entfernten Dateisystem befindet. Für ihn macht das beim Lesen, Schreiben, Löschen, Verschieben oder Kopieren keinen Unterschied. Hinter den Kulissen spielen sich in beiden Fällen allerdings grundverschiedene Dinge ab.
Lokal gespeicherte Dateien, die in untereinander verketteten Datenblöcken eines Filesystems residieren, sind über den Wurzelblock der Kette, den so genannten Inode erreichbar. Er speichert neben der Adresse des ersten Datenblocks eine Reihe weiterer Informationen: Eine unverwechselbare Nummer, die Größe des File, die Zugriffsrechte oder verschiedene Zeitstempel. Diese Angaben gibt das Kommando »stat« aus, zum Beispiel »stat /etc/hosts«:
File: `/etc/hosts'
Size: 193 Blocks: 8
IO Block: 4096 reguläre Datei
Device: 306h/774d Inode: 99758 Links: 1
Access: (0644/-rw-r--r--)
Uid: ( 0/ root)
Gid: ( 0/ root)
Access: 2004-10-21 15:39:32.170288696
Modify: 2004-10-21 14:49:24.964453472
Change: 2004-10-21 14:49:24.985450280
Dateioperationen auf einem entfernten NFS-Dateisystem erledigt dagegen der Server stellvertretend für den Client. Der entfernte Rechner adressiert das gewünschte File über ein Handle, das er vom Server auf Nachfrage erhält. Zusammen mit dem Handle kann er danach eine von 18 Aktionen in Auftrag geben, die zum Leistungsangebot des NFS-Servers gehören.
Protokoll-Suite
Als Sun im Jahr 1984 NFS auf den Markt brachte, erschien zeitgleich eine ganze Sammlung verwandter Protokolle unter dem Namen ONC (Open Network Computing). Abbildung 1 zeigt die ONC-Architektur im Vergleich zu anderen Modellen, von denen sich letztlich nur TCP/IP durchgesetzt hat. NFS liegt im ONC-Modell mit anderen Protokollen in der Anwendungsschicht. Dazu gehören das Protokoll für das File-Locking NLM (Network-Lock-Manager) sowie NSM (Network-Status-Monitor).
Aufgabe des XDR-Protokolls (External Data Representation) eine Schicht darunter ist es, die zu übertragenden Daten in ein einheitliches Format zu konvertieren. So lassen sich Dateien unabhängig von der eingesetzten Hardware und vom Betriebssystem verarbeiteten. Wieder eine Schicht tiefer befindet sich das RPC-Protokoll (Remote Procedure Call,[2]). Mittels RPC können Programme Funktionen anderer Programme auf einem entfernten Rechner nutzen.
Jedes Programm, das Funktionen via RPC anbieten will, muss sich bei einem besonderen Service registrieren, dem Portmapper. Als Kontaktvermittler sammelt er die Dienstangebote inklusive der Informationen zu Protokoll und dynamisch vergebener Portnummer für die Kontaktaufnahme in einer Datenbank und gibt sie auf Anfrage an die Clients weiter. Der Ablauf ist in Abbildung 2 dargestellt.

|
Abbildung 1: Im ONC-Modell ist NFS auf der Anwendungsschicht angesiedelt (OSI-Schicht 7), XDR auf Schicht 6 des OSI-Modells. Das klassische TCP/IP-Modell fasst die Schichten 5 bis 7 zusammen.
|
Vermittlerdienste
Besonders ältere Versionen des Portmappers können leicht Sicherheitsprobleme heraufbeschwören. Neuere lassen sich zumindest darauf verpflichteten, nur Anfragen aus dem lokalen Netz zu beantworten. Diese Einstellung ist auf jeden Fall angeraten. Eingerichtet wird sie mit Einträgen im Format »portmap: Hosts« in einer der beiden Dateien »/etc/hosts.deny« oder »/etc/hosts.allow«. Welche Programme der Portmapper kennt und vermittelt, zeigt »rpcinfo -p«. Das Beispiel eines NFS-Servers zeigt das Listing 1.
Die Arbeit eines NFS-Servers teilen sich üblicherweise die beiden Daemons »mountd« und »nfsd« im Duett. Ersterer prüft die Mount-Requests der Clients auf Machbarkeit und Zulässigkeit, Letzterer startet eine konfigurierbare Anzahl Kernel-Threads, die dann die eigentlichen NFS-Operationen übernehmen.

|
Abbildung 2: Der Portmapper fungiert als Kontaktvermittler zwischen RPC-Server und -Client. Der Client erfragt den Port, über den er sich direkt mit dem Server verbinden kann.
|
| Whitepaper |
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele
Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|