Verteilte Dateisysteme 10.1 Transparenter Zugriff auf nicht-lokale Dateien

 
WEITER LESEN
10.       Verteilte Dateisysteme
               10.1 Transparenter Zugriff auf nicht-lokale Dateien
• Beispiel: Windows Dateifreigabe:
      - Client für Microsoft Netzwerke:
          o Remote Volumes werden sichtbar,
          o Rechner im Netz werden sichtbar,
          o integriert im Explorer.
      - Dateiangebot über Servermodul:
          o Zugriffstransparenz für Programme,
          o Redirector im Betriebssystem,
          o keine Namenstransparenz,
          o byteweiser Zugriff ...
      - Explizite Freigabe:
          o Zugriffsrechte definierbar,
          o Lesen, Schreiben, ...

267                                                      Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
• Im Idealfall besitzen verteilte Dateisysteme nachfolgende Eigenschaften.
• Zugriffstransparenz:
      - Zugriff auf entfernte Dateien erfolgt mit gleichen Operationen, wie Zugriff auf lokale Dateien.
      - Somit bleibt die Verteilung den Klienten verborgen.
                                                                       Open/Close
• Ortstransparenz:                                                     Read/Write
      - Es spielt keine Rolle, an welchem physikalischen
        Ort eine Datei gespeichert ist.
      - Dateien können beliebig verlagert werden
        ohne dass der Benutzer davon betroffen ist.
• Nebenläufigkeitstransparenz:
      - Keine Inkonsistenzen durch simultane Zugriffe.
      - Schreibzugriffe sind hierbei aber problematisch.
      - I.d.R. werden Sperren verwendet, wodurch die
        Nebenläufigkeitstransparenz verloren geht.
• Fehlertransparenz:
      - Es sollte sichergestellt sein, dass nach Ausfall eines Klienten
        oder Servers der Dateibetrieb wieder korrekt weiterlaufen kann.
• Leistungstransparenz:
      - Verzögerungen infolge entfernten Zugriffs sollten gering und unabh. von der akt. Last sein.

268                                                              Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.2 Kopplung von Namensräumen
• Zugriff auf Dateien mit: Servername + Dateiname Æ ortsabhängig.
• "Mounting" von entfernten Verzeichnissen unter Unix:
      - i.d.R. individuell pro Knoten Æ keine Namenstransparenz.
                               Station A                                                               Station B

                    mount
                    point

