WikiDer > Netzwerkdateisystem
Es Netzwerkdateisystem, oder kurz NFS, ist ein Netzwerkdateisystem die ursprünglich entworfen wurde von Sonne Mikrosysteme 1984 für sich UnixArbeitsplätze. NFS ermöglicht das Anfordern von Dateien über die Netzwerk auf die gleiche Weise wie für Dateien auf der lokalen Festplatte.
NFS besteht nur aus a Dateisystem und hat nichts mit Prozessverwaltung oder Speicherverwaltung zu tun.
Überblick
Dank der einfachen die Architektur von NFS wird dieses Dateisystem inzwischen Plattformen unterstützt. So geht es heute MS-DOSClients einen UNIX-Server mit NFS verwenden.
Die gesamte Architektur von NFS ist in der RFCs 1094, 1813, (3010) und 3530.
NFS betrachtet eine Sammlung verbundener Workstations als eine Sammlung unabhängiger Maschinen mit unabhängigen Dateisystemen. Der Zweck von NFS besteht darin, die gemeinsame Nutzung von Dateien zwischen diesen verschiedenen Dateisystemen transparent zu ermöglichen. Dieses Filesharing kann nur auf Anfrage erfolgen. Die gemeinsame Nutzung basiert auf einer Client-Server-Beziehung. Eine Maschine kann entweder ein Client sein oder Server Handlung. Die gemeinsame Nutzung ist zwischen zwei beliebigen Computern zulässig und nicht auf dedizierte Server beschränkt.
Bis jetzt ein externes Verzeichnis transparent zugänglich von einer bestimmten Maschine (M1), muss ein Client dieser Maschine zuerst eine Mount-Operation ausführen. Mit anderen Worten, dies beinhaltet das Mounten eines externen Verzeichnisses über einem Verzeichnis eines lokalen Dateisystems. Wenn dieser Mount-Vorgang abgeschlossen ist, sieht dieses eingehängte Verzeichnis wie ein Unterbaum des lokalen Verzeichnisses aus und ersetzt den Unterbaum im lokalen Verzeichnis. Um diesen Mount-Vorgang auszuführen, ist es notwendig, den Speicherort (oder Hostnamen) des externen Verzeichnisses anzugeben. Wenn dies erledigt ist, können Benutzer auf Maschine M1 Dateien im externen Verzeichnis vollständig transparent anzeigen.
Mount-Prozess
Es Mount-Prozess ist in den Bildern illustriert. Die Dreiecke im Bild stellen die Unterbäume der Verzeichnisse dar. Diese Abbildungen zeigen drei unabhängige Dateisysteme von Maschinen mit Namen: U, S1 und S2. Zu diesem Zeitpunkt sind auf allen Computern nur die lokalen Dateien zugänglich. Die Abbildung zeigt die Auswirkung des Mountens von S1:/user/shared über U:/user/local. Diese Abbildung zeigt, wie alle Benutzer auf Maschine U ihre Dateisysteme sehen. Es ist zum Beispiel ersichtlich, dass sie auf jede Datei im Verzeichnis dir1 zugreifen können. Sie tun dies, indem sie das Präfix /user/local/dir1 verwenden, wenn der Mount-Prozess abgeschlossen ist.
Abhängig von den Berechtigungen kann grundsätzlich jedes Dateisystem oder Verzeichnis innerhalb eines Dateisystems extern über ein beliebiges lokales Verzeichnis gemountet werden. Manchmal ist es sogar möglich, kaskadierende Mounts durchzuführen. Das heißt, ein Dateisystem kann über ein anderes Dateisystem eingehängt werden, das extern eingehängt ist. Wenn ein Client ein entferntes Dateisystem einhängt, kann er nicht auf andere Dateisysteme zugreifen, die zufällig über dieses Dateisystem eingehängt wurden. Daher ist NFS nicht vorübergehend. Die Bergkaskadierung wird anhand des folgenden Beispiels verdeutlicht, das auf dem vorherigen basiert. Die Abbildung zeigt das Ergebnis des Mountens von S2:/user/dir2 über U:/user/local/dir1. Es ist daher möglich, dass sich ein Benutzer an einem beliebigen Arbeitsplatz anmelden kann und seine eigene Umgebung erhält.
Protokolle
NFS verwendet zwei Protokolle. Einen für den Mount-Mechanismus und einen für den Remote-Dateizugriff.
Mount-Protokoll
Die Funktion des Mount-Protokolls besteht darin, eine logische Verbindung zwischen einem Server und einem Client herzustellen. Das Mount-Protokoll gewährt dem Client Zugriff auf das Dateisystem des Servers. Neben dem externen Verzeichnis zeigt das Protokoll auch den Namen des Dateisystems an.
Wenn ein Server eine Mount-Anforderung empfängt, die mit dem exportierten Dateisystem übereinstimmt, gibt der Server eine Dateikennung an den Client zurück. Das Dateihandle verwendet den Client als Schlüssel für den weiteren Zugriff auf die Dateien des gemounteten Dateisystems. Der Server selbst verwaltet eine Liste von Client-Rechnern und aktuell gemounteten Verzeichnissen. Diese Liste kann dann verwendet werden, um die Clients zu warnen, wenn der Server ausfällt.
NFS-Protokoll
Das NFS-Protokoll besteht aus einer Reihe von RPC-Prozeduren. Diese Verfahren unterstützen eine Reihe von Operationen:
- Suchen Sie nach einer Datei in einem Verzeichnis;
- Lesen Sie eine Sammlung von Verzeichniseinträgen;
- Manipulieren von Links und Verzeichnissen;
- Dateien lesen und schreiben.
Der Aufruf dieser Prozeduren ist nur über ein Dateihandle möglich.
Eine der wichtigsten Eigenschaften eines NFS-Servers ist, dass er zustandslos ist. Dies bedeutet, dass Server zwischen zwei Ansätzen keine Informationen über ihre Clients speichern. Alle Parameter müssen daher bei jeder Anfrage vom Client an den Server gesendet werden. Dies hat den großen Vorteil, dass nach einem Absturz oder Ausfall des Servers keine speziellen Prozeduren gestartet werden müssen. Da jede Anfrage an den Server eine Sequenznummer hat, kann der Server feststellen, ob die Anfrage zweimal gesendet wurde oder ob eine Anfrage fehlte. Diese Liste dient nur zur Orientierung und ist für den Betrieb des Clients oder Servers nicht unbedingt erforderlich.
Ein Nachteil der vorherigen NFS-Versionen war, dass sie die Parallelitätsprüfung nicht unterstützten. Wenn 2 Benutzer gleichzeitig in dieselbe externe Datei schreiben, können ihre Daten durcheinander geraten oder verloren gehen. Dienste außerhalb von NFS müssen sicherstellen, dass jeweils nur ein Benutzer in dieselbe Remote-Datei schreiben kann.
Dieses Problem wurde erst mit der 4. Version von NFS gelöst. Zustand wurde dieser Version hinzugefügt. State bedeutet, dass der nfs-Client dem Server mitteilt, was er mit der Datei tun möchte; Sperren, Lesen, Schreiben, Löschen usw. Der nfs-v4-Server kann mit Statusinformationen von anderen Clients antworten und so das zentrale Dateisystem konsistenter halten. Dies ermöglicht die Verwendung von Dateien im lokalen Cache, bis der nfs-v4-Server meldet, dass ein anderer Client diese Datei anfordert und dass sie aus dem lokalen Cache auf den Server geschrieben werden muss. Dadurch muss nicht viel Netzwerkverkehr stattfinden, bis der Benutzer die Datei schließt oder ein anderer Benutzer die Datei ebenfalls verwenden möchte.
Externe Links
- (und) RFC 3530 - NFS Version 4 Protokollspezifikation
- (und) RFC 1813 - NFS Version 3 Protokollspezifikation
- (und) RFC 1094 - NFS Version 2 Protokollspezifikation
- (und) RFC 2000
Verweise
- J Wiley & Sons (2004) Betriebssystemkonzepte mit Java, New York. pp. 411–417