Download - Recovery-Oriented Computing

Transcript
Page 1: Recovery-Oriented Computing

Recovery-OrientedComputing

Mario Eckhardt

Aspekte und Werkzeuge der Datenbankadministration und deren Automatisierung

Page 2: Recovery-Oriented Computing

Einleitung Motivation Ziele des Recovery-Oriented Computing Peres` Gesetz

Techniken des Recovery-Oriented Computing Redundanz und Isolation Rekursive Neustarts Selbsttest und Verifikation im laufenden Betrieb Unterstützung zur Problemdiagnose Reversible Systeme

ROC in Forschungs- und Anwendungssystemen ROC-Techniken in DBMS Mercury Satellitensystem Pinpoint ROC-1: ROC auf Hardwareebene Undofähiges E-mail-System

Zusammenfassung

Page 3: Recovery-Oriented Computing

Einleitung Motivation Ziele des Recovery-Oriented Computing Peres` Gesetz

Techniken des Recovery-Oriented Computing Redundanz und Isolation Rekursive Neustarts Selbsttest und Verifikation im laufenden Betrieb Unterstützung zur Problemdiagnose Reversible Systeme

ROC in Forschungs- und Anwendungssystemen ROC-Techniken in DBMS Mercury Satellitensystem Pinpoint ROC-1: ROC auf Hardwareebene Undofähiges E-mail-System

Zusammenfassung

Page 4: Recovery-Oriented Computing

Motivation

Downtime Kosten (pro Stunde) Brokerage operations $6,450,000 Credit card authorization $2,600,000 Ebay $225,000 Amazon.com $180,000 Package shipping services $150,000 Home shopping channel $113,000 Catalog sales center $90,000 Airline reservation center $89,000

Quellen: T. Sweeney. No Time for DOWNTIME – IT Managers feel the heat to prevent outages that can cost millions of dollars. Internet Week, n. 807, 3 April 2000Kembel, R. Fibre Channel: A Comprehensive Introduction, p.8, 2000.

Page 5: Recovery-Oriented Computing

Motivation

MTTF______

MTBF

MTTF____________

MTTF + MTTR

MTTFMTTR

MTBF

MTBF: Mean Time between Failure MTTF: Mean Time to Failure MTTR: Mean Time to Repair

= =Verfügbarkeit

FehlerFehler

Verfügbar

Downtime

?> 99.999%

Page 6: Recovery-Oriented Computing

Fehler sind unvermeidbar

Wachsende Komplexität und zunehmende Verknüpfungen in modernen Systemen

Zeitdruck durch rasche Innovationen, kurze Entwicklungs- und Testzeiten

Zwang zur Kostenreduktion Skaleneffekt „Irren ist menschlich“

Page 7: Recovery-Oriented Computing

Ironie der Automation

Automation kein Gegenmittel bei menschlichen Fehlern Anforderung an Fehlerfreiheit vom Operator zum

Programmierer verschoben Automatisierte Systeme vermeiden Interaktion mit

Operator Weiterhin manuelle Bearbeitung komplexer, seltener

Aufgaben Operator überfordert, wegen fehlender Praxis im

komplexen System

Page 8: Recovery-Oriented Computing

Ziele des ROC

MTTF______

MTBF

MTTF____________

MTTF + MTTR= =Verfügbarkeit

MTTR

Verfügbarkeit steigern durch Verkürzung der durchschnittlichen Reparaturdauer

Total Costs of Ownership (Kosten für Anschaffung und laufenden Betrieb) verringern

Page 9: Recovery-Oriented Computing

„If a problem has no solution, it may not be a problem, but a fact, not to be solved, but to be coped with over time“

– Shimon Peres

Page 10: Recovery-Oriented Computing

Konsequenz aus Peres` Gesetz

Fehler als Fakten akzeptieren Mentalität für Fehlerbehebung statt

Fehlervermeidung Entwicklung von Techniken zur

schnelleren Fehlererkennung und -behebung, um Fehlern gewachsen zu sein

„If a problem has no solution, it may not be a problem, but a fact, not to be solved, but to be coped with over time“

Page 11: Recovery-Oriented Computing

Einleitung Motivation Ziele des Recovery-Oriented Computing Peres` Gesetz

