6 Fehlertoleranz
vs6
1
Zuverlässigkeit
(reliability)
Sicherheit vor Fehlern
Sicherheit vor Angriffen
WS/SS xy
Systemsicherheit SS 04
(safety)
(security)
NetzsicherheitWS 04/05
vs6
2
6.1 Terminologie
(ist nicht einheitlich!)
Fehler (error): Versagen der Hardware oder
Konstruktionsfehler in Hardware oder Software
Fehlfunktion (fault): Teil des Systems verhält sich nicht so wie es sollte,
bedingt durch Hardware- oder Software-Fehler
Fehlverhalten (failure): Gesamtsystem verhält sich nicht so wie es sollte,
bedingt durch Fehlfunktion
Fehlertoleranz (fault tolerance): Systemeigenschaft, die bedeutet:
Fehlfunktion wird so abgefangen, daß das gewünschte Systemverhalten gesichert bleibt: Fehlfunktion führt nicht zu Fehlverhalten
Verfügbarkeit (availability) von Systemen oder Daten:
Anteil einer Zeitspanne, in dem das System ohne Fehlverhalten
benutzbar ist, z.B. „Verfügbarkeit von 99,99%“
vs6
3
Zur Erreichung von Fehlertoleranz kommen verschiedene Arten von
Redundanz zum Einsatz:
 physische Redundanz, z.B. Überschuß an Prozessoren:
- 1 Prozessor in Reserve (passive Redundanz, primary + backup)
mit hot standby oder cold standby,
- 3 Prozessoren tun das Gleiche,
praktizieren Abstimmung (aktive Redundanz, active redundancy)
 Informationsredundanz, z.B. fehlerkorrigierende Codes,
n-Versionen-Programmierung,
Replikation (beinhaltet physische Redundanz von Speicher)
 zeitliche Redundanz, z.B. Wiederholungsversuch bei Datenübertragung
vs6
4
Klassifikation von Fehlfunktionen,
z.B. von Prozessoren („Fehlersemantik“):
fail-stop:
Prozessor wird funktionsunfähig und signalisiert dies (!)
fail-silent:
Prozessor „rührt sich nicht mehr“ (evtl. schwer erkennbar)
byzantinisch: Prozessor läuft fehlerhaft weiter
vs6
5
6.2 Replikation mit Abstimmung
(voting)
toleriert Stations- und Netzausfälle, erhöht die Verfügbarkeit von Daten
Ansatz: Verwendung von Lese- und Schreib-Quorum (vgl. 5.3.1.2b)
Nebeneffekt: Lese/Schreib-Ausschluss
n Kopien/Server, Kopien tragen Versionsnummer,
Lese-Quorum r, Schreib-Quorum w
 Lesen:
r Kopien (statt nur 1) müssen verfügbar sein
 Schreiben:
w Kopien (statt n) müssen verfügbar sein
r+wn,
0rn,
vs6
n/2  w  n
6
Schreiben in 2 Phasen:
 Schreibmenge finden, d.h. w Server finden, die bereit sind
– sie melden sich mit ihrer Versionsnummer;
die höchste Nummer ist die tatsächliche aktuelle Versionsnummer
– weil wegen 2w > n Überlappung mit letzter Schreibmenge;
obsolete Kopien auf aktuellen Stand bringen (aktive Replikation)
 Schreibnachricht an alle Mitglieder der Schreibmenge schicken
(diese schreiben dann – und erhöhen die Versionsnummer);
auf Bestätigungen warten und Schreibmenge wieder freigeben;
Schreibnachricht an alle anderen schicken.
(Ergänzungen notwendig, z.B. für den Fall, daß nicht alle Mitglieder
der Schreibmenge eine Bestätigung schicken.)
vs6
7
Lesen in 2 Phasen:
 Lesemenge finden, d.h. r Server finden, die bereit sind
– sie melden sich mit ihrer Versionsnummer;
die höchste Nummer ist die tatsächliche aktuelle Versionsnummer
– weil wegen w + r > n Überlappung mit letzter Schreibmenge.
 Lesen von einem Mitglied der Lesemenge, das die
höchste Versionsnummer hat;
Lesemenge wieder freigeben.
vs6
8
6.3 Verteilte Übereinkunft
(distributed consensus/agreement)
z.B.
- Aufteilung einer Aufgabe
- „gleichzeitige“ Abschaltung von Aggregaten
- u.ä.
 Unzuverlässige Nachrichten:
Es kann nicht garantiert werden, daß innerhalb einer
vorgegebenen Zeit Einigkeit erzielt wird.
 Unzuverlässige Prozessoren:
vs6
9
 Unzuverlässige Prozessoren:
Satz für byzantinische Fehler (Lamport 1982):
Verteilte Übereinkunft angesichts byzantinischer Fehler ist genau
dann möglich, wenn von insgesamt 3m + 1 Prozessoren
höchstens m fehlerhaft sind.
(M.a.W.: mehr als zwei Drittel der Prozessoren müssen
korrekt arbeiten.)
Folklore: „Byzantinische Generäle“
vs6
10

vs6