Menu Close

Verteilte Systeme (Teil 5)

Ein verteiltes System ist im Prinzip der Zusammenschluss mehrerer Rechner zur Lösung einer gemeinsamen Aufgabe. Eines der größten verteilten Systeme ist das Internet mit seinen Applikationen. Teil 5 behandelt verteilte Dateisysteme und Namensdienste.

Skript-AnfangVS_1_So2014 – Seite 1
Skript-EndeVS_6_So2014 – Seite 70

Dienste

Der Begriff Dienst beschreibt in der Informatik allgemein eine technische, autarke Einheit, die zusammenhängende Funktionalitäten zu einem Themenkomplex bündelt und über eine klar definierte Schnittstelle zur Verfügung stellt. Typische Beispiele sind hier z. B. Webservices, die Funktionalitäten für Dritte über das Inter- bzw. Intranet verfügbar machen, Netzwerkdienste, Systemdienste oder auch Telekommunikationsdienste.

Verteilte Dateisysteme

Wozu braucht man verteilte Dateisysteme?

  • Summe einzelner Systeme ist größer als ein lokales System (Kapazität)
  • Zugriff von unterschiedlichen Systemen möglich (Gemeinsame Verwendung)
  • Unterstützung plattenloser Geräte

Welche Transparenzeigenschaften sollten sie erfüllen?

TransparenzBeschreibung
ZugriffGleicher Zugriff wie bei lokalen Dateien
OrtMan muss nicht wissen, wo eine Datei sich befindet (Adresse identisch für jeden Client)
NebenläufigkeitMehrere Benutzer können gleichzeitig zugreifen (Parallele Schreibzugriffe sind problematisch)
FehlerDer Ausfall eines Systems beeinträchtigt keine anderen Systeme (Daten müssen immer verfügbar sein)
LastLast darf die Antwortzeiten nicht beeinflussen
MigrationDateiverschiebungen zwischen Servern bleiben unbemerkt (Verzeichniswechsel muss bemerkbar sein)
ReplikationClient sieht immer nur eine Version der Datei

Wie integriert sich ein verteiltes Dateisystem?

Welche Zugriffsmodelle gibt es?

  • Remote-Access
  • Upload/Download

Was ist Remote-Access?

  • Alle Zugriffe finden auf dem Server statt
  • Datei wird nicht kopiert
  • Vollständige Funktion im Server
  • Komplexe Schnittstelle
  • Ständiger Netzwerkzugriff mit kleinen Datenmengen

Was ist Upload/Download?

  • Datei wird auf den Client verschoben
  • Nach Ende der Nutzung wird Datei zurück auf den Server kopiert
  • Teile der Funktionalität auf dem Client
  • Einfache Schnittstelle
  • Viel Speicherplatz auf dem Client benötigt
  • Netzwerkzugriff nur beim Öffnen und Schließen

Was sind zustandslose Server?

  • Alle Informationen werden mit jedem Aufruf übertragen (Weniger Speicherbedarf im Server)
  • Keine Operation zum Öffnen oder Schließen von Dateien
  • Leichter zu implementieren (Fehlertoleranz und Lastverteilung)
  • Keine Probleme beim Absturz eines Clients (Keine Zustandsinformationen zum Löschen)

Was sind zustandsbehaftete Server?

  • Weniger Kommunikationsaufwand, weil weniger Informationen benötigt werden
  • Lese- und Schreibzugriffe sind effizienter (Zeiger sind schon am richtigen Platz)
  • Alle Clients und verwendete Dateien sind bekannt (ermöglicht Precaching)
  • Sperren sind einfach zu realisieren

Sind zustandslose oder zustandsbehaftete Server besser?

  • Zustandslos ist besser, wenn der die Koppelung von Client und Server gering ist und Daten nur bedingt geschrieben werden (HTTP)
  • Zustandsbehaftet ist besser, wenn viel mit Lese- und Schreiboperationen auf Dateien gearbeitet wird (FTP)

Welche Änderungs-Semantiken gibt es?

