Suchen

Fehlertolerante Server unter Linux Open Source ohne GAU

| Autor / Redakteur: Ulrich Lenz / Dipl.-Ing. (FH) Andreas Donner

Hochverfügbare Server sind für unternehmenskritische Aufgaben unverzichtbar. Auf der Linux-Plattform wurden solche Systeme bisher meist durch Cluster realisiert. Seit kurzem sind auch fehlertolerante Linux-Server verfügbar, die eine noch höhere Ausfallsicherheit bieten.

Firma zum Thema

Verteilung der Ursachen von Systemausfällen
Verteilung der Ursachen von Systemausfällen
( Archiv: Vogel Business Media )

Viele Systemausfälle lassen sich durch einfache organisatorische Maßnahmen auffangen: Manchmal reicht schon die Verlegung der Mittagspause oder ein kurzfristig einberufenes Meeting, um die Beeinträchtigungen eines Bürobetriebs und die wirtschaftlichen Einbußen im erträglichen Rahmen zu halten. Schließlich muss man ja nicht ununterbrochen vor dem Computer sitzen.

Bei unternehmenskritischen Systemen sieht das freilich anders aus: Wenn ein Online-Bestellsystem, eine Kassenlösung oder ein Logistik-Server ausfällt, sind zentrale Geschäftsprozesse unterbrochen und da hilft dann auch keine verlängerte Mittagspause weiter: Massive Einbußen sind unvermeidlich – und mancher Kunde war nie wieder gesehen.

Bildergalerie

Wachsende IT-Abhängigkeit

Generell hat die Zahl der „Mission-Critical-Systeme“ stark zugenommen, denn alle Unternehmen sind heute mehr oder weniger vollständig vom Funktionieren ihrer IT abhängig. System-Ausfälle mögen dank einer immer zuverlässiger werdenden Technik mittlerweile selten sein, auszuschließen sind sie jedoch nie. Und wenn sie eintreten, können die Folgen verheerend sein – manches Unternehmen hat sich von einem IT-Gau nie wieder erholt. Die hohen Verfügbarkeitswerte von bis zu 99,9%, die heute schon mit Billig-Servern möglich sind, dürfen nicht darüber hinwegtäuschen, dass diese 99,9% eine durchschnittliche jährliche Ausfallzeit von fast neun Stunden bedeuten. Für unternehmenskritische Anwendungen ist das nicht tragbar.

Die Lösung bieten hochverfügbare Systeme, die ihre Anwendungen auch im Fehlerfall oder bei von außen einwirkenden Störungen ohne Beeinträchtigung der Geschäftsprozesse fortführen können. Dass für unternehmenskritische Anwendungen Hochverfügbarkeit erforderlich ist, wird heute kaum mehr bestritten – offen bleibt wie „hoch“ die Verfügbarkeit sein muss und durch welche technischen Mittel sie erreicht werden kann.

Dabei ist eines aber immer klar: Hochverfügbarkeit hat nicht nur eine technische, sondern immer auch eine betriebswirtschaftliche Dimension. Die Kosten für die Verfügbarkeit steigen nämlich überproportional mit zunehmendem Verfügbarkeits-Grad. Der Anwender hat daher immer die Kosten seines individuelle Betriebsrisikos mit den Kosten der Hochverfügbarkeits-Lösungen zu vergleichen.

Wie hoch ist hochverfügbar?

