Verteilte Betriebssysteme Wintersemester 8/9 Verteilte Betriebssysteme. Kapitel Konsens Prof. Matthias Werner Professur Betriebssysteme. Einführung. Einführung Wir haben bereits einige Probleme betrachtet, die zum Ziel haben, dass eine Anzahl von Teilnehmern zu einem gemeinsamen Ergebnis kommen, z.b.: Uhrensynchronisation Auswahlproblem Verteiltes Commit Ein solches Finden eines gemeinsamen Ergebnisses nennt man Konsens Definition. (Konsens) Konsens erlaubt einer Menge von fehlerfeien Verarbeitungseinheiten den korrekten Wert eines Teils des Systemzustandes zu erfahren und gleichzeitig zu wissen, dass jede andere korrekte Verarbeitungseinheit das selbe Ergebnis erhält, unabhängig von den Aktionen der fehlerhaften Einheiten. WS 8/9 Prof. Matthias Werner / osg.informatik.tu-chemnitz.de Fehler. Einführung Je nach Annahmen über das System ist Konsens trivial: In einem fehlerfreien System braucht man gemeinsame Information und eine gemeinsame Bewertungsfunktion Aber: sich ändernde Information sind nur zeitweise gültig Synchronisation erforderlich reale Systeme haben Fehler Berücksichtigung notwendig Hier nehmen wir synchrone Systeme an und betrachten die Auswirkung von Fehlern Fehler (Forts.). Einführung Wenn Fehler berücksichtigt werden soll, muss das Verhalten des Fehlers spezifiziert werden In einem verteilten System lässt sich das Verhalten nur aufgrund von Nachrichten beobachten Mögliches Fehlverhalten: Nachrichten kommen nicht oder nicht rechtzeitig an Der Inhalt der Nachricht ist inkorrekt Es werden zusätzliche Nachrichten gesendet Ist nur das Kommunikationssystem gestört ist lediglich das erste Verhalten möglich, sonst muss der Knoten fehlerhaft sein Wenn das Fehlverhalten nicht beschränkt ist, spricht man von einem Byzantinischen Fehler Schliesst auch konspiratives Verhalten ein typische Fehlertoleranzmaßnahmen wie Checksummen vorausgesetzt WS 8/9 Prof. Matthias Werner / osg.informatik.tu-chemnitz.de WS 8/9 Prof. Matthias Werner 4 / osg.informatik.tu-chemnitz.de
. Einführung Problem des Byzantinischen Agreements Varianten. Einführung Byzantinisches Agreement nach LAMPORT Die Armee von Byzanz will mit mehreren Divisionen eine Stadt erobern Jede Division wird von einem General befehligt, ein General ist der kommandierende General Generäle kommunizieren ausschließlich durch Boten Unter den Generälen können sich Verräter befinden Eroberung ist nur bei konsistentem Verhalten (der loyalen Generäle) erfolgreich Problem: Gesucht ist ein Verfahren (Algorithmus), das folgendes garantiert: Alle (loyalen) Generäle befolgen die gleiche Anweisung Ist der kommandierende General loyal, befolgen die (loyalen) Generäle seine Anweisung Es gibt eine Reihe ähnlicher Probleme, die sich aber ineinander überführen lassen: Generalsproblem (Byzantinisches Agreement) Ein General gibt Befehl; alle loyalen Generäle sollen gleichen Befehl ausführen; wenn der kommandierender General loyal ist, wird sein Befehl ausgeführt. Byzantinischer Konsens Alle Generäle haben eine private Meinung; alle loyalen Generäle sollen sich auf eine Meinung einigen Interaktive Konsistenz Alle Generäle haben eine private Meinung; alle loyalen Generäle haben am Ende den gleichen Werte-Vektor, wobei sie Meinungen der loyalen Generäle im Werte-Vektor korrekt sind. Achtung: Benennung ist in der Literatur unterschiedlich zu finden. WS 8/9 Prof. Matthias Werner 5 / osg.informatik.tu-chemnitz.de. Einführung Formale Definition (Konsens) Eine etwas formalere Definition: Eine Menge von n Knoten v i (Prozessoren, Rechnern,...) sind durch ein (fehlerfreies) Netzwerk miteinander verbunden. Jeder Knoten besitzt einen zunächst privaten Wert δ i aus einer Menge möglicher Werte. Ziel ist es, dass jeder Knoten für einen Wert aus entscheidet. Drei Bedingungen sollen erfüllt werden: Agreementbedingung. Keine zwei (fehlerfreien) Knoten entscheiden sich für unterschiedliche Werte Validierungsbedingung. Wenn alle fehlerfreien Knoten mit dem gleichen privaten Wert δ beginnen, dann muss dies auch der Ergebniswert sein Terminierungsbedingung. Alle fehlerfreien Knoten entscheiden sich nach endlicher Zeit WS 8/9 Prof. Matthias Werner 6 / osg.informatik.tu-chemnitz.de. Unmöglichkeit. Unmöglichkeit von Byzantinischen Agreement Anzahl der Verräter Theorem. Wenn f die maximale Anzahl fehlerhafter Knoten in einem System S von n Knoten ist, gibt es keinen Algorithmus, der das Problem des Byzantinischen Agreements löst, solange n f gilt WS 8/9 Prof. Matthias Werner 7 / osg.informatik.tu-chemnitz.de WS 8/9 Prof. Matthias Werner 8 / osg.informatik.tu-chemnitz.de
. Unmöglichkeit. Unmöglichkeit Beweis für Theorem., Knotenzahl Beweis für Lemma. Für n = : offensichtlich. Für n > : Beweisen zunächst einfacheres Lemma. Lemma. Das Byzantinische Agreement ist nicht lösbar, wenn n = gilt und mindestens ein Fehler möglich ist. Konstruieren System S aus zwei S: Betrachten System S mit Knoten: Für zwei Knoten ist nicht der Unterschied zu S mit einem defektem Knoten erkennbar? Annahme: In S lasse sich das Byzantinische Agreement lösen. WS 8/9 Prof. Matthias Werner 9 / osg.informatik.tu-chemnitz.de. Unmöglichkeit Beweis für Lemma. (Forts.) Betrachtung jeweils zweier anderer Knoten führt zum Widerspruch WS 8/9 Prof. Matthias Werner / osg.informatik.tu-chemnitz.de. Unmöglichkeit Beweis für Lemma. (Forts.) Für n f: Annahme des Gegenteils, sei A ein System mit n Knoten, von denen f fehlerhaft sind. A löse das Agreementproblem. Partitioniere A in drei nichtleere Teilmengen I, I und I mit I i f. OBdA: Alle fehlerhaften Knoten von A sind entweder in I, I oder I. WS 8/9 Prof. Matthias Werner / osg.informatik.tu-chemnitz.de WS 8/9 Prof. Matthias Werner / osg.informatik.tu-chemnitz.de
. Unmöglichkeit Beweis für Lemma. (Forts.). Unmöglichkeit Kommunikation zwischen den Generälen Betrachten System B, das durch A simuliert wird. B bestehe aus N, N und N (entsprechend I, I und I ) A kann B durch folgenden Spielregeln simulieren: Alle Knoten in jedem I i haben den gleichen Startwert v i Wenn alle Knoten in I i sich für einen Endwert entscheidet, dann hat sich I i (d.h. N i ) entschieden. Falls unterschiedliche Werte in I i entschieden werden, wird einer davon genommen. Wenn A das Agreement löst, wird das Agreement auch für B gelöst Widerspruch zu Lemma. Theorem. In einem System S mit n Knoten, von denen maximal f fehlerhaft sind, gibt es keinen Algorithmus, der das Problem des Byzantinischen Agreements löst, wenn die Konnektivität des Kommunikationsgraphen k = γ(s) f ist. Der Beweis von Theorem. wird hier nicht geführt Übung WS 8/9 Prof. Matthias Werner / osg.informatik.tu-chemnitz.de. Unmöglichkeit Bedingungen für Lösbarkeit Byzantinischer Probleme WS 8/9 Prof. Matthias Werner 4 / osg.informatik.tu-chemnitz.de. Unmöglichkeit Bedingungen für Lösbarkeit Byzantinischer Probleme Es gibt ziemlich viel Unmöglichkeitsbeweise für das Byzantinische Agreement u.ä. Probleme DOLEV ET AL. haben fünf Systemcharakteristika genannt, die eine Rolle spielen: Ausführung auf den Knoten: synchron vs. asynchron Kommunikation: synchron vs. asynchron Nachrichtenreihenfolge: geordnet vs. ungeordnet Übertragungsmechanismus: broadcast vs. Punkt-zu-Punkt Senden/Empfangen-Atomarität: atomar vs. nicht atomar Es konnten genau vier Fälle identifiziert werden, bei denen es Byzantinisches Agreement mit f > fehlerhaften Knoten geben kann: Synchrone Knoten und synchrone Kommunikation Synchrone Knoten und geordnete Nachrichtenreihenfolge Broadcast-Übertragung und geordnete Nachrichtenreihenfolge Synchrone Kommunikation, Broadcast-Übertragung, atomares Senden/Empfangen Für f = gibt es noch einen weiteren Fall: Asynchrone Knoten, synchrone Kommunikation, Punkt-zu-Punkt-Kommunikation und atomares Senden/Empfangen WS 8/9 Prof. Matthias Werner 5 / osg.informatik.tu-chemnitz.de WS 8/9 Prof. Matthias Werner 6 / osg.informatik.tu-chemnitz.de
. Algorithmus. Algorithmus Ein Algorithmus für Byzantinisches Agreement Algorithmus für Generalsproblem (Commander zu Leutnants) mehrfach angewendet Annahmen: Sei = (z.b. = {a, b}) Sei n > f Vollständig vernetzter Graph Oral-Messages-Algorithmus. Kommandierender General sendet an alle Leutnants seinen Befehl. Alle senden ihre Sicht an alle anderen. Punkt wird f-mal wiederholt 4. Jeder Leutnant führt einen Baum-Mehrheits-Algorithmus durch Baum-Mehrheit Algorithmus. Algorithmus Jeder Leutnant bildet einen Nachrichtenbaum Jede Hierachiestufe ist eine Indirektion der Sicht Alle Unterknoten eines Knotens zeigen die (behauptete) Sicht der anderen auf diesen Knoten Es wird rekursive die Mehrheit über die Subbäume (Knoten + Unterknoten) gebildet Fehlende Nachrichten werden beliebig ersetzt WS 8/9 Prof. Matthias Werner 7 / osg.informatik.tu-chemnitz.de. Algorithmus Beispiel für Baum-Mehrheit, n = 7, f = Sicht von Leutnant Nr. ( ist Kommandierender General): Nachrichtenformat: Prefix gibt an, wessen Sicht es ist. WS 8/9 Prof. Matthias Werner 8 / osg.informatik.tu-chemnitz.de Effizienz. Algorithmus Minimalität Bewiesen: ein Byzantinisches Agreement braucht mindestens f + Prozessoren, f + Runden und Nachrichten in der Größe von O(t ) Bits Bisher noch kein Algorithmus gefunden, bei dem alle Parameter minimal sind Randomisierte Algorithmen Erlauben Synchronisationsforderungen aufzugeben Keine Garantie, aber Wahrscheinlichkeit eines Agreements geht gegen Im Mittel weniger Runden als deterministische Algorithmen Gesamter Nachrichtenbaum WS 8/9 Prof. Matthias Werner 9 / osg.informatik.tu-chemnitz.de WS 8/9 Prof. Matthias Werner / osg.informatik.tu-chemnitz.de
. Algorithmus. Algorithmus Verwandschaft zwischen Konsensproblemen Lamport,Shostak & Pease/ Dolev & Reischuk Diskussion Rabin/ Chor & Coan Lombardi Turpin & Coan Lamport,Shostak & Pease (Byzant. Generals Problem) Maeng & Malek Russel & Kime Dwork, Lynch, & Stockmeyer Malek/ Chwa & Hakimi Hosseini, Kuhl & Reddy Hakimi & Nakajima Preparata, Metze & Chien (PMC) Dolev, Lynch, Pinter, Stark & Weihl Karunanithi & Friedman Fussel & Rangarajan/ Berman & Pelc Mallela & Masson/ Yang & Masson Blount Cristian Liaw, Su & Malaiya Maheshwari & Hakimi Yang & Masson Dahbura,Sabnani & King / Blough,Sullivan & Masson WS 8/9 Prof. Matthias Werner / osg.informatik.tu-chemnitz.de Literatur Literatur [Pra96] Dhiraj K. Pradhan, Hrsg. Fault Tolerant Computer Systems. Prentice Hall, 996, Section.4 und Chapter 8 [Lyn96] Nancy A. Lynch. Distributed Algorithms. Morgan Kaufmann, 996, Chapter 6 b [LSP8] Leslie Lamport, Robert Shostak und Marshall Pease. The Byzantine Generals Problem. In: ACM Transactions on Programming Languages and Systems 4. (Juli 98), S. 8 4 b [BDM9] Michael Barborak, Anton Dahbura und Miroslaw Malek. The consensus problem in fault-tolerant computing. In: ACM Computing Survey 5. (Juni 99), S. 7 WS 8/9 Prof. Matthias Werner / I Obwohl die Annahme Byzantinischer Fehler etwas paranoid wirkt, sind sie in der Realität relevant I Uhrensynchronisation ist bei Existenz inkorrekter Uhren immer byzantinisch I Mehrere Plattformen nutzen Byzantinisches Agreement: I SIFT (Software Implemented Fault Tolerance, NASA) I TTA I BitCoin I... osg.informatik.tu-chemnitz.de I Schwächere Annahmen erlauben effizientere Protokolle I Authenticated Byzantine fault (oder noch schwächere Fehlermodelle) I Keine konsistentes Ergebnis (nur nahezu ) I Keine garantiere Terminierung (probabilistisch) I... WS 8/9 Prof. Matthias Werner / osg.informatik.tu-chemnitz.de