SemantikBeschreibung
UNIXÄnderungen sofort sichtbar
SitzungÄnderungen erst beim Schließen sichtbar
Unveränderbare DateienKeine Änderungen möglich
TransaktionAtomare Änderungen

Network File System (NFS)

Was ist COMPOUND4args bei NFS v4?

  • Mehrere Operationen in einem RPC-Aufruf
  • Dadurch können RPCs eingespart werden

Woher kennen wir diese Art der Verarbeitung schon?

  • Es wird beim Pipelining von idempotenten und unabhängigen HTTP-Anfragen genutzt

Welche Funktionen hat NFSv4?

  • LOOKUP – Dateiname suchen und Handle liefern
  • CREATE – Besondere Dateien erzeugen (Verzeichnisse und Links)
  • OPEN – Öffnen (und erzeugen) von normalen Dateien
  • CLOSE – Schließen
  • READ – Datei lesen
  • WRITE – Datei schreiben
  • MKDIR – Verzeichnis erzeugen
  • READDIR – Verzeichniseintrag lesen
  • REMOVE – Datei löschen

Wie läuft ein Lesezugriff im NFS ab?

  1. LOOKUP
  2. OPEN
  3. READ (Position-Lesezeiger, Anzahl zu lesender Bytes)
  4. CLOSE

Welche Vor- und Nachteile gibt es, wenn der Client die Datenmenge bestimmt?

  • Es kann zu Speicherzugriffsverletzungen kommen
  • Bei einem timeout muss ggf. alles neu gesendet werden
  • Deswegen bestimmt der Server die Datenmenge (Aber nicht mehr als der Client anfragt)

Was passiert, wenn ein Aufruf sehr lange dauert?

  • Verbindungsabbruch (timeout)
  • Client wird zu einem RPC-Server für asynchrone Benachrichtigungen (callbacks)

Ist NFS zustandslos?

  • Nein, da die locking und delegation Funktionen mit Zuständen arbeiten

Implementiert NFS das Modell remote access oder upload/download?

  • Es implementiert remote access

Wie wird NFS in ein lokales Dateisystem eingebunden?

  • Mittels mount (Virtuelles Dateisystem)
  • Als neues Laufwerk

Was passiert, wenn ein Server Dateien von einem anderen Server importiert?

  • Die Weitergabe von solchen Dateien ist nicht erlaubt
  • Die Unterverzeichnisse müssen ausdrücklich importiert werden

Wie werden Dateinamen aufgelöst?

  • Rekursiv über mehrere Server
  • Client stellt LOOKUP an Server
  • Server leitet die Anfrage an nächsten Server weiter
  • Server gibt einen Handle der Datei zurück
  • LOOKUP liefert alle Server zurück (Wechsel bei Ausfall)

Welche Probleme gibt es beim Zugriff auf Dateien?

  • Replikation (Konsistenz geht verloren)
  • Sperren
  • Synchronisation
  • Performance

Unterstützt NFS Replikation?

  • Ja, aber nur für read-only Dateisysteme
  • LOOKUP liefert alle Server mit Repliken

Welche Änderungs-Semantik implementiert NFS?

  • Sitzungssemantik

Was sind Dateisperren?

  • Lese- und Schreibsperren durch Clients beim Aufruf (READ, WRITE, BOTH)
  • Sperren einen Bereich von Byteposition plus Länge
  • Verweigerungssperren (share reservations) sperren ganze Dateien
  • Laufende Zugriffe können nicht gesperrt werden
  • LOCK – Sperrt
  • LOCKT – Testet die Sperre
  • LOCKU – Aufheben

Wie erreicht man eine „at-most-once“ Semantik bei Sperren?

  • Ist in NFSv4 durch Sequenz-IDs und lease-Zeiten implementiert

Wie funktioniert Caching bei NFS?

  • Schreiboperationen können im Cache durchgeführt werden
  • Beim Schließen werden die Änderungen synchronisiert
  • Beim Öffnen wird der Cache immer neu eingelesen

Wie funktioniert die Delegierung von Dateien

Wie funktioniert Sicherheit in NFS?

  • Aufsatz auf RPCSEC_GSS, Framework für unterschiedliche Sicherheitsmechanismen (wie Kerberos)