Hochverfügbarkeit (HA – High Availability) ist ein dehnbarer Begriff, der sich zudem bei Erwärmung durch das Marketing in alle Richtungen strecken lässt. So besitzen manche „hochverfügbare“ Systeme lediglich ein zweites Netzteil, bei anderen handelt es sich dagegen um millionenschwere Mainframe-Speziallösungen. Gemäß der Availability Enviroment Classification (AEC) der Harvard Research Group lassen sich HA-Systeme in sechs Klassen einteilen, die häufig auch in Service-Level-Agreements Eingang finden:

  • AEC-0 – Conventional: Geschäftsprozesse können unterbrochen werden, die Integrität der Daten muss nicht sichergestellt werden; Geschäftsprozesse werden nach der Störung einfach neu gestartet
  • AEC-1 – Highly Reliable: Geschäftsprozesse können unterbrochen werden, aber die Konsistenz der Daten muss gewährleistet sein
  • AEC-2 – High Availability: Geschäftsprozesse dürfen im produktiven Betrieb geringfügig unterbrochen werden, unter Umständen müssen laufende Transaktionen neu gestartet werden
  • AEC-3 – Fault Resilient: Geschäftsprozesse müssen ohne Unterbrechung verfügbar sein, Transaktionen bleiben immer erhalten; geplante Unterbrechungen sind für Wartungsarbeiten außerhalb der Hauptbetriebszeiten möglich
  • AEC-4 – Fault Tolerant: Geschäftsprozesse müssen ununterbrochen, ohne Transaktionsverlust und ohne Leistungseinbußen gewährleistet sein (7x24-Stunden-Betrieb); der Betrieb muss sich auch während Wartungsarbeiten uneingeschränkt aufrechterhalten lassen
  • AEC-5 – Disaster Tolerant: Geschäftsprozesse müssen unter allen Umständen verfügbar sein; diese HA-Klasse bleibt in der Praxis „lebenswichtigen“, technischen Systemen vorbehalten, beispielsweise der Flugsicherung, der Steuerung von Kraftwerken oder militärischen Systemen

Für unternehmenskritische Systeme kommen natürlich nur die Klassen AEC-2 bis AEC-4 in Frage. Welches HA-Niveau jeweils passend ist, hängt von der Art der Aufgabe und damit auch davon ab, welche Kosten der Betreiber für angebracht hält. Auch für unternehmenskritische Anwendungen schwanken die Kosten für Ausfälle je nach Unternehmen und Branche beträchtlich, sie können bis zu einigen Millionen Euro pro Stunde Systemausfall reichen, zum Beispiel beim Online-Broking oder bei der Kreditkartenabrechnung.

Ursachen für Ausfälle

Die Ursachen für Ausfälle sind natürlich vielfältig. Sie können in den Servern selbst liegen, in den Speicher-Systemen, in den Komponenten der Infrastruktur, beispielsweise in Routern, Switches oder Kabeln. aber auch in relativ IT-fernen Systemen wie der Stromversorgung, Klimaanlage usw. Technische Störungen lassen sich durch den Einbau besonders hochwertiger, robustere Bauteile oder durch „normale“, aber redundante Komponenten begrenzen. Heute geht man üblicherweise den zweiten Weg, weil zum einen die handelsüblichen Komponenten technisch ohnehin sehr ausgereift sind, und zum anderen weil die Verwendung aufgewerteter Bauteile neben den höheren Kosten auch das Risiko proprietärer Technologien bedingt. Durch Redundanz lassen sich SPOF-Störungen (Single Point of Failure – Störungen einer Komponente, die zu einem Ausfall des Gesamtsystems führen) mit vertretbarem Aufwand reduzieren.

Eine Hauptursache für Systemausfälle liegt in den Fehlern von Betriebssystemen, Anwendungssoftware oder Treibern. Sie kann durch Qualitätssicherung der Softwareentwicklung, insbesondere aber durch die Verwendung von anerkannten Verfahren und Methoden reduziert werden. Im produktiven Betrieb lassen sich die Auswirkungen von Software-Fehlern auf die Systemverfügbarkeit durch diverse Techniken begrenzen; dazu zählen insbesondere Multi-Threading, Hot-Swap-Fähigkeit, gehärtete Treiber usw. Rund 40 Prozent der Systemausfälle gehen außerdem auf Bedienungsfehler zurück, was durch qualifiziertes Personal, durch Ausbildung und Training, vor allem aber durch weitgehende Automatisierung der Prozesse abgefangen werden kann.

Ausfallsichere Linux-Systeme

