RAC, Data Guard und Co

Hochverfügbarkeitstechnologien im Oracle-Umfeld sind unser Steckenpferd: Oracle Real Application Clusters (RAC), Oracle Failsafe, Standby Datenbanken / Data Guard, Flashback und Replikation (Snapshot und Multimaster) sind Schwerpunkte unserer Arbeit.

Begriffsbestimmung

Verfügbarkeit und Hochverfügbarkeit, Fehlertoleranz und SPOF Fs (Single Point of Failure ) sind Begriffe, die im Umfeld hochverfügbarer Systeme eine grundlegende Rolle spielen.

Verfügbarkeit und Hochverfügbarkeit

Verfügbarkeit und Hochverfügbarkeit, Fehlertoleranz und SPOFs (Single Point of Failures ) sind Begriffe, die im Umfeld hochverfügbarer Systeme eine grundlegende Rolle spielen.

Als Verfügbarkeit wird die Wahrscheinlichkeit, dass ein System innerhalb eines spezifizierten Zeitraums funktionstüchtig (verfügbar) ist, bezeichnet. Die Verfügbarkeit wird als Verhältnis aus Downtime und Uptime eines Systems bemessen:

 

 Verfügbarkeit = Uptime / (Downtime + Uptime)

 

Ein System gilt als hochverfügbar, wenn eine Anwendung auch im Fehlerfall weiterhin verfügbar ist und ohne unmittelbaren menschlichen Eingriff weiter genutzt werden kann. In der Konsequenz heißt dies, dass der Anwender keine oder nur eine kurze Unterbrechung wahrnimmt. Hochverfügbarkeit (abgekürzt auch HA, abgeleitet von engl. High Availability) bezeichnet also die Fähigkeit eines Systems, bei Ausfall einer seiner Komponenten einen uneingeschränkten Betrieb zu gewährleisten.

Definition

Die Definition des Begriffes High Availability durch das Institute of Electrical and Electronics Engineers (IEEE) lautet:  “Availability of resources in a computer system, in the wake of component failures in the system.”

Die Harvard Research Group bezieht den Begriff Hochverfügbarkeit auf den prozentualen Wert der Verfügbarkeit. Verfügbarkeit wird in so genannte Verfügbarkeitsklassen [HRG_2002] unterteilt. Nach dieser Klassifizierung wird ab einer Verfügbarkeit von mindestens 99,99 Prozent ein System als hochverfügbar bezeichnet.

Hochverfügbare Datenbanksysteme

Es ist naheliegend, dass die Erhöhung der Verfügbarkeit bis hin zur Hochverfügbarkeit durch die Verringerung von Downtimes realisiert wird. Downtimes können geplant sein: Man denke nur an Wartungsfenster für Hardware- und Software-Upgrades. Ungeplante Downtimes dagegen resultieren meist aus Fehlern. Letztere werden im Rahmen hochverfügbarer Systeme durch fehlertolerante Hard- und Software sowie durch Vermeidung von SPOFs so aufgefangen, dass das System auch im Fehlerfall verfügbar bleibt.
HA-Architekturen verfügen meist über folgende Eigenschaften

  • Toleranz und Transparenz gegenüber Fehlern
  • Präventive Build In Funktionalitäten
  • Proaktives Monitoring und schnelle Fehlererkennung
  • Schnelle Wiederherstellungsmöglichkeiten
  • Automatisierte Wiederherstellung ohne administrative Eingriffe
  • Kein oder geringer Datenverlust

In hochverfügbaren Systemen müssen geplante und ungeplante Downtimes reduziert werden. Um geeignete Maßnahmen treffen zu können, müssen Systemausfälle und deren Gründe kategorisiert werden. Je nach Typ einer Downtime sind unter Umständen grundlegend andere Verfahren zur Vermeidung derselben geeignet.

Technologien wir ORACLE Real Application Clusters (RAC), ORACLE Data Guard und ORACLE Streams bieten hier ausgereifte Ansatzmöglichkeiten.
 

Fehlertoleranz

Mögliche Gründe für Fehler und daraus folgende Systemausfälle sind vielfältig. Ein fehlertolerantes System erlaubt Fehler und vermag mit diesen umzugehen. Fehlertolerante Systeme müssen auf nahezu alle erdenklichen Fehlerursachen reagieren können. Erreicht wird dies durch intelligente Software in Kombination mit einer Eliminierung von SPOFs (Single Point Of Failure).

