8.2.4

Werbung
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
Herunterladen