Verteilte Systeme. Verteilte Systeme. 9 Verteilte Dateisysteme SS 2015

Größe: px
Ab Seite anzeigen:

Download "Verteilte Systeme. Verteilte Systeme. 9 Verteilte Dateisysteme SS 2015"

Transkript

1 Verteilte Systeme SS 2015 Universität Siegen Tel.: 0271/ , Büro: H-B 8404 Stand: 7. Juli 2015 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/13) i Verteilte Systeme SS Verteilte Dateisysteme Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) 285

2 9 Verteilte Dateisysteme... Inhalt Allgemeines Fallstudie: NFS Literatur Tanenbaum, van Steen: Kap. 10 Colouris, Dollimore, Kindberg: Kap. 8 Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) Verteilte Dateisysteme Allgemeines [Coulouris, ] Ziel: Unterstützung der gemeinsamen Nutzung von Information (Dateien) im Intranet im Internet: WWW Erlaubt Anwendungen, auf entfernte Dateien genauso zuzugreifen wie auf lokale ähnliche (z.t. sogar bessere) Leistung und Zuverlässigkeit Ermöglicht Betrieb von plattenlosen Knoten (diskless nodes) Beispiele: NFS (Standard im UNIX-Bereich) AFS (Ziel: Skalierbarkeit), CIFS (Windows), CODA, xfs,... Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) 287

3 9.1 Allgemeines... Anforderungen Transparenz: Zugriffs-, Orts-, Mobilitäts-, Leistungs- und Skalierungs-Transparenz Nebenläufige Dateiaktualisierungen (z.b. Sperren) Dateireplikation (häufig: lokales Caching) Heterogenität von Hardware und Betriebssystem Fehlertoleranz (inbesondere bei Server-Ausfall) oft: at-least-once Semantik + idempotente Operationen vorteilhaft: zustandslose Server (einfacher Neustart) Konsistenz ( 8) Sicherheit (Zugriffskontrolle, Authentifizierung, Verschlüsselung) Effizienz Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) Allgemeines... Modell-Architektur eines verteilten Dateisystems Client Computer Server Computer Anwendungs programm Anwendungs programm Verzeichnisdienst Client Modul Netz werk RPC Schnittstelle Flacher Dateidienst Aufgaben des Client-Moduls: Emulation der Dateischnittstelle des lokalen BSs ggf. Caching von Dateien bzw. Dateiabschnitten Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) 289

4 9.1 Allgemeines... Modell-Architektur eines verteilten Dateisystems... Flacher Dateidienst: bietet idempotente Zugriffsoperationen auf Dateien z.b. read, write, create, remove, getattributes, setattributes kein open / close, kein impliziter Dateizeiger Dateien werden durch UFIDs (Unique File IDs) identifiziert (lange) ganzzahlige IDs, können als Capabilities dienen Verzeichnisdienst: bildet Datei- bzw. Pfadnamen auf UFIDs ab ggf. erst Authentifizierung und Prüfung der Zugriffsrechte Dienste zum Erzeugen, Löschen und Modifizieren von Verzeichnissen Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) Verteilte Dateisysteme Fallstudie: NFS Eingeführt 1984 von Sun Offenes, BS-unabhängiges Protokoll Architektur: Client Computer Server Computer UNIX System aufrufe UNIX Kernel Anwendungs programm virtuelles Dateisystem UNIX Datei system Anderes Dateisys. Anwendungs programm NFS Client Netz werk NFS Protokoll virtuelles Dateisystem NFS Server UNIX Datei system Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) 291

