N AMENSR ÄUME 4. N AMEN ➜ Namen werden in einem VS in sog. Namensräumen angeordnet ➜ Man stellt einen Namensraum oft als Graph dar: ➜ Namen werden in verteilten Systemen benutzt, um: • Blattknoten, z. B. für Datei • Verzeichnisknoten mit einer Verzeichnistabelle • Wurzelknoten, i. d. R. ein solcher • . . . Ressourcen gemeinsam zu nutzen • . . . Einheiten eindeutig zu identifizieren • . . . auf bestimmte Positionen zu verweisen ➜ Pfadname,z. B.: n0:<home,steen,mbox> = /home/steen/mbox • . . . u. a. Slide 1 Slide 3 ➜ Die Implementierung der Namenserzeugung, -Verwaltung und -Benutzung soll verteilt über mehrere Maschinen erfolgen ➜ Wir betrachten folgende drei Aspekte: • Aufbau, Benutzung und Implementierung benutzerfreundlicher Namenssysteme • Namensgebung und -Verwaltung für mobile Einheiten • Verteilte Speicherbereinigung (garbage collection) B EISPIEL : DATEIEN D REI N AMENSTYPEN ➜ Name – eine Zeichenkette, um auf eine Einheit (z. B. Computer, Drucker, Datei, Mailbox, Webseite, etc.) zu verweisen ➜ Zugriff auf Einheiten: über die Namen ihrer Zugangspunkte (Adressen), z. B. IP-Adresse eines Webservers ➜ Einheiten können ihre Zugangspunkte wechseln, deshalb benutzt man auch andere Namenstypen als Adressen Slide 2 IN U NIX ➜ Namensgraph: Wurzel, Verzeichnisknoten, Blattknoten f. Dateien ➜ Graph-Implementierung – ein Teil des Dateisystems, z.B. in Unix: Slide 4 ➜ Eine echte ID hat Eigenschaften: • eine ID verweist auf höchstens eine Einheit • 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 • eine ID verweist immer auf dieselbe Einheit ➜ Beachte: Adressen und IDs sind nur von Rechnern lesbar ➜ Benutzerfreundliche Namen werden als Strings dargestellt ➜ Beachte: Drei wichtigste Namenstypen sind fett geschrieben 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: Auswahl des ersten Knotens in einem Namensraum, wo die Namensauflösung beginnen soll ➜ 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 ➜ 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 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, 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 Server 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 globale 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 Verwaltung Geographische Skalierung des Netzwerks Weltweit Unternehmen 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 ➜ Jeder Client hat Zugriff auf einen lokalen Namensauflöser ➜ Beispiel: Auflösen von root:<nl,vu,cs,ftp,pub,globe,index.txt> in Abb. 4.6 Slide 14 Slide 16 ➜ Pfadname als URL: ftp://ftp.cs.vu.nl/pub/globe/index.txt ➜ Zwei Möglichkeiten, die Namensauflösung zu implementieren: 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. 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 Server für Knoten Slide 18 Soll auflösen Nachschlagen Übergibt an untergeordneten Knoten Empfängt und stellt in den Cache ➜ Der Internet Domain Name Service (DNS) ist einer der größten verteilten Namensdienste Gibt an den Anforderer zurück ➜ Aufgaben: Suche nach Host-Adressen und Mail-Servern ➜ DNS-Namensraum: Baum mit einem Wurzel, Groß/Kleinschreibung bei Labels nicht berücksichtigt, die Wurzel durch einen Punkt (.) dargestellt 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 BY S ERGEI G ORLATCH · U NI M ÜNSTER · V ERTEILTE S YSTEME · VORLESUNG 4 ➜ DNS verwaltet eine inverse Abbildung von IP-Adressen auf Host-Namen: • 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 kanonische Name des Hosts: soling.cs.vu.nl gefunden wird Tabelle 2: Rekursive Namensauflösung für <nl, vu, cs, ftp> c 2006 ➜ Domain: ein Unterbaum; Domainname: Pfadname zur Wurzel des Unterbaums 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 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 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 wird oft 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 ➜ Wird eine Einheit von A nach B verschoben, hinterlässt sie eine Referenz (forwarding pointer ) auf ihre neue Position Slide 26 ➜ In verteilten Systemen ist Kommunikation unzuverlässig, z. B. kann eine Bestätigung verloren gehen: ➜ 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 (s. Abb.) ➜ Lösung: beim Objekt-Löschen wird sein Skeleton angefragt; d.h. 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