4. namen - Parallele und verteilte Systeme

Werbung
H IERARCHISCHE N AMENSR ÄUME
4. N AMEN
➜ Namen werden in einem VS in sog. Namensräumen angeordnet
➜ Man stellt einen Namensraum oft als Graph dar:
• Blattknoten für benannte Entitäten, z. B. eine Datei, enthält
ihre Adresse oder Zustand
• Verzeichnisknoten mit einer Verzeichnistabelle: ein Paar
pro Kante: (Knotenbezeichner : Kantenbeschriftung)
• Wurzelknoten, i. d. R. einer pro Namensraum
➜ Namen werden in verteilten Systemen benutzt, um:
• . . . Ressourcen gemeinsam zu nutzen
• . . . Einheiten eindeutig zu identifizieren
• . . . auf bestimmte Positionen zu verweisen
• . . . u. a.
Slide 1
Slide 3
➜ Die Implementierung der Namenserzeugung, -Verwaltung und
-Benutzung soll verteilt über mehrere Maschinen erfolgen
➜ Pfadname,z. B.: n0:<home,steen,mbox> = /home/steen/mbox
➜ Wir betrachten folgende drei Aspekte:
• Aufbau, Benutzung und Implementierung
benutzerfreundlicher Namenssysteme
• Namensgebung und -Verwaltung für mobile Einheiten
• Verteilte Speicherbereinigung (garbage collection)
D REI N AMENSTYPEN
B EISPIEL : DATEIEN
➜ Name – eine Zeichenkette, benutzt um auf eine Einheit (z. B.
Computer, Drucker, Datei, Mailbox, Webseite, etc.) zu verweisen
➜ Es gibt drei wichtigste Namenstypen, die im Folgenden fett
geschrieben sind
➜ Zugriff auf Einheiten: über die Namen ihrer Zugangspunkte
(Adressen), z. B. IP-Adresse eines Webservers
Slide 2
IN
U NIX
➜ Namensgraph: Wurzel, Verzeichnisknoten, Blattknoten f. Dateien
➜ Graph-Implementierung – ein Teil des Dateisystems, z.B. in Unix:
➜ Einheiten können ihre Zugangspunkte wechseln, deshalb
benutzt man auch andere als Adressen Namenstypen
Slide 4
➜ Eine echte ID (identifier) hat folgende Eigenschaften:
• sie verweist auf höchstens eine Einheit, immer auf dieselbe
• jede Einheit wird höchstens durch eine ID angesprochen
• Fortlaufende Block-Folge auf einer logischen Festplatte
• Boot-Block: Wird beim Booten automatisch in den
Hauptspeicher geladen, zum Laden des BS
• Superblock: Enthält Informationen über das gesamte
Dateisystem (Größe, freie Blöcke und Inodes, etc.)
• Inode: Information über die zugeordnete Datei; Inode mit
Index 0 entspricht Wurzelverzeichnis (vgl. VL Betriebssysteme)
• Der Inode-Index entspricht der Knoten-ID im Namensgraph
➜ Beachte: Adressen und IDs sind oft nur von Rechnern lesbar
(Bitstrings), deshalb wird auch der dritte Typ verwendet:
➜ Benutzerfreundliche Namen werden als Zeichenstrings
dargestellt (z.B. Dateinamen in Unix - bis 255 Zeichen lang)
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
1
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
2
V ERKN ÜPFUNGEN (mounting)
➜ Motivation: Verschiedene Namensräume miteinander
transparent zu kombinieren
➜ Verknüpfung: Ein Verzeichnisknoten (Verknüpfungspunkt)
speichert die ID eines Verzeichnisknotens (verknüpfender Punkt)
aus einem anderen Namensraum, i. d. R. sein Wurzelverzeichnis
➜ Sind die Namensräume über mehrere Maschinen verteilt, muss
man zum Verknüpfen folgende Namen kennen bzw. auflösen:
N AMENSAUFL ÖSUNG
➜ Namensauflösung = Nachschlagen eines Namens für einen
vorgegebenen Pfad
Slide 5
➜ Die Namensauflösung funktioniert durch die Suche der
Knoten-ID in jeweiliger Verzeichnistabelle und den Übergang
zum gefundenen Knoten im Namensgraph
Slide 7
➜ Schlussmechanismus (closure mechanism):
• Auswahl des ersten Knotens in einem Namensraum, wo die
Namensauflösung beginnen soll
➜ Beispiel: Auf Sun-Rechnern unter NFS (Network File System) wird
Verzeichnisknoten /remote/vu verwendet, um die URL zu speichern: nfs://flits.cs.vu.nl/home/steen. Dann kann der
Client auf die Datei /home/steen auf dem Server flits.cs.vu.nl
mit dem NFS-Protokoll zugreifen, s. Details nächste Folie
• Unix-Beispiel: Der Inode des Wurzelverzeichnisses ist der erste
Inode auf der logischen Festplatte des Dateisystems
A LIASE
UND
• Name eines Zugriffsprotokolls für Kommunikation mit den
anderen Maschinen
• Name des Servers (der anderen Maschine)
• Name des verknüpfenden Punktes im fremden Namensraum
L INKS
B EISPIEL : E NTFERNTER Z UGRIFF
➜ Alias: Ein anderer Name für dieselbe Einheit.
Grundsätzlich zwei Implementierungsmöglichkeiten:
➜ Der Name aus der vorigen Folie wird so aufgelöst:
• nfs – in eine Implementierung des NFS-Protokolls
• Servername – mittels DNS (s. später) in die Maschinenadresse
• /home/steen – durch den fremden Server
• Harte Links: mehrere absolute Pfadnamen auf denselben
Knoten des Namensgraphen, wie z. B. /home/steen/keys
und /keys als Links zu n5 in Abb. 4.1
• Symbolische Links: Im Blattknoten absoluten Pfadnamen
speichern, z. B. ist /home/steen/keys ein symb. Link auf n5:
Slide 6
Slide 8
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
3
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
4
B EISPIEL : S CHICHTEN
IN EINEM
DNS-N AMENSRAUM
➜ Der Name /remote/vu/mbox wird beginnend mit dem Wurzelverzeichnis auf dem Client aufgelöst, bis zu Knoten /remote/vu
➜ Die URL nfs://flits.cs.vu.nl/home/steen zurückgegeben
➜ Client kontaktiert den Dateiserver flits.cs.vu.nl mithilfe des
NFS-Protokolls, und greift anschließend auf /home/steen zu.
Slide 9
➜ Die Namensauflösung kann jetzt fortgesetzt werden, indem die
Datei mbox gelesen wird
Slide 11
➜ Der Client kann nun so arbeiten:
cd /remote/vu
ls -l
und die Dateien im entfernten Verzeichnis lokal auflisten!
➜ Wichtig: Der entfernte Zugriff passiert transparent für den
Benutzer, allerdings evtl. mit einem Leistungsabfall, wegen der
Kommunikation übers Netzwerk
I MPLEMENTIERUNG
EINES
A NFORDERUNGEN
N AMENSRAUMS
• Globale Schicht: Wurzelknoten und obere Verzeichnisknoten
(Kindknoten von Wurzel), die sehr selten geändert werden
• niedrigste – für die Verwaltungsschicht
➜ Leistung:
• Verwaltungsschicht: Ändert sich regelmäßig,
z. B.: Hosts in LAN, Programmdateien, benutzereigene
Verzeichnisse/Dateien
• globale Schicht - keine schnellen Server notwendig, aber
Durchsatz u. U. wichtig
• administrative Schicht - muss schnell sein,
➜ Zonen: Nicht überlappende Teile des Namensraums, die durch
separate Namensserver implementiert sind
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
S CHICHT
• mittel – für die administrative Schicht
Slide 12
• Administrative Schicht: Verzeichnisknoten innerhalb einer
Organisation: sind stabil, aber weniger als die globalen
BY
ABH ÄNGIG VON
• höchste – für die globale Schicht; wird erreicht durch
Server-Replikation und Client-seitiges Caching, weil
Aktualisierungen nicht sofort sichtbar sein müssen
➜ Verteilter Namensraum wird in drei logische Schichten unterteilt:
c
2006
S ERVER
➜ Verfügbarkeit:
➜ Ein Namensraum wird von Namensservern implementiert, die
über mehrere Maschinen verteilt werden können
Slide 10
AN
• Verwaltungsschicht - noch schneller, da der Benutzer
die Änderungen unmittelbar sehen will
5
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
6
V ERGLEICH
DER I MPLEMENTIERBARKEIT
I TERATIVE N AMENSAUFL ÖSUNG : F OR TSETZUNG
➜ Am schwierigsten – globale und administrative Schicht, wegen
Replikation und Caching, die über WAN arbeiten
➜ Iterativ: Der Client-Namensauflöser übergibt diesem Server den
restlichen Pfadnamen . . . usw . . .
➜ Der FTP-Server löst pub/globe/index.txt auf und überträgt
die angeforderte Datei – in unserem Bsp. mithilfe von FTP
➜ Dadurch u. U. starke Kommunikationsverzögerungen
Slide 13
Element
Global
Administrativ
Geographische Skalierung des Netzwerks
Weltweit
Unternehmen
Verwaltung
Abteilung
Gesamtzahl der Knoten
Wenige
Viele
Unzählige
Antwortzeiten beim Nachschlagen
Sekunden
Millisekunden
Unmittelbar
Aktualisierungsweitergabe
Langsam
Unmittelbar
Unmittelbar
Anzahl der Repliken
Viele
Keine oder wenige
Keine
Client-seitiges Caching?
Ja
Ja
Manchmal
Slide 15
Tabelle 1: Ein Vergleich zwischen Nameservern für die Implementierung von
Knoten aus einem großen Namensraum, der in eine globale, administrative
und eine Verwaltungsschicht zerlegt ist
I MPLEMENTIERUNG
DER
R EKURSIVE N AMENSAUFL ÖSUNG
N AMENSAUFL ÖSUNG
➜ Rekursiv: Statt jedes Zwischenergebnis an den Client-Namensauflöser zu schicken, wird es an den nächsten Namensserver
weitergegeben
➜ Wir betrachten große verteilte Namensräume
➜ Wir nehmen der Einfachheit halber an, dass keine Replikation
und Caching stattfinden
➜ Beispiel: Auflösen von
root:<nl,vu,cs,ftp,pub,globe,index.txt> in Abb. 4.6
Slide 14
➜ Pfadname als URL:
ftp://ftp.cs.vu.nl/pub/globe/index.txt
Slide 16
➜ Jeder Client hat Zugriff auf einen lokalen Namensauflöser, der
auf zwei Weisen implementiert werden kann: iterativ oder
rekursiv, siehe nächste Folien
➜ Beide: Namensauflöser übergibt den Pfadnamen dem WurzelNamensserver (angenommen, seine Adresse sei bekannt)
➜ Iterativ: Der Wurzel-Server löst nl auf und gibt die Adresse des
nächsten Namensservers an den Client zurück
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
7
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
8
R EKURSIV : VOR TEILE
UND
➜ Vorteil 2: Rekursiv ist sparsamer in der Kommunikation als iterativ
N ACHTEILE
➜ Größter Nachteil: hohe Leistungsanforderungen an einzelne
Namensserver (vollständige Auflösung eines Namenspfades).
Deswegen wird in der globalen Schicht nur iterativ gearbeitet
Slide 17
➜ Vorteil 1: Effektiveres Caching von Ergebnissen (vgl. Tabelle
unten), bei nachfolgendem Nachschlagen durch andere
Clients werden Cache-Ergebnisse benutzt ⇒ schnell
Slide 19
➜ Iterativ: Caching auf den Namensauflöser des Clients
beschränkt, d. h. ein anderer Client muss das Ganze
wiederholen
➜ Aushilfe: Für eine Organisation einen lokalen, zwischengeschalteten Namensserver, gemeinsam von allen Clients benutzt
FALLSTUDIE : DNS – Domain Name Service
Slide 18
Server für
Knoten
Soll auflösen
Nachschlagen
Übergibt
an
untergeordneten
Knoten
Empfängt
und stellt in
den Cache
Gibt an den
Anforderer
zurück
cs
<ftp>
#<ftp>
-
-
#<ftp>
vu
<cs,ftp>
#<cs>
<ftp>
#<ftp>
#<cs>,
#<cs,ftp>
nl
<vu,cs,ftp>
#<vu>
<cs,ftp>
#<cs>,
#<cs,ftp>
#<vu>,
#<vu,cs>,
#<vu,cs,ftp>
Wurzel
<nl,vu,cs,ftp>
#<nl>
<vu,cs,ftp>
#<vu>,
#<vu,cs>,
#<vu,cs,ftp>
#<nl>
#<nl,vu>,
#<nl,vu,cs>,
#<nl,vu,cs,ftp>
Slide 20
• Infos sind in der Domain in-addr.arpa, verwaltet von DNS
• Z. B.: der Host www.cs.vu.nl hat die IP-Adresse 130.37.24.11
• DNS erzeugt den Knoten 11.24.37.130.in-addr.arpa, in
dem der Hostname soling.cs.vu.nl gespeichert wird
Tabelle 2: Rekursive Namensauflösung für <nl, vu, cs, ftp>
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
➜ Der Internet Domain Name Service (DNS) ist einer der größten
verteilten Namensdienste, verwaltet Infos über Millionen von
Computern weltweit
➜ Aufgaben: Suche nach Host-Adressen, Web- und Mail-Servern
➜ Zentralisierte Implementierung würde nicht skalieren!
➜ DNS-Namensraum: Baum mit einem Wurzel, Groß/Kleinschreibung bei Labels (bis 63 Zeichen lang) nicht berücksichtigt,
die Wurzel wird durch einen Punkt (.) dargestellt
➜ Domain: ein Unterbaum; Domainname: Pfadname zur Wurzel
des Unterbaums, z.B. flits.cs.vu.nl
➜ DNS verwaltet eine inverse Abbildung von IP-Adressen auf HostNamen, um den Namen aus einer Adresse nachzuschlagen:
9
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
10
DNS
VS .
V ERZEICHNISDIENSTE
M OBILIT ÄT : Z WEI
➜ Alternative zu DNS – Verzeichnisdienste:
Slide 23
• Der Inhalt dieses Knotens wird als ein Ressourcendatensatz
zurückgegeben, vgl. [Tanenbaum, van Steen]
• Anderer Ansatz: ein Verzeichnisdienst, wobei Client mithilfe
einer Beschreibung der Eigenschaften nach einer Einheit
sucht
Slide 22
UND
M OBILE E INHEITEN : A LTERNATIVER A NSATZ
S UCHE
➜ Direkte Abbildung zwischen benutzerfreundlichen Namen und
Adressen der Einheiten (wie in DNS) wird mittels IDs getrennt:
➜ Zwecks Benutzerfreundlichkeit verwalten Namenssysteme i. d. R.
eine Abbildung benutzerfreundlicher Namen auf Adressen
➜ Dabei unterscheidet man drei Schichten (s. o.): global,
administrativ, verwaltend.
➜ Motivierende Frage: Was passiert, wenn ein Server auf eine
andere physische Maschine verschoben wird?
➜ Wenn auf globaler oder administrativer Schicht und nicht sehr
weit geographisch (innerhalb einer Domain), dann ist DNS
effizient, wegen Caching und nur einem Namensserver
➜ Wenn aber z. B. ftp.cs.vu.nl auf die Maschine
ftp.cs.unisa.edu.au verschoben wird, kommen Probleme:
Slide 24
➜ Bei der Suche mithilfe eines Namensdienstes: der Dienst gibt
eine ID zurück, die lokal gespeichert werden kann
➜ Bei erneuter Suche kann man die ID lokal laden
➜ Ein Suchdienst liefert für die ID die aktuelle Adresse der Einheit
➜ Nächste Folie: effiziente Implementierung von Suchdiensten
• Der Originalname ftp.cs.vu.nl sollte möglichst nicht
geändert werden, da viele Applikationen und Benutzer
symbolische Links darauf besitzen können
• Mit anderen Worten: der Name wird als ID benutzt, d. h.
beim Ändern werden alle Links ungültig
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
➜ 2. Den Namen der neuen Maschine aufzuzeichnen, d. h.
ftp.cs.vu.nl wird ein symbolischer Link.
Bei erneuter Verschiebung wird jedes Nachschlagen einen
extra Schritt benötigen
➜ Allgemeines Problem: Nicht veränderbarer Originalname, der
auch nicht für andere Einheiten verwendet werden darf
• Ein Verzeichnisdienst ist in etwa mit den “gelben Seiten”
vergleichbar, für Details vgl. [Tanenbaum, van Steen]
M OBILE E INHEITEN : N AMENSGEBUNG
L ÖSUNGEN
➜ 1. Die Adresse der neuen Maschine in der DNS-Datenbank
cs.vu.nl aufzuzeichnen.
Bei erneuter Verschiebung, z. B. nach ftp.cs.berkeley.edu –
aufwendige Aktualisierung des DNS-Eintrages
• DNS ist ein traditioneller Namensdienst, vergleichbar mit
einem Telefonbuch: bei Übergabe eines hierarchischen
Namens wird dieser in einen Knoten im Namensgraph
aufgelöst
Slide 21
TRADITIONELLE
11
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
12
S UCHDIENSTE
MIT
B ROAD -
UND
VORW ÄR TSZEIGER -M ECHANISMUS : I MPLEMENTIERUNG
M ULTICASTING
➜ Vorwärtszeiger werden in der OO-Welt mit verteilten Objekten
implementiert als Paar (Proxy, Skeleton): beim Verschieben
hinterlässt das Objekt einen Proxy und installiert ein Skeleton,
das auf die neue Position verweist
➜ In lokalen Netzen werden effiziente Broadcasting- und
Multicasting-Funktionen unterstützt
➜ Die Suche geht dann so:
• Die ID der gesuchten Einheit wird per Broadcast an jede
Maschine gesendet
Slide 25
• Maschinen, die einen Zugangspunkt (Adresse) für die Einheit
anbieten können, senden eine Antwort mit dieser Adresse
Slide 27
Nachteile dieser Lösung:
• Broadcasting wird ineffizient wenn das Netzwerk wächst
• Es wird nicht nur Netzwerkbandbreite verbraucht, sondern
evtl. auch zu viele Hosts durch Anfragen unnötig belastet
➜ Ausweg: Multicasting, d. h. eine begrenzte Gruppe ansprechen
➜ Anderer Suchansatz: Vorwärtszeiger
V ER TEILTE S PEICHERBEREINIGUNG
➜ Speicherbereinigung: Löschen unbenutzter Einheiten
S UCHDIENSTE
MIT
➜ Methode für Einprozessorsysteme – Referenzzählung – inkrementieren beim Ref-Erzeugen, dekrementieren beim Löschen
VORW ÄR TSZEIGERN
➜ In verteilten Systemen ist Kommunikation unzuverlässig, z. B. kann
eine Bestätigung verloren gehen, was zu einer doppelten
Nachricht führt, die erkannt werden muss
➜ Wird eine Einheit von A nach B verschoben, hinterlässt sie eine
Referenz (forwarding pointer) auf ihre neue Position
Slide 26
➜ Der Client kann die aktuelle Adresse nachschlagen, indem er
der Kette der Vorwärtszeiger folgt
Slide 28
➜ Nachteile:
• Eine Kette kann sehr lang werden
• Alle Zwischenpositionen in der Kette müssen ihren Teil der
Kette verwalten
• Fehleranfälligkeit beim evtl. Ausfall eines Links
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
13
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
14
R EFERENZZ ÄHLUNG :
WEITERES
P ROBLEM
➜ Noch ein Problem bei verteilter Referenzzählung: Beim Kopieren
einer entfernten Referenz in einen anderen Prozess: das Objekt
wird evtl. früher gelöscht als neuer Besitzer sich meldet
➜ Lösung: das Objekt-Skeleton wird bei der Übergabe informiert;
beim Löschen wird das Skeleton angefragt; es wird zuverlässige
Kommunikation und drei Nachrichten pro Referenz gebraucht!
Z USAMMENFASSUNG
Was haben wir heute gelernt:
➜ Drei wichtigste Typen von Namen: Adressen, ID,
benutzerfreundliche Namen
Slide 29
Slide 31
➜ Namen sind in einem Namensraum angeordnet, dargestellt
durch einen Namensgraph
➜ Namensauflösung: wird iterativ oder rekursiv implementiert
➜ Suche nach mobilen Einheiten: durch Broadcasting bzw.
Multicasting oder mittels Vorwärtszeiger
➜ Zwei Methoden verteilter Speicherbereinigung:
Referenzzählung und Referenzlisten
R EFERENZLISTEN
➜ Alternativansatz: Statt Referenzen zu zählen, verwaltet ein
Skeleton eine Liste aller Proxies, die darauf verweisen
➜ Referenzlisten werden z. B. in Java RMI benutzt:
• Wenn ein Prozess P eine entfernte Referenz auf ein Objekt
erzeugt, sendet er seine ID an das Skeleton des Objekts, das
daraufhin P in die Refliste einträgt.
Slide 30
• Nach der Bestätigung erzeugt P in seinem Adressraum einen
Proxy für das Objekt.
• Potentielles Problem: P1 löscht seinen Proxy, bevor P2 angefordert hat, in die Referenzliste des Objekts eingetragen zu
werden. Dies kann wie in Abb. 4.30(b) gelöst werden
➜ Nachteil: Probleme mit Skalierbarkeit, wenn ein Skeleton viele
Referenzen verwalten muss
➜ Ausweg: Registrierung für eine begrenzte Zeit (Leasing); bei
bedarf muss erneuert werden
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
15
c
2006
BY
S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4
16
Herunterladen