5 9.2 Fallstudie: NFS... Zugriffskontrolle und Authentifizierung NFS-Server ist zustandslos (bis einschl. NFS3) UFID (Datei-Handle): i.w. nur Dateisystem-ID und I-Node keine Capability Überprüfung der Zugriffsrechte daher bei jeder Anforderung durch RPC-Protokoll Authentifizierung meist nur über Benutzer- und Gruppen-ID extrem unsicher! Weitere Möglichkeiten in NFS3: Diffie-Hellman-Schlüsselaustausch (unsicher) Kerberos NFS4: sicherer RPC (RPCSEC GSS) Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) Fallstudie: NFS... Mount-Dienst NFS-Dateisystem kann in lokalen Verzeichnisbaum eingehängt werden (mount) Server 1 Client / (root) / (root) export vmunix usr people remote mount students x staff bob jon remote mount Server 2 / (root) users nfs jim ann joe Zusammenarbeit des mount-kommandos im Client mit Mount- Dienst des NFS-Servers Mount-Dienst stellt auf Anfrage Datei-Handles der exportierten Verzeichnisse zur Verfügung (für Namensauflösung) Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) 293

6 Anmerkungen zu Folie 293: Das von einem NFS-Server A exportierte Verzeichnis kann ein Unterverzeichnis beinhalten, das dieser Server von einem anderen NFS-Server B importiert. A darf dieses Unterverzeichnis aber nicht an seine Clients weiter-exportieren. Ein Client, der das Verzeichnis von A importiert, muß das Unterverzeichnis daher ebenfalls von B importieren Fallstudie: NFS... Übersetzung von Pfadnamen Iterativ (NFS3): für jedes Verzeichnis Anfrage an NFS-Server notwendig, da Pfad Mount-Punkte überschreiten kann Ineffizienz wird durch Client-Caching gemildert Automounter Ziel: Einrichtung eines NFS-Mounts erst beim Zugriff bessere Fehlertoleranz, Lastausgleich möglich Automounter ist lokaler NFS-Server dadurch sieht er lookup()-anforderungen des Clients bei Anforderung: Einrichten des NFS-Mounts und eines symbolischen Links zum Mount-Punkt nach längerer Inaktivität: Aufheben des Mounts Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) 294

7 9.2 Fallstudie: NFS... Server-Caching Traditionelles File-Caching in UNIX: Puffer im Hauptspeicher für zuletzt verwendete Plattenblöcke Read-ahead: Folgeblöcke werden vorab in Cache geladen Delayed-write: modifizierte Blöcke erst zurückgeschrieben, wenn Platz benötigt wird; zusätzlich alle 30s durch sync Server-Caching in NFS: zwei Modi Write-through: Schreibanfragen werden im Server-Cache und sofort auch auf Festplatte ausgeführt Vorteil: kein Datenverlust bei Serverabsturz Delayed-write: modifizierte Daten bleiben im Cache, bis commit-operation ausgeführt (d.h. Datei geschlossen) wird Vorteil: bessere Leistung, falls viele Schreiboperationen Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) Fallstudie: NFS... Client-Caching NFS-Client speichert Ergebnisse von (u.a.) read / write und lookup-operationen in lokalem Cache zwischen führt zu Konsistenzproblem, da jetzt mehrere Kopien Client ist für Konsistenzerhaltung verantwortlich Aktualität des Cache-Eintrags wird bei jedem Zugriff geprüft dazu: Vergleich, ob Modifikations-Zeitstempel im Cache mit Modifikations-Zeitstempel auf Server übereinstimmt bei negativer Validierung: Cache-Eintrag wird gelöscht bei erfolgreicher Validierung: Cache-Eintrag wird eine gewisse Zeit (3-30 s) ohne weitere Prüfungen als aktuell erachtet d.h. Änderungen erst nach einigen Sekunden sichtbar Kompromiß zwischen Konsistenz und Effizienz Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) 296

8 9.2 Fallstudie: NFS... Client-Caching... Behandlung von Schreiboperationen: Dateiblock wird im Cache als dirty markiert markierte Blöcke werden asynchron an Server gesendet: beim Schließen der Datei bei sync-operation auf Client-Rechner ggf. öfter durch Block-Input/Output (Bio)-Dämonen Bio-Dämonen realisieren asynchrone Operationen für Readahead und Delayed-write zur Leistungsoptimierung NFS garantiert keine wirkliche Konsistenz der Client-Caches Betriebssysteme / verteilte Systeme Verteilte Systeme (11/13) 297