8 Verteilte Betriebssysteme (distributed operating systems) vs8 1 Verteilungsabstraktion kann auf verschiedenen Ebenen der funktionalen Hierarchie praktiziert werden: Middleware 9 Verteilte Programmiersprache 7.1 , 9.1 Verteilte Verzeichnisdienste 8.3 Verteiltes Dateisystem 8.2 Verteilter Virtueller Speicher (DSM) 5.2.2 , 8.1 (Betriebssystem) vs8 2 Verteilte Betriebssysteme besorgen einheitliche Verwaltung verteilter Hardware-Ressourcen Beispiele: Tandem (Zuverlässigkeit) Amoeba (Flexibilität, Parallelität) Solaris (Flexibilität) ... Clouds, Peace, . . . . . . . (akademisch) bieten an der Systemschnittstelle Verteilungsabstraktion bzgl. Virtuellem Speicher und/oder Dateisystem vs8 3 8.1 Verteilter virtueller Speicher ( 5.2.2 ) Zur Erinnerung: Abstraktion: sehr großer Arbeitsspeicher Realisierung: realer Arbeitsspeicher fungiert als Cache für Seiten, die vom Hintergrundspeicher oder übers Netz eingelagert werden Zugriffs-, Orts- und Replikations-Abstraktion ! Statt Vertreter-Objekt nur noch Seitendeskriptor im BS ! vs8 4 8.2 Verteilte Dateisysteme (distributed/network/remote file systems) Klassifikation: Datei = fernaufrufbares Objekt mit Dateioperationen gemäß Systemschnittstelle Datei = fernaufrufbares Objekt mit blockbezogenen Lese/Schreiboperationen (Blockpufferung im lokalen System) Caching ganzer Dateien Spiegelung (2-fach-Replikation) ganzer Dateien ( Migration: unüblich) (Literatur-Empfehlung: Coulouris et al. 2001) vs8 5 8.2.1 Unix United (Univ. of Newcastle 1980) = verteiltes Unix, aber realisiert als Verbund unmodifizierter (!) Unix-Systeme mit Hilfe geänderte Bibliotheken für Dateizugriff Dateioperationen als Fernaufrufe , - mit Zugriffsabstraktion, - „ein wenig“ Ortsabstraktion, - sogar mit Zugriff auf special files /dev/... , vs8 6 Benutzersicht: netzweites Dateisystem, das Einzelsysteme zusammenfasst: virtuelle „Netzwurzel“ /doc /archive sys usr Dateibenennung z.B. /sun /station1 . . . bin dev usr wie üblich oder aber vs8 /usr/kpl/tst /../doc/man/pwd ! 7 Implementierung: Fernaufrufe an ein entferntes Modul „Unix“ user code Unix Server Newcastle Connection Unix Spawner Unix vs8 8 Benutzerprogramm Newcastle Connection Unix Server Treiber-Modul für Systemschnittstelle Vertreter-Modul für Systemschnittstelle 8 KB ! RPC RPC Transport Transport Systemschnittstelle Unix Unix Netztreiber Netztreiber Netz 9 8.2.2 Sun NFS = „Network File System“ Reines Dateisystem (ohne /dev) mit blockbezogenem Zugriff , Fernaufrufe im Systemkern implementiert Benutzersicht: netzweites Dateisystem ähnlich Unix United, aber: an beliebiger Stelle im lokalen Dateisystem wird Unterbaum eines entfernten Systems eingehängt / dev hd0 dvd ... bin usr etc kpl x y z . . . . . 10 8.2.2.1 Mounting Zur Erinnerung - lokales Einhängen des Dateisystems eines beweglichen Datenträgers: mount /dev/dd /etc Remote Mounting: entfernten Unterbaum einhängen: mount sun2:/bla /etc sun2 mount point / dev hd0 dvd ... bin usr etc kpl / bla etc . . . x y z vs8 11 Information über die eingehängten Dateisysteme mit Befehl df > df / /usr /proc /dev/fd /etc/mnttab /var/run /tmp /cache /export /opt /export/local-1 /export/home /home/bwana /home/jefe /import/mail /home/fubinf /home/elfe mount point (/dev/dsk/c0t0d0s0 ): 343482 blocks 119044 fi (/dev/dsk/c0t0d0s6 ): 328832 blocks 364948 fi (/proc ): 0 blocks 15727 fi (fd ): 0 blocks 0 fi (mnttab ): 0 blocks 0 fi (swap ): 4439968 blocks 175248 fi (swap ): 4439968 blocks 175248 fi (/dev/dsk/c0t0d0s4 ): 412918 blocks 235834 fi (/dev/dsk/c0t0d0s3 ): 580600 blocks 228987 fi (/dev/dsk/c0t0d0s5 ): 61324 blocks 23830 fi (/dev/dsk/c0t1d0s3 ): 5926932 blocks 862663 fi (/dev/dsk/c0t2d0s7 ): 2253328 blocks 1818685 fi (bwana:/export/home): 1424054 blocks 415586 fi (/export/home ): 2253328 blocks 1818685 fi (leibniz:/export/mail): 2968448 blocks 743210 (fubinf:/export/home): 9699650 blocks 1207243 f (elfe:/export/home ):13120628 blocks 1524727 fi Laufwerk/Partition bzw. entfernter/lokaler Teilbaum 12 Remote Mounting gewöhnlich beim Starten einer Station (gemäß Datei /etc/mnttab) Automounting = Remote Mounting bei Bedarf: Einem lokalen Verzeichnis sind mehrere entfernte Verzeichnisse zugeordnet – aber keines ist in den Dateibaum eingehängt. Zugriffsversuch Rundruf, ersten Anbieter einhängen, der antwortet. Anwendung: Lastausgleich und Fehlertoleranz für replizierte Programmbibliotheken vs8 13 8.2.2.2 Implementierung: Virtual File System (VFS), NFS Server Klient: NFS-Benutzer Anbieter: NFS Server mountd Systemschnittstelle NFS Server VFS Unix FS nfsd VFS NFS Client NFS RPC RPC UDP UDP Unix FS 14 NFS Server verwaltet flaches Dateisystem, liefert file handle für Datei an den NSF Client, liest und schreibt blockweise, wird über RPC mit at-least-once angesprochen, weiß nichts von „offenen/geschlossenen“ Dateien, ist zustandslos ! ist extrem stabil, garantiert nicht die Standard-Unix-Semantik: keine systematischen konsistenzerhaltenden Maßnahmen, Löschen einer Datei von A aus ist fatal, wenn in B geöffnet, entsprechend für Zugriffseinschränkung von A aus, ..... vs8 15 8.2.3 AT&T RFS = „Remote File System“ File Server kennt open, verwaltet Kanäle etc., ist also zustandsbehaftet (ähnlich wie Unix United) Vorteil: Exakte Unix-Semantik, solange Server ok Nachteil: Server-Absturz impliziert Klienten-Absturz vs8 16 8.2.4 AFS = „Andrew File System“ (Carnegie-Mellon Univ., Pittsburgh, 1985-90) für große Mengen von Klienten und Anbietern, grundsätzlich Übertragung vollständiger Dateien (file caching) , dauerhafte Speicherung (persistent caching) auf Hintergrundspeicher der Klienten, nicht geeignet für Datenbanken. vs8 17 Konsistenz mittels write-invalidate: open: beim Anbieter Kopie beschaffen, wenn noch nicht vorhanden oder obsolet; Anbieter merkt sich den Klienten. close nach Schreiben: Ersetzen der Primärkopie, ferner Invalidieren aller anderen Kopien durch Nachricht an alle einschlägigen Klienten. (In Bearbeitung befindliche Kopien merken davon nichts!) Nach Neustart eines Klienten: Anbieter werden befragt, ob lokal vorliegende Kopien eventuell obsolet sind (wegen nicht zur Kenntnis genommener Invalidierungsnachrichten) Konsistenz ist „sehr schwach“. vs8 18 Implementierung: Anbieter Klient Benutzerprogramm Vice Venus Unix (modifiziert) Unix vs8 19