Selbstheilende Systeme

UNIVERSITÄT PADERBORN
Die Universität der Informationsgesellschaft
Selbstheilende
Systeme
Seminar: Autonomic Computing
Frank Nillies - [email protected]
Gliederung
Motivation
„ Definition: Selbstheilung vs. Fehlertoleranz
„
… Selbstheilung
in 4 Phasen
„
Formale Methoden
„
Beispiele und Ausblick
… IBM
„
/ Microsoft Framework
Fazit / Literatur
Autonomic/Organic Computing - Thema: Selbstheilung
2
Motivation
„
75% - 90% aller IT Kosten entfallen auf
Wartung und Reparatur
„
Computernetze werden immer komplexer
„
Jeder PC/System ist anders konfiguriert
„
Fehlertolerante/Sicherheitskritische
Systeme sind bereits im Einsatz
Autonomic/Organic Computing - Thema: Selbstheilung
3
Fehlertoleranz vs. Selbstheilung
DIN/ISO
Autonomic/Organic Computing - Thema: Selbstheilung
4
Fehlertoleranz vs. Selbstheilung
„
Systeme für spezielle
Anwendungsgebiete
entwickelt
„
Beliebige Hardware –
Software Kombination
„
100% Erhalt der
Spezifikationen
Kein Ausfall des
Systems erlaubt
Realisierung durch
redundante
Hardware
„
Grundfunktionalität
gewährleisten
Systemausfall soll
minimiert werden
Wartungsaufwand
reduzieren
„
„
„
„
Autonomic/Organic Computing - Thema: Selbstheilung
5
Definition Selbstheilung
„
„
Selbstheilung verwendet bei einem Fehler
einen Teil seiner Ressourcen dazu, den Fehler
Schritt für Schritt zu beheben;
Fehlertoleranz hingegen versucht trotz eines
Fehlers die Spezifikationen zu 100% zu erfüllen
Fehlertolerante Systeme können nur auf Fehler
reagieren, die während der Designphase
berücksichtig worden sind;
Ein selbst-heildendes System passt sich
dynamisch und lernfähig seiner Umgebung an.
Autonomic/Organic Computing - Thema: Selbstheilung
6
Selbstheilung in 4 Phasen
Kontextbewusstsein
1.
Fehlererkennung
…
2.
Schadensabschätzung
…
…
3.
Wo ist der Fehler aufgetreten?
Welche Teile sind betroffen?
Wiederherstellung
…
4.
Was für ein Fehler ist aufgetreten?
Wie wird der Fehler behoben?
Betrieb wiederaufnehmen / fortsetzen
…
Kann der Betrieb fehlerfrei fortgesetzt
werden?
Autonomic/Organic Computing - Thema: Selbstheilung
7
1. Fehlererkennung
Problematik:
… Was
ist ein Fehler?
… Wie erkennt man Fehler?
Lösung:
… Redundante
Informationen
… Logbücher
… Neuronale
Netze
… Trainiertes Verhalten
Autonomic/Organic Computing - Thema: Selbstheilung
8
1. Fehlererkennung
Funktionsüberprüfung, Konsistenzprüfung
„
RAM Self Test
„
Scandisk
„
Checksummen
„
ParityBit
Autonomic/Organic Computing - Thema: Selbstheilung
9
1. Fehlererkennung
Signalabgleich, Harwareüberwachung
„
S.M.A.R.T.
Überwachung bei HDDs
„
Temperatursensoren in
CPUs
„
Spannungsüberwachung
„
Netzwerkkabeltest
Autonomic/Organic Computing - Thema: Selbstheilung
10
2. Ursachenforschung
Problematik:
… Wo
ist der Fehler aufgetreten?
… Welche Systemeinheiten sind betroffen?
Lösung:
… Funktionsprüfung
… BlackBox
Prinzip
Autonomic/Organic Computing - Thema: Selbstheilung
11
2. Schadensabschätzung
„
Kann das System nach dem Fehler den Betrieb
wieder aufnehmen oder treten Folgefehler auf?
… Predefined
Failure semantics
Vordefinierte Systemroutinen bei Ausfällen
… Hazard analysis
Besteht Gefahr für Personen oder Equipment?
… Severity analysis
Wie ernst ist der Fehler für den Folgebetrieb?
„
Eher bekannt aus der Fehlertoleranz,
Einsatz je nach Anwendungsgebiet.
Autonomic/Organic Computing - Thema: Selbstheilung
12
3. Wiederherstellung
„
Backward recovery:
Einen vorherigen, fehlerfreien Systemzustand
wieder herstellen. Beispielsweise durch Image
Dateien.
„
Forward recovery:
Einen neuen, fehlerfreien Systemzustand
herstellen.
Beispielsweise durch Rücksetzen von
Datenleitungen oder Neustart.
Autonomic/Organic Computing - Thema: Selbstheilung
13
4. Betrieb fortsetzen
„
Betrieb läuft weiter, die betroffenen
Komponenten sind aber nicht nutzbar.
„
Benutzer sollte idealerweise von dem Fehler
nichts bemerken, ggf. wird der Administrator
per eMail oder Logfile informiert.
„
Problem: Folgefehler müssen erkannt
und ebenfalls behandelt werden.
Autonomic/Organic Computing - Thema: Selbstheilung
14
Gliederung
Motivation
„ Definition: Selbstheilung vs. Fehlertoleranz
„
„
Formale Methoden,
angelehnt an Fehlertoleranz
Autonomic/Organic Computing - Thema: Selbstheilung
15
Fehlerer- & Ursachenerkennung
„
Redundandcy (Redundanz)
… Identische
Bausteine sind mehrfach
vorhanden
„
Diversity (Vielfältigkeit/Mannigfaltigkeit)
… Bausteine
mit gleicher Aufgabe sind in
unterschiedlichen Ausführungen vorhanden
„
Agenten
… Intelligente
Systemkomponenten in
Hardware oder Software
Autonomic/Organic Computing - Thema: Selbstheilung
16
Redundancy and Diversity
„
Domain of information:
… Redundante
Speicherung der Daten
… Sichere Datenstrukturen
Error correcting codes (ECC):
… Erkennt
und repariert Bitfehler
… Implementierung basiert auf Hamming-Distance
Robust data structure:
… Checksummen,
Rückmeldungen, Handshake
Autonomic/Organic Computing - Thema: Selbstheilung
17
Redundancy and Diversity
„
Domain of space:
… Fallbacksysteme
durch Notstrom, Reservesysteme
… Redundanz der Hardware (RAID)
Active redundancy:
… Parallel
arbeitende Componenten (TMR)
Passive/standby redundancy:
… Hot
standby, Ausfallsystem arbeitet im Hintergrund
… Cold standby, Notfallsystem startet bei Ausfall
Autonomic/Organic Computing - Thema: Selbstheilung
18
Redundancy and Diversity
„
Domain of time:
… Doppelte
Berechnung durch verschiedene
und unterschiedliche Algorithmen
Multiple calculation:
… Mehrere,
verschiedene Algorithmen berechnen ein
Ergebnis bzw. bestätigen Ergebnisse
Repeated messages:
… Nachrichten
werden (auf Anfrage) mehrfach versand
Autonomic/Organic Computing - Thema: Selbstheilung
19
Hardware Fehlertoleranz
„
Statische Redundanz
… Parallele
Berechnung mit anschließender
Überprüfung von Checksummen
„
Dynamische Redundanz
… Not-
oder Backupsystem vorhanden.
… Umschalten zwischen vorhandenen Systemen
„
Hybride Redundanz
… Kombination
aus statischer und
dynamischer Redundanz
Autonomic/Organic Computing - Thema: Selbstheilung
20
Statische Redundanz
Multistage TripleModularReduncy (TMR)
arrangement
Autonomic/Organic Computing - Thema: Selbstheilung
21
Dynamische Redundanz
N modular standby sparing system
Autonomic/Organic Computing - Thema: Selbstheilung
22
Software Fehlertoleranz
„
Unterscheidung zwischen
… Softwarefehler,
vgl. mit Hardwarefehler
… Fehler im System, die auf Softwareprobleme
zurückzuführen sind.
„
Problemstellung:
… Kopie
einer Software enthält die selben
Fehler.
… Sind unabhängige Entwicklerteams sicherer?
… Software kann altern, Zombieprozesse im
Speicher
Autonomic/Organic Computing - Thema: Selbstheilung
23
Exception Handling
„
„
Fehlerbehandlung an Hand von Exceptions.
Vorteile:
… Voter
entfallen in der Software
… Dezentrale Fehlerbehandlung in
einzelnen Routinen (ausfallsicher)
… Allgemeine Reaktion auf Fehler möglich
„
Nachteile:
… Dezentrale
Fehlerbehandlung behindert Wartbarkeit
… Setzt korrekt implementierte Routinen voraus
… (Erschwert die Verifikation des Quellcodes)
Autonomic/Organic Computing - Thema: Selbstheilung
24
N version Programming
„
Es existieren N unterschiedliche
Implementierungen einer Routine.
„
Aus diesen N Routinen werden zufällig M
Routinen ausgewählt und berechnet.
„
Per Voter wird analog zum TMC das richtige
Ergebnis validiert.
Beispiel: Verschiedene Sortieralgorithmen
Autonomic/Organic Computing - Thema: Selbstheilung
25
N version Programming
„
Vorteile:
… Designfehler
werden erkannt
… Sichert (M-1)/2 Fehler ab
„
Nachteile:
… Hohe
Entwicklungskosten durch viele Entwickler
… Leistungseinbußen durch viele parallele, bzw.
sequenzielle Berechnungen
… Gemeinsame Fehler nicht ausgeschlossen
Autonomic/Organic Computing - Thema: Selbstheilung
26
Recovery Blocks
„
Vor jeder Routine werden Rüchsprungpunkte,
bzw. Backups der Laufzeitumgebung angelegt
„
Berechnet die Routine ein falsches Ergebnis,
bzw. führt die Berechnung zum Fehlverhalten,
wird der alte Zustand wieder hergestellt.
„
Die Berechnung wird dann von einer anderen
Routine übernommen.
Autonomic/Organic Computing - Thema: Selbstheilung
27
Recovery Blocks
„
Vorteile:
… Kein
Voter benötigt
… Kurzzeitige Hardwareausfälle können
behandelt werden
… Unterteilung in Subroutinen möglich
„
Nachteile:
… Benötigt
zusätzlichen Speicher und
Akzeptanzberechnungen (schwer zu
implementieren)
… Zeitverlust durch Rücksprung (Realtime Systeme?)
Autonomic/Organic Computing - Thema: Selbstheilung
28
Gliederung
Motivation
„ Definition: Selbstheilung vs. Fehlertoleranz
„ Formale Methoden
„
„
Beispiele und Ausblick, Fazit
Autonomic/Organic Computing - Thema: Selbstheilung
29
Beispiele
„
Grid Computing:
…
…
…
…
…
„
„
„
„
„
IBM Grid
Apple Xgrid
Intel LESC
Sun N1 Grid Engine
…
Eclipse SDK
VisualStudio SDK
IBM Trivoli
IBM Rejuvention
…
Autonomic/Organic Computing - Thema: Selbstheilung
30
Beispiele
„
RAID Systeme
„
FPGAs
… Xilinx
„
LoadBalancer
„
Managed Network
… Cisco
Autonomic/Organic Computing - Thema: Selbstheilung
31
Realität und Vision – Ausblick
Woran wird geforscht:
Was ist real:
„
„
„
Selbstheilung, angelehnt an Fehlertoleranztechniken
Überwachung der
Systeme
Kooperation mit dem
Benutzer, Administrator oder Entwickler
„
„
„
„
„
Intelligente Integration
Kontextbewusstsein
Integration bereits auf
Compilerebene
Interoperable
Hardware
…
Autonomic/Organic Computing - Thema: Selbstheilung
32
Fazit
Probleme:
Vorteile:
„
Geringere Kosten
„
Weniger Ausfälle
„
Einfachere
Integration
„
Kaum detaillierte
Informationen
verfügbar
„
IBM derzeit als de
fakto Monopolist
Autonomic/Organic Computing - Thema: Selbstheilung
33
Literatur
„
Neil Storey: Safety-Critical Computer
Systems, Prentice Hall 1996
„
IBM Research Center:
http://www-128.ibm.com/developerworks/autonomic/
Workshop on Selfhealing Systems 2002
„ Workshop on Selfhealing Systems 2004
„
Autonomic/Organic Computing - Thema: Selbstheilung
34
Fragen ?
Vielen Dank für eure Aufmerksamkeit.
Autonomic/Organic Computing - Thema: Selbstheilung
35
Autonomic Computing
The Vision of Autonomic Computing, Watson Research Center, IEEE 2003
Autonomic/Organic Computing - Thema: Selbstheilung
36
Speiseplan Palmgarten
Guten Appetit.
Autonomic/Organic Computing - Thema: Selbstheilung
37
Hybride Redundanz
N modular
redundancy
with spares
Autonomic/Organic Computing - Thema: Selbstheilung
38