Linux-Systeme haben sich in den letzten Jahren nicht ohne Grund auch in HA-Szenarien etabliert. Sie sind deutlich kostengünstiger als Unix-Systeme mit vergleichbarer Leistung und gelten vor allem als erheblich zuverlässiger als Windows-Plattformen. Über die Wahl des Betriebssystems lässt sich also eine wesentliche Ausfallursache eindämmen.

Fand Linux anfangs vor allem bei Web-Servern sein typisches Einsatzgebiet, so hat sich dies in den letzten Jahren deutlich in Richtung „mission-critical“ erweitert. Zum einen sind durch die Veränderung von Geschäftsmodellen und -prozessen Web-Applikationen selbst geschäftskritisch geworden, beispielsweise beim Online-Shopping, das heute auch für traditionelle Versandunternehmen einen zentralen Vertriebskanal darstellt. Zum anderen konnte sich Linux auch bei Datenbank- und Anwendungsservern durchsetzen, also im angestammten Einsatzbereich von proprietären Unix-Systemen, ja sogar als Alternative zu kleinen und mittleren Mainframes.

Wer aber bei geschäftskritischen Themen mitreden will, muss natürlich auch eine Antwort auf die Frage nach der Hochverfügbarkeit haben. Für Linux lautete diese Antwort bisher fast immer: Cluster!

Cluster für Linux

Während bei Stand-by-Lösungen physikalisch und logisch separate Server in Bereitschaft stehen und im Störungsfall auf Anforderung die Arbeit übernehmen, sind beim Cluster-System zwei oder mehrere physikalisch selbstständige Rechner so gekoppelt, dass sie für den Benutzer wie ein einziger erscheinen. Fällt ein Rechner im Cluster aus, so übernimmt automatisch der jeweils andere die gesamte Last. Der Ablauf ist in etwa folgender:

  • Die Systeme des Clusters gleichen ihre Betriebszustände automatisch ab; in Linux erfolgt dies heute üblicherweise mit dem Cluster-Manager heartbeat
  • Bei Vorliegen einer Störung übernimmt das Backup-System automatisch
  • Nach Beseitigung der Störung klinkt sich der betreffende Server wieder in das Cluster-System ein und führt ein Update durch

Dabei müssen die aktiven Verbindungen vom (bisher) aktiven System auf das Backup-System transparent verlagert werden, Benutzer oder andere Geräte sollen möglichst gar nichts vom Wechsel des Servers erfahren – nach außen erscheint der Cluster immer als virtuelle Einheit. Selbstverständlich müssen die Daten auf allen beteiligten Systemen konsistent sein, gleich ob die Cluster-Server verteilte oder gemeinsame Datenspeicher nutzen.

Linux hat die Cluster-Technologie im Wesentlichen aus der Unix-Welt übernommen, wo fast jeder Hersteller auch eine entsprechende Lösung im Portfolio hat. Allerdings eignen sich Cluster nicht für jede HA-Anwendung, sondern in erster Linie für solche der AEC-2-Klasse. Da der Failover-Prozess immer eine bestimmte Zeit benötigt, beispielsweise für das Starten von Services oder das Rollback abgebrochener Transaktionen, sind Unterbrechungen des Betriebs unvermeidlich. Diese können wenige Minuten aber durchaus auch eine Stunde beragen. Außerdem ist der Betrieb von Cluster-System nicht einfach: Es sind immer mehrere separate Rechner mit jeweils eigenen Betriebssystemen zu administrieren, die Übernahme der Funktionen zwischen den Cluster-Rechnern muss durch Scripts individuell eingestellt werden, auch die Anwendungssoftware muss stets mehrfach installiert werden usw. Durch den erhebliche Administrationsaufwand entsteht auch ein erhöhtes Fehlerrisiko, das ebenfalls in die Gesamtverfügbarkeit der Systeme eingerechnet werden muss.

Fehlertolerantes Linux