Welche Benutzer gibt es in NFS?

Andrew File System (AFS)

Welche Ziele bzw. Annahmen werden mit AFS verfolgt?

  • Skalierbarkeit
  • Performanz
  • Dateisystem für Universitäten
  • Hauptsächlich READ-Operationen
  • Sequentieller Zugriff (Anfügen)
  • Dateizugriff von einem User
  • Kleine Dateien
  • Dateizugriffe über lange Zeit verteilt (Lokalitätsprinzip)

Was ist whole file sharing?

  • Dateien werden komplett (bzw. 64 KB Blöcke) übermittelt

Was ist whole file caching?

  • Lokale Kopien beim Client
  • Synchronisierung nach Schließen
  • Kopie wird aufgehoben (Cache)

Wie ist AFS aufgebaut?

  • Venus ist der Client
  • Vice ist der Server
  • Venus fängt Remote-Zugriffe ab
  • Basiert auf Sockets und RPCs
  • Verwendet UDP

Wie läuft ein Aufruf ab?

Was passiert, wenn eine Datei beim Öffnen bereits von einem anderen Prozess geöffnet wurde?

  • Inkonsistenzen durch WRITE

Was ist die callback promise?

  • Vice informiert alle betroffenen Clients über schreibenden Zugriff auf Datei (Überschreiben dennoch möglich)

Warum bietet AFS keine garantierte Konsistenz?

  • Kleiner Overhead für mehr Performanz
  • Anwendungen sollen sich darum kümmern
  • Mehrfache Benutzung ohnehin selten (Annahme)

In welchen Szenarien werden Dateien häufig gemeinsam benutzt?

  • Unternehmen
  • Datenbanken
  • Cloud-Dienste

Wie funktioniert Sicherheit in AFS?

  • Kerberos-Authentifizierung
  • Verschlüsselung (weil DES ist obsolet) ist dem User überlassen

Google File System (GFS)

Welche Ziele bzw. Annahmen werden von GFS verfolgt?

  • Fehlertoleranz (Ausfälle sind normal)
  • Skalierbarkeit
  • Heterogene Systeme (HW und SW)
  • Viele verteilte große Dateien
  • Sequentieller Zugriff (Anfügen)
  • Bandbreite wichtiger als Latenz
  • Kein Caching (Größe und sequentielle Zugriffe)

Welches Verfahren benötigt so etwas?

  • Map reduce

Welche Befehle beherrscht GFS zusätzlich?

  • snapshot (Kopie)
  • record append (Anfügen, atomar mit Nebenläufigkeit)

Wie ist GFS aufgebaut?

  • Variante der Master/Slave-Architektur
  • Quorom Algorithmus (QW=3, QR=1)
  • 1 Master-Server
  • Master verwaltet die chunk-Server (Heartbeat)
  • Viele chunk-Server (hier liegen die Repliken)
  • Master pollt alle Server beim Booten
  • Master bestimmt einen Server als primary replica
  • Primary replica verwaltet alle Schreibzugriffe für bestimmte Repliken

Was sind Chunks?

  • Dateien werden in 64 MB Blöcke aufgeteilt
  • 264 Bit Handle pro Chunk
  • 3 Kopien jedes Chunks

Warum wird nicht versucht eine konsistente Sicht im Master zu halten?

  • Master kennt genaue Situation der chunk-Server nicht

Wie läuft ein Schreibzugriff ab?

  1. Client fragt beim Server an
  2. Master liefert primary replica des chunks
  3. Client schickt Update an alle Repliken
  4. Client schickt Schreiboperation an primary replica
  5. Primary replica koordiniert den Schreibzugriff (2PC)

Wie wird Konsistenz sichergestellt?

  • Namensänderungen atomar vom Master
  • Daten mittels at-least-once in unbestimmter Reihenfolge angefügt

Wann können Inkonsistenzen auftreten?

  • Bei Fehlern oder Nachrichtenverlust

