Vom Sinn und Unsinn von Dateiservern

Ein wichtiges Ziel von Betriebssystemen verteilter Systeme ist es, dem Nutzer und dem Anwendungsprogrammierer ein herkömliches Monoprozessorsystem vorzugaukeln.
Dies hat folgene Ziele: Das Nadel- im Heuhaufenbeispiel zeigt, daß es nicht in allen fällen unbedingt sinnvoll ist.

Manchmal müßte ein riesiger Aufwand getrieben werden, der nicht sinnvoll ist: In der Dokumentation von den Berkley-DB-Routinen wird darauf hingewiesen, daß Memory-Mapped-Files (Eine Datei wird als Segment in den Adressraum eines Prozeßes eingebunden, das lesen oder schreiben erfolgt durch gewöhnliche Speicherzugriffsoperationen und nicht mehr durch expizite read/Write-Systemaufrufe) ist z.B über NFS nicht möglich.
Dazu müßte ein virtuell gemeinsamer verteilter Speicher implementiert werden, was sehr aufwendig ist.
Andererseits muß aus Konsistenzgründen bei konkurrierendem Zugriff mehrer Prozeße ohnehin koordiniert werden.

Ein weiteres Problem taucht auf, wenn man z.B. mehrere E-Mail Clients durcheinander verwendet. Manche (elm und kmail) können z.B. die selben Folders verwenden. Löscht oder verschiebt man aber E-Mails, so stellt man fest, daß die Clients diese Information verschieden darstellen

Beim Cyrus-Mail-projekt der CMU wird darauf hingewiesen, daß ein Client eines Dateiververprotokolls nicht trivial auf allen möglichen Betriebssystemarchitekturen (MS-Windows, Apple-MacOS, diverse UNIXe, ...) nichttrivial ist und auchaus wirtschaftlichen und rechtliche Gründe dagegensprechen.

Die Anwendungen wissen genau ihre Anforderungen, und deswegen kann ein dedizierter Server genau darauf eingehen.
Die modernen Softwarearchitekuren haben

(vgl. Multitier-Architektur)

Beispiele:

Die obigen Beispiele verwenden z.B. Socket-Verbindungen z.B über TCP/IP. Das Protokoll muß jedesmal mühsam spezifiziert und implementiert werden. Abhilfe schafft oft: Dem Endanwender ist es gleichgültig, was nun passiert, wenn er/sie einen Button auf der GUI drückt.

Eine weitere Alternative zu Dateiservern sind Terminalelmulationen und X-Clients, denn ein leistungsfähliger Server ist meist billiger wie viele leistungsfähige Clients.

Weitere Links

Use of NFS Considered Harmful 2000
argumentiert auch

Fazit

Die Überlegungen zeigen, daß Dateiserver wohl oft nicht die beste Lösung sind und daher wohl langsam verdrängt werden.

Man sollte untersuchen, welche Informationen welche Nutzer im Dateisystem speichert. Es werden wohl Notizen sein, die nicht in Anwendungsprogrammen verarbeitet werden.

Ein wesentlicher Vorteil der Dateiserversysteme ist die zentrale Datenhaltung zur Sicherung, sowie die Ortstransparenz der Daten


Rudolf Weber