Skip to main content.

Navigation:

Aufgabe 4:

Lernziel

Aufgabenbeschreibung

Der bisher implementierte Client soll im Rahmen der vierten Aufgabe verteilt werden. Zu diesem Zweck soll das bisher verwendete ext2-Dateisystem (siehe Aufgabe 2) auf ein SNFS umgestellt werden. Für diese Umstellung soll die Kommunikationsschnittstelle sowie der SNFS-Server implementiert werden.

Wie NFS besteht auch SNFS aus zwei Hauptteilen: einem Server und einem oder mehreren Clienten. Der Client greift über ein Netzwerk auf Daten (Dateien, Verzeichnisse) zu, die auf dem Server gespeichert sind. Der Zugriff auf den Server erfolgt über SUN-RPCs (siehe Aufgabe 3), die mit Hilfe des UDP-Protokolls verschickt werden. Das SNFS-Protokoll ist zustandsfrei, d.h. es werden keinerlei Zustandsinformationen der Clienten gepeichert und es besteht auch keine ständige direkte Verbindung zwischen Client und Server. Ein Client wiederholt eine Anfrage an den Server so lange, bis der Server antwortet. SNFS unterstützt dabei die folgenden Operationen:

Im Gegensatz zu NFS stellt ein SNFS-Server nur die Daten eines Dateisystem-Images zur Verfügung. Die Auswahl des Servers beschränkt damit auf ein definiertes Dateisystem. Es werden auch keine weiteren Daemons (zum Mounten, usw.) benötigt, so dass die vom Server zur Verfügung gestellten Daten direkt abgerufen werden können.

Implementierungshinweise

Die Umsetzung der Aufgabe gliedert sich in zwei Teile: die Kommunikationsschnittstelle und der Server.
Teil A
Der erste Teil der Aufgabe besteht aus der Umsetzung der Kommunikationsschnittstelle. Die Vorgabe enthält dazu eine XDR-Beschreibung mit deren Hilfe ihr die Kommunikationsschnittstelle generieren könnt. Die so generierten Datentypen und Methoden müssen dann nur noch an entsprechender Stelle in den Client integriert werden. Zum Testen der Kommunikationsschnittstelle kann der Server vorerst so implementiert werden, dass er für jeden Aufruf Standardwerte zurückliefert.

Hinweis: Eine Beispielbeschreibung wie ein SUN-RPC basiertes Client/Servers implementiert werden kann, könnt ihr der folgenden Beschreibung entnehmen.
Weitere Infos: rpcgen(1)
Teil B
Nachdem ihr die Kommunikationsschnittstelle für den SNFS in den Clienten integriert habt, solltet ihr das von euch in Aufgabe 2 umgesetzte Dateisystem in den Server integrieren.

Vorgabe

Die Vorgabe zu Aufgabe 4 enthält zusätzlich zu den Schnittstellen des SNFSs zum Client auch die XDR-Beschreibung der Kommunikationsschnittstelle.

Hilfestellung