Techniken des Recovery-Oriented Computing Redundanz und Isolation Rekursive Neustarts Selbsttest und Verifikation im laufenden Betrieb Unterstützung zur Problemdiagnose Reversible Systeme

ROC in Forschungs- und Anwendungssystemen ROC-Techniken in DBMS Mercury Satellitensystem Pinpoint ROC-1: ROC auf Hardwareebene Undofähiges E-mail-System

Zusammenfassung

Page 12: Recovery-Oriented Computing

Redundanz und Isolation

RedundanzZusätzliche Software- und

Hardwarekomponenten, sowie zusätzliche Verbindungen zwischen den Komponenten

DatenkopienVermeidung eines „single point of failure“

Page 13: Recovery-Oriented Computing

Redundanz und Isolation

Isolation Partitionierung im System, mehrere Komponenten

bilden Partition Partitionen beeinflussen sich nicht untereinander Fehler auf Partition begrenzen, Verbreitung

verhindern Inkrementeller Systemupgrade,

Komponentenaustausch ohne System herunterzufahren, Trainings- und Testsystem auf eigener Partition

Page 14: Recovery-Oriented Computing

Rekursive Neustarts

Vorteile von Neustarts: Behebung von Heisenbugs Rückführung in bekannten und ausgiebig getesteten Zustand

Vorteile von Neustarts auf mehreren Ebenen (Rekursive Neustarts), feine Partitionierung vorausgesetzt: Erhöhte Fehlertoleranz Verringerung der MTTR des Systems

Zwei Ansätze: Wiederbelebung: Neustart fehlerhafter Komponenten Verjüngung: prophylaktischer Neustart funktionierender

Komponenten

Page 15: Recovery-Oriented Computing

Selbsttest und Verifikation im laufenden Betrieb Erkennen latenter Soft- und Hardwarefehler Test der Fehlerbehandlungs- und

Recoveryprozeduren Test der konkreten Zusammenstellung von

Anwendungen, Betriebssystem, Treibern und Hardware beim Benutzer vor Ort

Fehlerinjektion zur Operatorschulung

Page 16: Recovery-Oriented Computing

Unterstützung zur Problemdiagnose Fehler nicht verbergen Interfaces für Fehlerberichte an allen

Komponenten Fehlerinformationen im ganzen System bekannt

machen Logging von Fehlern

Früherkennung von Fehlern Unterstützung der Fehleranalyse ex post

Page 17: Recovery-Oriented Computing

Reversible Systeme

Umsetzung des Undo-Konzepts auf Systemebene

Unterstützung menschlichen Vorgehens bei FehlerbehebungTrial & ErrorRetroaktive Reparatur (3R Undo)

Page 18: Recovery-Oriented Computing

3R Undo: Rewind, Repair, Replay

Rewind Systemzustand (Benutzer-, Anwendungs- und

Betriebssystemdaten) auf früheren Zeitpunkt zurücksetzen

Repair Änderungen am System durch den Operator oder

Unterlassen einer Aktion Replay

Undo-System führt alle Endbenutzer-Interaktionen, im übersprungenen Zeitraum, nochmals aus

Page 19: Recovery-Oriented Computing

3R Undo: Rewind, Repair, Replay

Tracking Erfassung der Intention bei Benutzerinteraktionen,

kein Tracking der Reparaturschritte über verbenbasierte Protokolle

Externe Inkonsistenzen Kompensation Undo über Systemgrenzen ausdehnen Ignorieren

Feingliederung des Undo Verschiedene Zeitlinien Abhängigkeiten zwischen zu trackenden Daten

(shared state)

Page 20: Recovery-Oriented Computing

3R Undo Systemarchitektur

Undo Proxy

User

Undo Manager

Control UI

Timeline Log

Time-travel Storage

Service Application

