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:
- Man muß nicht umlernen
- Investitionsschutz: Man muß sich keine neue Software kaufen
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
- eine Präsentationsschicht
- eine Anwendungsschicht
- eine Datenhaltungsschicht
(vgl. Multitier-Architektur)
Beispiele:
- IMAP4 ist ein Protokoll zwischen der Präsentations- und Anwendungsschicht.
Ein IMAP4-Client ist also sozusagen die Präsentation. Die E-Mailfolders
werden auf dem Server verwaltet.
- WWW-Browser ist ebenfalls ein populäres Beispiel. WWW-Seiten werden nur
vom Autor geschrieben und veröffentlicht.
- Nachrichtenbretter (bulletin boards) sind ein Beispiel für ein Konsistenzmodell und damit ist es eine Anwendung für DFS. RFC977 über das NNTP meint, daß dies nur eine Lösung sein könne, wenn alle Clients ein fast identisches Betriebssystem haben, was
in der Praxis nicht der Fall ist. Auch in diesem Fall ist also NNTP
eine allgemeinere, einfach zu realisierende Lösung.
- CVS verwaltet Versionen von Softwareprojekten. Der CVS-Server speichert
Zentral die Quelltexte und kümmert sich um Locking und Versionen.
Beispielsweise kann man eine alte Version auschecken während an einer
neuen gearbeitet wird.
- Präsentationsclients können als Applets via HTTP transportiert werden.
Softwareversionen werden nur einmal geschieben ...
- Dokumente werden meist auch nur einmal verfaßt, danach werden sie
nie wieder geändert. HTTP ist also zum anzeigen bestens geeignet.
- Massendaten sind in Datenbanken sehr gut aufgehoben. ODBC und JDBC
sind die Zugriffsprotokolle.
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:
- RPC/XDR Remote Procedure Call, der auf der eXternal DataRepasentaion
aufbaut. Mit einem Protokollgenerator wird dem Anwendungsprogrammierer
sehr viel Arbeit und Mühe abgenommen.
(NFS ist damit implementiert)
- CORBA ist ein Architekturschema für verteilte Anwendungen
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