Was ist das Operation Log?

  • Alle Operationen sind hier gelagert
  • Master schreibt das Log
  • Log auf externen Systemen gesichert
  • Master führt nach Crash alle offenen Operationen nochmal aus at-least-once)
  • Regelmäßige Checkpoints

Wie wird bei GFS repliziert?

  • Replikation des operation logs und der Checkpoints auf mehrere Server
  • Replikation der Daten mittels chunk replication
  • Replikation des Masters mittels shadow masters (Lesezugriff auf operation log)

Namendienste

Wozu braucht man Namendienste?

  • Einfache Namen anstelle von kryptischer Adressen
  • Die Adresse bildet den Zugriffspunkt zu einer Entität
  • Hinter einem Namen stehen Entitäten von Dateien, Objekten, Funktionen, Rechnern oder Ressourcen

Welche Funktionen bietet ein Namensdienst?

  • Binden und Speichern eines Namens an Adressen (IP und MAC) oder Attribute (Username und PW)
  • Auflösen und Liefern der Adressen oder Attribute (resolution)

Welche Namensdienste gibt es?

  • DNS
  • LDAP
  • VoIP
  • Dateisysteme
  • Java RMI und Corba (Objekte haben Namen)
  • MPI (Rechenknoten haben IDs)
  • GFS (Masterknoten lokalisiert Chunks)

Welche Anforderungen werden an einen Namensdienst gestellt?

  • Zuverlässigkeit (DNS)
  • Nebenläufigkeitstransparenz (Parallel Lesen und Schreiben)
  • Fehlertransparenz (für Zuverlässigkeit)
  • Skalierbarkeit (für Geschwindigkeit)
  • Sicherheit (siehe Schutzziele)
  • Konsistenz (siehe Nebenläufigkeitstransparenz)

Welche Anforderungen gelten für welche Schicht?

Wie läuft iterative Namensauflösung ab?

  • Zustandslose Server

Wie läuft rekursive Namensauflösung ab?

  • Caching und Geschwindigkeit

Wie läuft hybride Namensauflösung ab?

  • Server übernimmt iterative Auflösung anstelle des Clients

Domain Name System (DNS)

Was ist DNS?

  • Hierarchischer Namensdienst
  • 13 Wurzelzonen (je 1 primärer Server und mehrere synchronisierte Sekundärserver)
  • Verwendet meist UDP, aber auch TCP möglich (je Port 53)
  • Lokaler DNS Cache (hosts) und Resolver im Client
  • Client sollte min. 2 DNS-Server kennen
  • Iterative und rekursive Auflösung möglich (Client wählt aus)
  • Anfragen sind bündelbar und besitzen eine TTL
  • Filtern von Anfragen mittels White- und Blacklist möglich

Wie sind Nachrichten aufgebaut?

  • Query und Reply-Nachrichten (identisches Format)
  • Flags mit Parametern

Warum kann ein DNS-Server rekursive Aufrufe verweigern?

  • Bei diesem Verfahren nimmt der DNS-Server Anfragen entgegen und bearbeitet sie stellvertretend weiter
  • Angreifer können dies ausnutzen, indem sie eine große Menge an Anfragen an den Server stellen
  • Dadurch wird der DNS-Dienst legitimen Anfragen gegenüber verweigert

Wie funktioniert DNS?

Was ist DNSSEC?

  • Namensauflösungen werden durch Signaturen authentifiziert
  • Dadurch können keine falschen Adressen untergeschoben werden

Lightweight Directory Access Protocol (LDAP)

Was ist LDAP?

  • Verzeichnisdienst für beliebige Daten und Attribute
  • Speicherung von Username und Passwort
  • Passwort wird als Hash gespeichert

Was ist der Directory Information Tree (DIT)?

  • Objekte sind eindeutige Knoten durch Relative Distinguished Name (RDN)
  • Alle RDNs von Objekt bis Wurzel sind der Distinguished Name (DN)

Welche Operationen kennt LDAP?

  • bind – Authentifizierung
  • unbind – Beenden einer Sitzung
  • search – Suche nach Einträgen
  • modify – Änderung eines bestehende Eintrags
  • add – Hinzufügen eines Eintrags
  • delete – Löschung eines Eintrags

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.