vs81 8 Verteilte Betriebssysteme (distributed operating systems)
vs82 Verteilungsabstraktion kann auf verschiedenen Ebenen der funktionalen Hierarchie praktiziert werden: Middleware 99 Verteilte Programmiersprache7.1 , Verteilte Verzeichnisdienste Verteiltes Dateisystem Verteilter Virtueller Speicher (DSM) , (Betriebssystem)
vs83 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
vs 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 !
vs 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)
vs 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/...,
vs87 virtuelle „Netzwurzel“ /doc /archive /sun /station1... sys usr bin dev usr Benutzersicht: netzweites Dateisystem, das Einzelsysteme zusammenfasst: Dateibenennung z.B.wie üblich /usr/kpl/tst oder aber /../doc/man/pwd !
vs88 Implementierung : Fernaufrufe an ein entferntes Modul „Unix“ user code Newcastle Connection Unix Server Spawner
9 Newcastle ConnectionUnix Server Vertreter-Modul für Systemschnittstelle Treiber-Modul für Systemschnittstelle RPC Transport RPC Transport Systemschnittstelle Netztreiber Unix Netz Benutzerprogramm 8 KB !
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 bin usr etc..... hd0 dvd... kpl x y z
vs811 Zur Erinnerung -lokales Einhängen des Dateisystems eines beweglichen Datenträgers: mount /dev/dd /etc / / dev bin usr etc bla etc... hd0 dvd... kpl x y z sun Mounting Remote Mounting: entfernten Unterbaum einhängen: mount sun2:/bla /etc mount point
12 Information über die eingehängten Dateisysteme mit Befehl df > df / (/dev/dsk/c0t0d0s0 ): blocks files /usr (/dev/dsk/c0t0d0s6 ): blocks files /proc (/proc ): 0 blocks files /dev/fd (fd ): 0 blocks 0 files /etc/mnttab (mnttab ): 0 blocks 0 files /var/run (swap ): blocks files /tmp (swap ): blocks files /cache (/dev/dsk/c0t0d0s4 ): blocks files /export (/dev/dsk/c0t0d0s3 ): blocks files /opt (/dev/dsk/c0t0d0s5 ): blocks files /export/local-1 (/dev/dsk/c0t1d0s3 ): blocks files /export/home (/dev/dsk/c0t2d0s7 ): blocks files /home/bwana (bwana:/export/home): blocks files /home/jefe (/export/home ): blocks files /import/mail (leibniz:/export/mail): blocks files /home/fubinf (fubinf:/export/home): blocks files /home/elfe (elfe:/export/home ): blocks files mount pointLaufwerk/Partition bzw. entfernter/lokaler Teilbaum
vs813 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
Implementierung: Virtual File System (VFS), NFS Server Klient: NFS-BenutzerAnbieter: NFS Server SystemschnittstelleVFS Unix FS NFS ClientNFSUnix FSRPCUDP NFS Server nfsd mountd
vs815 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,.....
vs 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
vs AFS = „Andrew File System“ (Carnegie-Mellon Univ., Pittsburgh, ) 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.
vs818 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“.
vs819 Implementierung: Unix (modifiziert)Unix Klient Anbieter Benutzer- programm Venus Vice