• Namens- und Ortstransparenz mithilfe einer Superroot ("\"), aufgesetzt
  über alle lokale Dateisysteme (Æ M. Weber).
269                                                         Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.3 Semantik verteilter Dateizugriffe
• One Copy Semantik (Unix):
      -   alle Änderungen werden sofort sichtbar,
      -   es existieren keine Kopien der Datei,
      -   eventuell sehr grosse Latenzzeiten,
      -   entspricht strikter Konsistenz.
• Sitzungs-Semantik:
      - Klient meldet Dateizugriff an und erhält
        Kopie,
      - Modifikationen werden erst beim Close sichtbar,
      - Versionsproblem, falls mehrere Klienten gleichzeitig Datei schreiben,
      - Lösung: letzte Version gewinnt, Abstimmungsverfahren zw. Klienten, Server mischt geeignet.
• Read-Only Semantik:
      - Idee: Datei wird einmal geschrieben und bleibt dann unveränderlich,
      - Schreibzugriffe eines Klienten erfolgen atomar u. erzeugen eine neue Datei,
      - Erleichtert die Replikation, aber die Versionsproblematik ist wieder gegeben.
• Transaktionssemantik:
      - Zugriffe auf eine Datei werden in eine oder mehrere Transaktionen gebündelt,
      - ein Transaktionsmonitor garantiert ACID Eigenschaft,
      - erfordert Verwaltungsaufwand.
270                                                           Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.4 Nutzungsprofil
• Achtung: Analyse hängt immer von der entsprechenden Umgebung ab.
• Hier für Workstationumgebungen (M. Weber).
• Mehrheit aller Dateien ist klein:
      - Die meisten Dateien sind kleiner als 10 Kilobyte.
      - Sie passen komplett in ein einzelnes Netzwerk-Paket.
      - Es ist besser gesamte Datei zum Klienten übertragen, als
        Schreib- und Leseoperationen einzeln über das Netz abzuwickeln.
• Dateien werden häufiger gelesen als modifiziert:
      - Im verteilten Dateisystem ist Caching effektiv möglich.
• Viele Dateien haben eine kurze Lebensdauer:
      - Rücktransfer von Dateien im Klientencache zum Server ist für kurzlebige Dateien unnötig.
      - Z.B. für temporäre Dateien, die bei einem Compilerlauf erzeugt wurden.
• Datei-Sharing ist selten:
      - Der zusätzliche Overhead für die Konsistenzerhaltung des Caching
        auf Klientenseite kann zugunsten der kürzeren Antwortzeiten aufgegeben werden.
• Der durchschnittliche Prozeß benutzt wenige (und kleine) Dateien:
      - Das Caching kann in den Arbeitsspeicher des Klienten verlagert werden.
271                                                           Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
• Es gibt Dateiklassen mit spezifischer Charakteristik:
      - Dateien, die ausführbare Programme speichern, werden nur gelesen, jedoch von vielen
        Klienten. Æ Sie können also einfach repliziert werden.
      - Temporäre Dateien sind sehr kurzlebig, müssen also
        gar nicht im verteilten Dateisystem eingetragen werden.
      - Es gibt private Dateien, wie Mailboxen, die häufig verändert, aber nicht
        gemeinsam benutzt werden. Æ Sie können also nahe beim Klienten gehalten werden.
      - Verteilte Dateisysteme können unterschiedliche Dateitypen mit
        unterschiedlichen Verfahren behandeln.

272                                                         Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.5 Zustandslose und zustandsbehaftete Dateiserver
• Dynamische Zustandsinformationen:
      - resultieren aus Zugriff eines Klienten auf eine Datei,
      - z.B. welche Dateien sind durch welche Klienten geöffnet,
        an welcher Stelle ist der Positionszeiger einer Datei,
        welche Sperren sind gesetzt, ...
      - Frage: Wo werden diese Zustandsinformationen verwaltet (Server oder Klient)?
• Vorteile eines zustandslosen Dateiservers:
      - Benötigt keinen Speicher für Klienteninformation.
      - Operationen zum Öffnen oder Schließen von Dateien überflüssig.
      - Fehlertoleranz einfacher realisierbar, da keine Zustandsinformation
        zwischen den (Backup-)Servern synchronisiert werden muss.
      - Beim Absturz eines Klienten entstehen für den Server keine Probleme,
        da keine verwaiste Information vorhanden ist.
• Vorteile eines zustandsbehafteten Dateiservers:
      - Nachrichten kleiner, da keine Klienteninfo. mit jedem Zugriff übertragen werden muss.
      - Schreib- und Lesezugriffe sind effizienter, da z.B. die Positionszeiger
        einer im Zugriff befindlichen Datei bereits am richtigen Platz stehen.
      - Precaching auf Server möglich, da alle Dateien bekannt sind, die sich im Zugriff befinden.
      - Dateisperren können vom Server unterstützt werden.

273                                                           Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.6 Caching und Replikation

10.6.1 Server caching:
• Pufferung nur im Hauptspeicher des Servers,
• Eliminiert nur die Disktransferzeiten,
• Aus Klientensicht nur eine Kopie,
• Klient schreibt immer "durch",
• Keine Konsistenzprobleme,
• Probl. Latenz des Netzes.

274                                        Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.6.2 Replikation von Dateien
• Zielsetzung:
      - Verteilung der Last auf mehrere Server,
      - Absicherung gegenüber Datenverlust,
      - Absicherung gegen Serverausfälle.
• Strikte Replikationskontrolle:
      - "Lock/unlock" entsprechend der Dateioperation,
      - "Invalidate" für ungültig gewordene Kopien,
      - "Update" zur sofortigen Aktualisierung,
• Schwache Replikationskontrolle:
      - Schreiboperationen auf die primäre Kopie,
      - Verzögerte Ausbreitung der Änderung,.
• Abstimmungsverfahren (Voting):
      - zwischen den Servern bzgl. verschied. Versionen.

                                                           K
                                                           Koonnssiisstteennzzpprroottookkoollll,,
                                                           R
                                                           Reepplliikkaattiioonnsskkoonnttrroollllee
275                                                        Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.6.3 Client caching
                                                                                                                    KKoonnssiisstteennzz--
• Eliminiert Plattenzugriffe und Nachrichtentransport.                                                              pprroottookkoollll
• Verschiedene Konsistenzprotokolle möglich:
      - zentrale Vergabe der Zugriffsrechte beim Server,
      - verschiedene Durchschreibestrategien:
          o sofortiges Durchschreiben auf den Server,
          o verzögertes Durchschreiben auf Server,
          o zurückschreiben beim Close der Datei,
      - eventuell Dateityp berücksichtigen.
• Unterbringung des Puffers:
      -   im Benutzeradressraum,
      -   im Betriebssystemkern,
      -   in separatem Prozess,
      -   auf Festplatte?

276                                                        Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.7 Network File System

10.7.1 Eigenschaften
• NFS = Network File System von SUN, 1985.
      - zum Export lokaler Verzeichnisse.
      - verwendet intern RPC.
      - Klienten für Unix, MacOS und Windows.
• Zugriffstransparenz:
      - Programme können Zugriffe auf lokale und entfernte Dateien in gleicher Weise durchführen.
• Ortstransparenz:
      - Dateisysteme oder Teile davon werden zum Export angeboten,
      - Klient gibt an, an welcher Stelle im lokalen Verzeichnis das
        importierte Dateisystem eingehängt wird (mount point).
      - Falls bei allen Klienten gleiche Verzeichnisstruktur
        realisiert wird ist die Ortstransparenz gegeben.
• Nebenlfg.transparenz: rudimentäre Sperrmechanismen Æ nicht gegeben.
• Fehlertransparenz: gegeben, NFS-Server (V3) sind zustandslos.
• Leistungstransparenz: hängt von der aktuellen Last ab.

277                                                          Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.7.2 Virtuelles Dateisystem in Unix
• = VFS, dient als allgemeine Schnittstelle.
      - Verdeckt verschied. lokale Dateisysteme und Zugriff auf entfernte Verzeichnisse & Dateien.
      - VFS unterhält für jede geöffnete Datei einen Eintrag (v-node) Æ enthält entweder den
        lokalen Dateideskriptor (i-node) oder einen globalen NFS-Deskriptor (r-node), ...

• Das dynamische Einhängen (und Abhängen) von importierten Verz.
  wird von einem spez. Programm, dem Automounter, durchgeführt.
278                                                           Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.7.3 NFS-Protokoll
• Protokoll (V3) zw. Klient und Server ist zustandslos
  Æ Server merkt sich nichts über Klient.
• NFS-Server bietet 15 Operationen an, die vom Client aufgerufen werden
  können, darunter:
      - lookup(dirfh, name) → fh, attr
        liefert Dateideskriptor und Dateiattribute für die Datei name aus dem
        durch dirfh spezifizierten Verzeichnis.
      - read(fh, offset, count) → data, attr
        liest bis zu count Zeichen aus Datei fh, Start bei offset
      - write(fh, offset, count, data) → attr
        schreibt count Zeichen in Datei fh, Start bei offset.
• Nicht vorgesehen sind Dateioperationen wie open, close oder lock, da
  sie der Zustandslosigkeit des NFS-Dienstes widersprechen.
• Bem: Die Zustandslosigkeit erleichtert die Fehlererholung.

279                                                            Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
Sperren
• Notwendig, um gemeinsame Nutzung (insbesondere Schreibzugriffe)
  von Dateien zu koordinieren.
• Sperren für ganze Datei oder nur Teilbereiche.
• Implementierung von Sperren in NFS Version 3:
      - eigener Dienst verwaltet gesperrte Dateien.
      - Klienten müssen über Sperrdienst zugreifen.
• Implementierung von Sperren in NFS Version 4:
      - integriert in NFS-Operationen
      - zusätzlich: Reservierungsoperationen,
• NFS V4 ist damit nicht mehr zustandslos.
      - Problem: Absturz, während Sperre gehalten wird.
      - Fehlererholung aufwendiger Æ Lösg.: Sperren mit Leases (laufen nach gewisser Zeit ab).

280                                                         Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
Caching
• Sitzungssemantik.
• Server cachen für die NFS-Klienten transparent schon
  gelesene Dateien in ihrem Speicher.
• Klienten verwenden Cache, wobei dieser nicht mit
  anderen Klienten abgeglichen wird:
      - Ist eine Datei beim Öffnen im Cache des Klienten, wird der lokale
          Zeitstempel mit dem Modifikations-Zeitstempel beim Server verglichen.
      -   Ist Kopie älter, wird sie invalidiert und erneut geladen.
      -   Jeder Cacheblock besitzt eine Uhr, die für Dateiblöcke nach 3 Sek.
          und für Verzeichnisse nach 30 Sek. ablaufen.
      -   Dann wird beim Server auf Aktualität geprüft.
      -   Beim Schreibzugriff wird der entsprechende Block im Cache als „dirty“ markiert.
      -   Markierte Blöcke werden alle 30 Sek. zum Server propagiert (sync).

281                                                            Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.7.4 Konfiguration
• Freigabe durch zentrale Konfigurationsdatei /etc/exports:
      - steuert, welche Rechner auf welche Verzeichnisse wie zugreifen dürfen.
      - Beispiel:
      /usr/local   192.168.0.2(ro)   *.sol(ro)
      /usr/share   saturn.sol(rw)

• Abfrage welche Clients Verzeichnisse verwenden mit Befehl
  showmount –a.
• Einbinden eines NFS-Verzeichnisses:
  mount –t nfs uranus:/usr/local /test
• Dateizugriff wird wie gewohnt geprüft:
      - also per UID und GID,
      - globale Benutzerverwaltung sinnvoll Æ NIS oder besser LDAP verwenden.

282                                                          Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.8 Coda File System

10.8.1 Entwicklung und Ziele
• Entwicklung von Coda:
      -   Coda ist ein verteiltes Dateisystem,
      -   wird seit 1990 an der CMU entwickelt,
      -   Weiterentwicklung von Andrew File System (AFS),
      -   funktioniert unter vielen Unix Betriebssystemen, z.B. Linux.
• Unterschiede zu NFS:
      - hohe Verfügbarkeit, auch wenn kein Dateiserver erreichbar ist,
      - ausgereifte Caching Verfahren.
• Ziele von Coda:
      - soll für den Anwender wie ein lokales Dateisystem erscheinen,
      - Ausfallstransparenz durch hohe Verfügbarkeit,
      - Orts- und Namenstransparenz.
• Beteiligte Rechner werden in zwei Gruppen unterteilt:
  wenige Vice Server und viele Virtue Workstations.

283                                                             Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.8.2 Klienten: Virtue Workstations
• Virtue Workstations haben transparenten Zugriff auf Vice-Dateiserver:
      - Hierfür hat jede Workstation einen speziellen Prozess Venus:
          o regelt den Zugriff auf die Dateien des Vice Servers,
          o kann kurzfristige Serverausfälle überbrücken,
          o ähnlich zu einem NFS Klienten.
• Prozesse kommunizieren mit dem virtuellen Dateisystem:
      - dieses leitet Anfragen an das lokale Dateisystem weiter,
        oder wendet sich an den Venus Prozess (/coda bzw. /afs)
      - Venus fordert ggf. Dateien von Vice Dateiserver via RPC an.
                                                                   Virtue client machine
                    User space          User        User            Venus
                                       Process     Process          Process

                                                                           RPC client stub

                   Local file system interface
                                                   Virtual file system layer

                                        Local OS
                                                             Network
284                                                              Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.8.3 Vice Dateiserver
• Dienste des Vice Dateiservers:
      - bietet Dateien an, die von Venus Prozessen angefordert werden können.
      - Trusted Vice bieten zusätzlichen Authentifikations – Dienst,
      - Update Prozesse halten die Daten auf den Servern konsistent.
• Coda erscheint für den Anwender wie ein bekanntes UNIX Dateisystem.
      - Die meisten Virtual File System Operationen werden unterstützt.
      - Es gibt einen globalen Namensraum (/afs bzw. /coda).
            o Venus lädt den notwendigen Teil des Namensraums.
            o Alle Dateien sind in Unterverzeichnissen der global einheitlichen Wurzel zu finden.
• Kommunikation zwischen Venus und Vice über RPC2:
      -   RPC2 verwendet Multicast Kommunikation (UDP) zwischen den Knoten,
      -   Multicast erlaubt effiziente Invalidierung von Replikaten,
      -   Auf alle Antworten der Multicast-Gruppe wird gewartet.
      -   Multicast RPC wird mit MultiRPC bezeichnet.

285                                                            Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.8.4 Namen in Coda
• Globaler Dateinamensraum für gesamtes System:
      - im Gegensatz zu NFS,
      - typisch unter /code bzw. /afs.
• Volumes (Partitionen oder Teilbäume):
      - Gruppe von Dateien und Verzeichnissen,
      - eingehängt an bestimmter Stelle im Namensraum:

      - zentrale Zuordnung der Namen auf dem Server (mounting),
      - Bem.: Volumes sind die Basis für die Replikation.

286                                                       Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.8.5 Dateibezeichner
• Problem: Auffinden von Dateien, die auf mehreren Server verteilt &
  repliziert sind, trotz Replikationstranparenz und Ortstransparenz.
• Lösung: 32 Bit RVID (Replicated Volume ID) + 64 Bit File Handle.

      - Volume Replication DB liefert Liste VIDs zu einer RVID.
      - Volume Location DB. liefert IP-Adresse zu einer VID.
• Bem.: Mehrere VIDs pro RVID für replizierte Volumes.

287                                                        Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.8.6 Normalbetrieb
• Sitzungssemantik:
      -   Klient muss beim Öffnen Modus angeben: lesend oder schreibend öffnen,
      -   Transfer der vollständigen Datei vom Server zum Klienten,
      -   Server merkt sich, dass der Klient eine Kopie hat,
      -   Eine Session wird als Transaktion betrachtet.
• Zugriffssemantik: exklusiver Schreibzugriff, nebenläufiger Lesezugriff
  (Leser-Schreiber-Koordinierung).
• Klient hat lokalen Datei-Cache:
      - vor Zugriff (bei open) wird Datei in Cache geladen
      - Server gibt Callback-Promise aus, d.h. Server verspricht Invalidierungsnachricht zu senden,
      - Server verschickt Callback-Break, falls lokale Kopie invalidiert werden muss.
• Beispiel:
      - A liest auf veralteten Kopie,
      - zulässig, da TAA vor TAB
        gestartet wurde,
      - neue Session fordert
        jedoch neue Kopie an.

288                                                           Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.8.7 Fehlertoleranz
Serverredundanz
• Die Einheit der Replikation in den Servern ist ein Volume.
• Eine Volume Storage Group (VSG) ist eine Anzahl von
  Servern, die alle ein Replikat eines Volumes haben.
• Die von einem Klienten erreichbaren Server bzgl. eines Volumes
  werden mit Available Volume Storage Group (AVSG) bezeichnet.
• Wenn AVSG = ∅ dann ist der Klient von allen Servern getrennt.
          Server                                                 Server
           S1                                                     S3
                                 Broken network

        Client             Server                                                              Client
          A                 S2                                                                   B

• Konsistenz der Replikate durch Replicated Write Protocol:
289                                         Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
- Read one / write all:
           o Ein Klient kann von einem Server aus der AVSG lesen.
           o Klient schreibt auf alle Server Æ MultiRPC.
           o fkt. gut solange es keine Fehler gibt.
• Im Fehlerfall hilft ein Versionsvektor bei der Erkennung von Konflikten.
      - Jede Datei eines Volumes hat einen Coda Version Vector (CVV),
      - #Vektorelemente = #Server in Volume Storage Group,
• CVV im Normalbetrieb:
      - Beim Öffnen einer Datei zum Schreiben erhält Klient Datei f und zugehörigen CVVf,
      - Beim Schließen wird die Datei f mit CVVf an AVSG gesendet,
      - Jeder Server in AVSG inkrementiert sein Element in CVVf
        und schickt den Vektor wieder zurück an den Klienten.
      - Klient berechnet aus allen Antworten den neuen CVVf
        und schickt diesen per Multicast an die AVSG.
• Konflikterkennung mit Hilfe des CVVs:
      - Konflikterkennung per elementweisen Vektorvergleich,
      - kein Konflikt, falls: CVV1 < CVV2: CVV1[i] ≤ CVV2[i] oder CVV1 = CVV2.

290                                                         Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
• Beispiel: Eine Datei f liegt auf den Servern S1, S2 und S3.
      - CVVf = (Version auf S1, Version auf S2, Version auf S3); zu Beginn sei CVVf = (0,0,0).
      - Die Klienten C1 und C2 öffnen f und dannach wird das Netz partitioniert.
      - Es sei AVSGC1 = {S1, S2} und AVSG C2 = {S3}.
      - Fall 1:keine Konflikte
          o C1 verändert f: CVVf = (1,1,0),
          o C2 nimmt keine Veränderungen vor: CVVf = (0,0,0).
          o später sind wieder alle Server erreichbar.
          o Abgleich der verschiedenen CVVs durch elementweisen Vergleich.
          o (1,1,0) > (0,0,0) Æ kein Konflikt
          o Server müssen Versionen untereinander abgleichen.
          o geschieht transparent für die Klienten.
      - Fall 2: Konflikt
          o C1 verändert f: CVVf = (1,1,0),
          o C2 verändert ebenfalls f: CVVf = (0,0,1).
          o Es sind zwei verschiedene neue Versionen entstanden.
          o Nachdem wieder alle Server erreichbar sind, werden Konfliktfälle
             durch den Vektorenvergleich gefunden (1,1,0)  (0,0,1)
          o Alle neuen Versionen werden in einem Covolume abgelegt und
             die Benutzer darüber informiert.
          o Konflikte müssen nun interaktiv durch Benutzer aufgelöst werden.
          o Bem.: Diese Fälle treten selten auf, da eine Datei meistens nicht
             von mehreren Benutzern konkurrierend aktualisiert wird.

291                                                           Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
Fehlertoleranz falls kein Server erreichbar ist
• Hat ein Klient keine Verbindung zu einem Server, kann er dennoch
  weiterarbeiten Æ Caching beim Klient.
• Venus füllt den Cache des Klienten mit „wichtigen“ Daten:
      - Falls benötigte Daten im Cache blockiert Klient nicht.
      - Hierfür gibt es eine Caching-Strategie mit Prioritäten für Daten.
      - Daten mit hoher Priorität (z.B. definiert durch User) müssen sich ständig im Cache befinden.
• Zustandsautomat des Klienten für jedes Volume:
                   Disconnection
                                             Hoarding              Reintegration complete

                                          Disconnection
             Emulation                                                                     Reintegration
                                          Reconnection

      - Hoarding: Daten mit hoher Priorität zuerst im Cache erneuern (wenn Verbindung z. Server).
      - Emulation: Klient arbeitet auf „gecachten“ Daten, wenn keine Verbindung zum Server.
      - Reintegration: Abgleich modifizierter Daten mit dem Server, bei erneuter Verbindung.
• Bem.: Bei Konflikten ist die Anwendung, bzw. der Anwender gefordert.
      - Aber Konflikte unwahrscheinlich, da Dateien selten gemeinsam geschrieben werden.
292                                                           Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.8.8 Sicherheit
• Verschlüsselte Übertragung zwischen Vice und Virtue möglich.
• Verwendet wird hierbei eine symmetrische Verschlüsselung.
• Zentraler Authentisierungsdienst (ähnlich Key Distribution Center).
• Einsatz einer Variante des Needham-Schröder-Protokolls.

293                                         Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
10.9 Zusammenfassung
• Ziel: Soll wie ein lokales Dateisystem erscheinen.
      - Nutzungsprofil: Dateien i.d.R. klein, Datei-Sharing ist selten, ...
      - i.d.R. Sitzungssemantik Æ gesamte Änderungen werden beim "Close" sichtbar.
• Network File System:
      - Ortstransparenz, falls einheitlicher Namensraum auf jedem Klienten,
      - eingebunden über VFS; Sitzungssemantik; Caching beim Klient,
      - Sperren zur Steuerung konkurrierender Schreibzugriffe.
• Coda:
      - Ziele: hohe Verfügbarkeit, auch falls keine Verbindung zu einem Server besteht,
      - Sitzungssemantik:
          o parallel dürfen N-Leser und max. ein Schreiber pro Datei arbeiten,
          o Server sendet Nachricht an Leser, falls die Datei geändert wurde.
      - replizierte Volumes (Partition oder Verzeichnisbaum),
      - Weiterarbeiten bei Partitionierung des Netzes möglich:
          o Konflikte können anhand eines Versionsvektors erkannt werden,
          o ggf. muss Benutzer Konflikt auflösen.
      - Weiterarbeiten möglich, falls kein Server erreichbar ist:
          o falls benötigte Dateien im Cache des Klienten vorhanden sind,
          o Cache wird gefüllt mit Hilfe von Heuristiken & Hinweisen von Benutzer,
          o Reintegration der Daten im Cache mit dem Server, wenn Verbindung wieder besteht.
294                                                           Verteilte Betriebssysteme, Winter 2005 © Verteilet Systeme, Universität Ulm, M. Schöttner
Sie können auch lesen