Als SPOFwird eine Komponente bezeichnet, die im System nur einmal vorhanden und die für die korrekte, sichere und zuverlässige Funktionsfähigkeit des Gesamtsystems zwingend erforderlich ist. Nicht nur Speicher- und Rechnerkomponenten, auch das Design des Netzwerkes und der Speichertechnik können einen SPOF darstellen. Beispielsweise besteht das Netzwerk nicht selten aus einer Vielzahl abgestimmter Komponenten. Oftmals ist der Backend-Server zwar durch einen Failover Cluster aus miteinander vernetzten Rechnerknoten abgesichert, so dass bei Ausfall eines Rechners ein anderer dessen Aufgabe übernimmt. Allerdings hängen die Clusterknoten manchmal am gleichen Netzwerkswitch. Fällt dieser aus, nützt auch der Cluster als Schutzmaßnahme nichts: Der Service ist nicht verfügbar. Die verfügbarkeitssteigernden Maßnahmen auf Systemebene sind in diesem Fall unwirksam.

Redundanzen im System

Das Mittel zur Eliminierung eines SPOF ist das Herstellen von Redundanz. Korrekt konfigurierte redundante Komponenten stellen sicher, dass bei Ausfall einer einzelnen Komponente andere des gleichen Typs die Aufgaben übernehmen können. Jede Hardwarekomponente in einem Computersystem, wie beispielsweise SCSI Adapter, Festplatte, Netzwerkkarte oder Netzteil des Rechners sollte deshalb mindestens zweimal vorhanden sein. Um die Verfügbarkeit für den Endanwender garantieren zu können, muss das System für den Nutzer auch erreichbar sein. Aus diesen Gründen werden häufig selbst alle Netzwerkkomponenten wie Router und Switches redundant ausgelegt.
Dennoch kann der Rechner als ganzes ausfallen. Bei erhöhten Verfügbarkeitsanforderungen muss daher auch die gesamten Rechnerhardware redundant – z.B. in Form eines Standby Systems – gehalten werden. Fällt ein Rechner aus, übernimmt der andere.
Redundant ausgelegte Rechnersysteme nutzen jedoch wenig, wenn eine andere Komponente einen SPOF bildet. So ist häufig die Stromversorgung ein wichtiger Punkt, der gerne vergessen wird. Das Datacenter von IXEurope zum Beispiel verfügte im Jahr 2004 über mehrfach redundante Anbindungen von bis zu einem Dutzend unabhängigen Carrier und gewährleistete damit eine 99,999prozentige Stromversorgung. Im Falle eines partiellen Netzausfalles kann der Kunde in solchen Konfigurationen innerhalb kurzer Zeit auf einen alternativen Carrier umgeschaltet werden.

Hardware Fehlertoleranz

Fehlertoleranz kann durch Hardware unterstützt werden. Ein gutes Beispiel ist die Fehlertoleranz eines RAID 1 Storage. Hier werden Daten über Plattenspiegelung redundant, also „mehrfach“ auf physisch unterschiedlichen Platten gespeichert. Fällt eine Festplatte aus, so hat dies zunächst keinen Einfluss auf die Verfügbarkeit des Gesamtsystems. Der Festplattenspiegel fängt diesen Fehler auf. Der Ausfall bleibt für den Benutzer in der Regel transparent, er wird für ihn also nicht sichtbar. Verfügbare RAID Level sowie deren Anwendumfeld sind ausführlich auf Seite 59 in Abschnitt 3.5.3 „RAID“ beschrieben.

Software Fehlertoleranz

Software Fehlertoleranz wird häufig mit den bereits genannten Methoden der Hardware-Redundanz kombiniert: Damit eine Anwendung auch nach einem Failover korrekt weiterverarbeiten kann, muss diese in der Regel auf eine Fehlersituation reagieren können. So entsteht bei einem Failover in einem Cluster ein zumindest vorübergehender Verbindungsverlust. In der Regel geht dies mit einem Verlust offener Transaktionen einher. Eine Anwendung muss also in der Lage sein, dies zu erkennen und gegebenenfalls zurückgerollte Verarbeitungsschritte nach einem Wechsel der Verbindung auf das Ersatzsystem nachzuholen.

Hybride Verfahren

Im Rahmen von Clustersystemen, bei denen ein ganzes Rechnersystem redundant vorgehalten wird, wird Fehlertoleranz in einer Kombination aus Hardware und intelligenter Software bereitgestellt. Hier wird zum einen die hardwareseitige, redundante Auslegung eines Gesamtsystems genutzt, andererseits spielen aber auch Softwarekomponenten eine herausragende Rolle. So ist die Clustersoftware für die Erkennung eines Systemausfalls, die nachfolgende Fehlerbehandlung und erneute Bereitstellung der Dienste verantwortlich. Durch eine automatische Wiederherstellung der Betriebsfähigkeit eines Systems wird hier die Systemverfügbarkeit ohne menschlichen Eingriff wiederhergestellt. Idealerweise sollten hierbei kein Daten- oder Verbindungsverluste entstehen.

Kontakt

Sie benötigen Unterstützung in einem der oben genannten Themen? Sprechen Sie uns an!

Andrea Held

info@~@held-informatik.de