Neuerdings gibt es für hochverfügbare Linux-Systeme eine Alternative zur Cluster-Technik. Die bisher nur für Windows angebotenen fehlertoleranten Server sind nun nämlich auch für Linux verfügbar. Mit diesen Systemen können die HA-Klassen AEC-03 und AEC-04 erreicht, beziehungsweise ein Verfügbarkeitsniveau von weit über 99,999 Prozent („Five Nine“) realisiert werden.

Bei fehlertoleranten Systemen, wie den Servern von Stratus, sind nicht nur einige stark beanspruchte, sondern konsequent sämtliche Hardware-komponenten doppelt vorhanden, also insbesondere auch CPU, Speicher und IO-Einheiten. Damit können sämtliche Operationen absolut simultan durchgeführt werden (Lockstep-Technologie). Sollte eine beliebige Komponente eine Fehlfunktion aufweisen, so wird der Betrieb durch die jeweilige Partnerkomponente fortgeführt. Es werden hier also nicht nur die Daten gespiegelt, sondern die kompletten Rechenoperationen. Im Störfallvermeidet man damit auch das im Cluster-System notwendige Umschalten auf einen verbundenen, aber physikalisch getrennten Server. Auch ein Neustart oder das Roll-Back von Transaktionen ist nicht erforderlich, selbst bei vollständigem CPU oder RAM-Ausfall läuft der Server ohne Unterbrechung weiter.

Fehlertolerante Server beschränken sich außerdem nicht auf das Abfangen von Hardware-Fehlern. So sorgt die Quick-Dump-Logik dafür, dass bei einem durch die Anwendungs-Software bedingten Ausfall des Betriebssystems der Server innerhalb kürzester Zeit neu gestartet wird, ohne dass dabei die für eine Analyse der Fehlerursache benötigten Informationen verloren gehen. Der Server behält eine replizierte CPU- beziehungsweise Speichereinheit offline und setzt das restliche System auf Normalbetrieb zurück. Nachdem das System und die Anwendungen wieder betriebsbereit sind, wird ein vollständiger Speicherauszug der offline geschalteten CPU- und Speichereinheit durchgeführt.

Die Verfügbarkeit fehlertoleranter Server, die ein hardwareorientiertes HA-Konzept verfolgen, liegt deutlich über der von Cluster-Systemen, die ihre HA durch die Software sicherstellen. Die ftServer von Stratus bieten heute unter Linux eine Verfügbarkeit, die noch über der von Mainframe-Systemen liegt und die damit die höchste derzeit im Markt erhältliche ist. In dieser Liga spielten bisher nur Spezialsysteme, zum Beispiel Tandem Nonstop, die sehr hohe Hardwarekosten, proprietäre Technologie und komplexe Administration aufwiesen. Allein für die Anschaffung eines fehlertoleranten Servers mit proprietärem Betriebssystem muss mit mehr als 250.000 Dollar gerechnet werden; und die Gesamtkosten können schnell die Million überschreiten, zumal die Anwendungssoftware an die proprietären Betriebssysteme angepasst werden muss

Hier verfolgen die neuen fehlertoleranten Server einen ganz anderen Ansatz, indem sie durchgängig Standard-Technologien verwenden: Linux und Intel sorgen nicht nur für erschwingliche Anschaffungskosten, sondern auch dafür, dass vorhandene Linux-Applikationen ohne Anpassung verwendet werden können. Und auch der Administrationsaufwand geht nicht über den eines normalen Linux-Systems hinaus.

Fehlertolerante Lösungen auf der Linux-Plattform können daher auch in Szenarien eingesetzt werden, in denen sie bisher aus Kostengründen nicht zum Zug kamen. Es sind damit sogar AEC-3- und AEC-4-Systeme auf Abteilungsebene oder in Filialen möglich, was bislang – wenn dergleichen überhaupt realisiert wurde – Rechenzentren vorbehalten blieb. Das Einsatzgebiet derartiger Systeme ist überall dort, wo unternehmenskritische Geschäftsprozesse unterbrechungsfrei verfügbar sein müssen: in der Logistik, im Gesundheitswesen, in der Produktion, in der Telekommunikation oder im Handel.

Artikelfiles und Artikellinks

(ID:2002010)