• user state

• application

• OS

verbs

controlVerben-Fluss

Verbenfluss beim Replay

Page 21: Recovery-Oriented Computing

Aktueller Forschungs- und Entwicklungsstand Prototypen auf Soft- und Hardwareebene Viele Ansätze mit Teilen der ROC-Philosophie

bereits existent Weitere anwendungsbezogene Forschung nötig Erfolg von recovery-oriented Soft- und Hardware

auf dem Markt bleibt abzuwarten

Page 22: Recovery-Oriented Computing

Einleitung Motivation Ziele des Recovery-Oriented Computing Peres` Gesetz

Techniken des Recovery-Oriented Computing Redundanz und Isolation Rekursive Neustarts Selbsttest und Verifikation im laufenden Betrieb Unterstützung zur Problemdiagnose Reversible Systeme

ROC in Forschungs- und Anwendungssystemen ROC-Techniken in DBMS Mercury Satellitensystem Pinpoint ROC-1: ROC auf Hardwareebene Undofähiges E-mail-System

Zusammenfassung

Page 23: Recovery-Oriented Computing

ROC-Techniken in DBMS

Transaktionen mit ACID-Eigenschaften Logging Sicherungspunkte Backups

Page 24: Recovery-Oriented Computing

Mercury Satellitensystem

Bodenstation der Universität von Stanford zur Kommunikation mit Forschungssatelliten

COTS-Technologie (commercial off-the-shelf), Programmiersprache Java, jede Komponente läuft in eigener Java Virtual Machine

Architektur:

fedrcom ses str rtu

mbus

REC FD

Communication (TCP/IP)

Fehlererkennung(liveness pings)

Neustarts

Page 25: Recovery-Oriented Computing

Pinpoint

Anwendungsbereich: große komplexe dynamische Systeme

Zwei automatisierte PhasenLive TracingData Clustering

Page 26: Recovery-Oriented Computing

ROC-1: ROC auf Hardwareebene

Hoch verfügbares Clustersystem für Internet Server Anwendungen

Aufbau: 64 Knoten (bricks)

Pentium-II-Mobile-Prozessor (266MHz) 18 GB Festplatte 256 MB fehler korrigierendes DRAM 4 redundante 100 Mb/s-Netzwerkkarten 18MHz-Motorola-Diagnoseprozessor

16 First-Level-Switches 2 Gigabit-Switches

Page 27: Recovery-Oriented Computing

ROC-1: ROC auf Hardwareebene

Höheres Prozessor/Festplatte-Verhältnis Diagnose Subsystem Angewandte ROC-Techniken:

Redundanz und IsolationSelbsttest und Verifikation im laufenden

Betrieb Unterstützung zur ProblemdiagnoseDesign für Interaktion mit Mensch

Page 28: Recovery-Oriented Computing

Undo-fähiges E-mail-System

Prototyp der Universität von Berkeley SMTP und erweitertes IMAP-Protokoll Overhead

Geringfügig längere Sessions Zusätzlicher Speicherbedarf

Performance Rewind: etwa 590 Sekunden für System mit 10000

Benutzern Replay: 8,8 Verben pro Sekunde

Page 29: Recovery-Oriented Computing

Einleitung Motivation Ziele des Recovery-Oriented Computing Peres` Gesetz

Techniken des Recovery-Oriented Computing Redundanz und Isolation Rekursive Neustarts Selbsttest und Verifikation im laufenden Betrieb Unterstützung zur Problemdiagnose Reversible Systeme

ROC in Forschungs- und Anwendungssystemen ROC-Techniken in DBMS Mercury Satellitensystem Pinpoint ROC-1: ROC auf Hardwareebene Undofähiges E-mail-System

Zusammenfassung

Page 30: Recovery-Oriented Computing

Zusammenfassung

Integration des Menschen in den Recovery-Prozess?

ROC als neuer Grundsatz für die Entwicklung von Anwendungssystemen?

Schnelle Reparatur – (k)ein Freibrief für fehlerhafte Software?