FlipServer implementiert echtes Hochverfügbarkeitsstreben nach fünf Neunen für kritische Systeme in der Public Cloud

Hochverfügbarkeit (HA) in Public Clouds

Hochverfügbarkeit (HA) ist die Fähigkeit eines Systems, für einen bestimmten Zeitraum kontinuierlich zu arbeiten, ohne dass es zu einem Ausfall kommt. HA arbeitet daran, sicherzustellen, dass ein System einem vereinbarten Betriebsleistungsniveau entspricht. In der Informationstechnologie (IT) wird ein weit verbreiteter, aber schwer zu erreichender Verfügbarkeitsstandard als Five-Nines-Verfügbarkeit bezeichnet, was bedeutet, dass das System oder Produkt zu 99,999 % der Zeit verfügbar ist.

Hochverfügbare Systeme müssen vor ihrem Einsatz gut konzipiert und gründlich getestet werden. Die Planung für eines dieser Systeme setzt voraus, dass alle Komponenten den gewünschten Verfügbarkeitsstandard erfüllen. Datensicherungs- und Failover-Funktionen spielen eine wichtige Rolle, um sicherzustellen, dass HA-Systeme ihre Verfügbarkeitsziele erreichen. Systementwickler müssen auch der von ihnen verwendeten Datenspeicher- und Zugriffstechnologie besondere Aufmerksamkeit schenken.

Wie funktioniert Hochverfügbarkeit?

Es ist unmöglich, dass Systeme zu 100 % verfügbar sind, daher streben echte Hochverfügbarkeitssysteme im Allgemeinen fünf Neunen als Standard für die Betriebsleistung an.

Die folgenden drei Prinzipien werden beim Design von HA-Systemen verwendet, um eine hohe Verfügbarkeit zu gewährleisten:

  • Single Points of Failure. Ein Single Point of Failure ist eine Komponente, die bei einem Ausfall das gesamte System zum Ausfall bringen würde. Wenn ein Unternehmen über einen Server verfügt, auf dem eine Anwendung ausgeführt wird, ist dieser Server ein Single Point of Failure. Sollte dieser Server ausfallen, ist die Anwendung nicht verfügbar.
  • Zuverlässige Frequenzweiche. Der Einbau von Redundanz in diese Systeme ist ebenfalls wichtig. Redundanz ermöglicht es einer Backup-Komponente, für eine ausgefallene zu übernehmen. In diesem Fall muss ein zuverlässiges Crossover oder Failover sichergestellt werden, bei dem es sich um den Wechsel von Komponente X zu Komponente Y handelt, ohne Daten zu verlieren oder die Leistung zu beeinträchtigen.
  • Fehlererkennung. Fehler müssen sichtbar sein und im Idealfall verfügen die Systeme über eine integrierte Automatisierung, um den Fehler selbst zu behandeln. Es sollten auch integrierte Mechanismen zur Vermeidung von Ausfällen aufgrund gemeinsamer Ursache vorhanden sein, bei denen zwei oder mehr Systeme oder Komponenten gleichzeitig ausfallen, wahrscheinlich aus derselben Ursache.

Um eine hohe Verfügbarkeit zu gewährleisten, wenn viele Benutzer auf ein System zugreifen, ist ein Lastausgleich erforderlich. Der Lastenausgleich verteilt automatisch Workloads auf Systemressourcen, z. B. das Senden verschiedener Datenanforderungen an verschiedene Dienste, die in einer Hybrid-Cloud-Architektur gehostet werden. Der Load Balancer entscheidet, welche Systemressource welche Arbeitslast am effizientesten bewältigen kann. Die Verwendung mehrerer Load Balancer dafür stellt sicher, dass keine Ressource überlastet wird.

Die Server in einem HA-System sind in Clustern und in einer abgestuften Architektur organisiert, um auf Anforderungen von Load Balancern zu reagieren. Wenn ein Server im Cluster ausfällt, kann ein replizierter Server in einem anderen Cluster die für den ausgefallenen Server bestimmte Arbeitslast verarbeiten. Diese Art von Redundanz ermöglicht ein Failover, bei dem eine sekundäre Komponente den Job einer primären Komponente übernimmt, wenn die erste Komponente ausfällt, mit minimalen Leistungseinbußen.

Je komplexer ein System ist, desto schwieriger ist es, eine hohe Verfügbarkeit sicherzustellen, denn in einem komplexen System gibt es einfach mehr Points of Failure.

Warum ist Hochverfügbarkeit wichtig?

Systeme, die die meiste Zeit in Betrieb sein müssen, sind oft solche, die die Gesundheit, das wirtschaftliche Wohlergehen und den Zugang zu Nahrung, Unterkunft und anderen Lebensgrundlagen beeinträchtigen. Mit anderen Worten, es handelt sich um Systeme oder Komponenten, die schwerwiegende Auswirkungen auf ein Unternehmen oder das Leben von Menschen haben, wenn sie unter ein bestimmtes Betriebsleistungsniveau fallen.

Beispiel: Wie bereits erwähnt, sind autonome Fahrzeuge klare Kandidaten für HA-Systeme. Wenn beispielsweise der nach vorne gerichtete Sensor eines selbstfahrenden Autos ausfällt und die Seite eines 18-Rads mit der Straße verwechselt wird, stürzt das Auto ab. Obwohl das Auto in diesem Szenario funktionsfähig war, führte das Versagen einer seiner Komponenten, die erforderliche Betriebsleistung zu erbringen, zu einem wahrscheinlich schweren Unfall.

Wie die Verfügbarkeit gemessen wird

Die Verfügbarkeit kann relativ dazu gemessen werden, dass ein System zu 100 % betriebsbereit ist oder nie ausfällt – d. h. es gibt keine Ausfälle. Normalerweise wird ein Verfügbarkeitsprozentsatz wie folgt berechnet:
Verfügbarkeit = (Minuten in einem Monat - Minuten Ausfallzeit) * 100/Minuten in einem Monat

Die folgenden drei Metriken zur Messung der Verfügbarkeit sind:
Mittlere Zeit zwischen Ausfällen (MTBF) ist die erwartete Zeit zwischen zwei Ausfällen für das gegebene System.
Mittlere Ausfallzeit (MDT) ist die durchschnittliche Zeit, die ein System nicht betriebsbereit ist.
Recovery Time Objective (RTO), auch als geschätzte Reparaturzeit bezeichnet, ist die Gesamtzeit, die ein geplanter Ausfall oder eine Wiederherstellung nach einem ungeplanten Ausfall dauern wird.

Diese Metriken können für Inhouse-Systeme oder von Service Providern verwendet werden, um Kunden ein bestimmtes Service-Level gemäß einem Service-Level-Agreement (SLA) zu versprechen. SLAs sind Verträge, die den Verfügbarkeitsprozentsatz angeben, den Kunden von einem System oder Service erwarten können.

Verfügbarkeitsmetriken unterliegen der Interpretation, was die Verfügbarkeit des Systems oder Dienstes für den Endbenutzer ausmacht. Selbst wenn Systeme teilweise weiterhin funktionieren, können Benutzer sie aufgrund von Leistungsproblemen für unbrauchbar halten. Trotz dieser Subjektivität werden Verfügbarkeitsmetriken konkret in SLAs formalisiert, für deren Erfüllung der Service Provider oder das System verantwortlich ist.

Wenn ein System oder SLA eine Verfügbarkeit von 99,999 % bietet, kann der Endbenutzer damit rechnen, dass der Dienst für die folgenden Zeiträume nicht verfügbar ist: Um Kontext bereitzustellen, wird ein Unternehmen, das den Drei-Neun-Standard (99,9 %) einhält, etwa 8 Stunden und 45 Minuten Systemstillstand im Jahr. Ausfallzeiten mit einem Zwei-Neunen-Standard sind noch dramatischer; Eine Verfügbarkeit von 99 % entspricht etwas mehr als drei Tagen Ausfallzeit im Jahr.

So erreichen Sie eine hohe Verfügbarkeit

Die sechs Schritte zum Erreichen einer hohen Verfügbarkeit lauten wie folgt:

  • Entwerfen Sie das System unter Berücksichtigung von HA. Das Ziel des Entwurfs eines HA-Systems besteht darin, ein System zu erstellen, das Leistungskonventionen einhält und gleichzeitig Kosten und Komplexität minimiert. Fehlerquellen sollten bei Bedarf durch Redundanz beseitigt werden.
  • Definieren Sie die Erfolgskennzahlen. Es ist notwendig, den Grad der Verfügbarkeit zu bestimmen, den das System benötigt, und welche Metriken verwendet werden, um sie zu messen. Service Provider beziehen Kunden über ein SLA in diesen Prozess ein.
  • Stellen Sie die Hardware bereit. Hardware sollte belastbar sein und Qualität mit Kosteneffizienz in Einklang bringen. Hot-Swap- und Hot-Plug-fähige Hardware ist in HA-Systemen besonders nützlich, da die Hardware nicht ausgeschaltet werden muss, wenn sie ausgetauscht oder Komponenten ein- oder ausgesteckt werden.
  • Testen Sie das Failover-System. Sobald das System in Betrieb ist, sollte das Failover-System überprüft werden, um sicherzustellen, dass es im Falle eines Fehlers zur Übernahme bereit ist. Anwendungen sollten im Laufe der Zeit getestet und erneut getestet werden, und es sollte ein Testplan erstellt werden.
  • Überwachen Sie das System. Die Leistung des Systems sollte anhand von Metriken und Beobachtungen verfolgt werden. Jede Abweichung von der Norm muss protokolliert und bewertet werden, um festzustellen, wie das System betroffen war und welche Anpassungen erforderlich sind.
  • Bewerten. Analysieren Sie die aus der Überwachung gesammelten Daten und finden Sie dann Möglichkeiten zur Verbesserung des Systems. Stellen Sie weiterhin die Verfügbarkeit sicher, wenn sich die Bedingungen ändern und sich das System weiterentwickelt.

Hohe Verfügbarkeit und Fehlertoleranz

Wie DR trägt auch die Fehlertoleranz dazu bei, eine hohe Verfügbarkeit sicherzustellen. Fehlertoleranz ist die Fähigkeit eines Systems, Fehler in den Funktionen des Systems zu ertragen, zu antizipieren und im Fehlerfall automatisch zu reagieren. Ein fehlertolerantes System erfordert Redundanz, um Störungen im Falle eines Hardwarefehlers zu minimieren.

Um Redundanz zu erzielen, sollten IT-Organisationen eine N+1-, N+2-, 2N- oder 2N+1-Strategie verfolgen. N steht für die Anzahl der Server, die zum Beispiel benötigt werden, um das System am Laufen zu halten. Ein N+1-Modell erfordert alle Server, die zum Ausführen des Systems erforderlich sind, plus einen zusätzlichen. Ein 2N-Modell würde doppelt so viele Server benötigen, wie das System normalerweise benötigt. Ein 2N + 1-Ansatz bedeutet doppelt so viele Server wie Sie benötigen plus einen weiteren. Diese Strategien stellen sicher, dass geschäftskritische Komponenten mindestens ein Backup erhalten.

Es ist möglich, dass ein System hochverfügbar, aber nicht fehlertolerant ist. Wenn beispielsweise bei einem HA-System ein Problem beim Hosten einer virtuellen Maschine auf einem Server in einem Knotencluster auftritt, das System jedoch nicht fehlertolerant ist, versucht der Hypervisor möglicherweise, die VM im selben Hostcluster neu zu starten. Dies wird wahrscheinlich erfolgreich sein, wenn das Problem softwarebasiert ist. Wenn das Problem jedoch mit der Hardware des Clusters zusammenhängt, wird das Problem durch einen Neustart im selben Cluster nicht behoben, da die VM im selben defekten Cluster gehostet wird.

Ein fehlertoleranter Ansatz in derselben Situation würde wahrscheinlich eine N+1-Strategie verwenden und die VM auf einem anderen Server in einem anderen Cluster neu starten. Fehlertoleranz garantiert eher null Ausfallzeiten. Eine DR-Strategie würde noch einen Schritt weiter gehen, um sicherzustellen, dass im Katastrophenfall eine Kopie des gesamten Systems an anderer Stelle zur Verfügung steht.

Best Practices für Hochverfügbarkeit

Ein hochverfügbares System sollte in der Lage sein, sich schnell von jedem Fehlerzustand zu erholen, um Unterbrechungen für den Endbenutzer zu minimieren. Zu den Best Practices für Hochverfügbarkeit gehören die folgenden:

  • Eliminieren Sie einzelne Fehlerquellen oder Knoten, die das System beeinträchtigen könnten, wenn es funktionsunfähig wird.
  • Stellen Sie sicher, dass alle Systeme und Daten für eine schnelle und einfache Wiederherstellung gesichert werden.
  • Verwenden Sie den Lastenausgleich, um Anwendungs- und Netzwerkverkehr auf Server oder andere Hardware zu verteilen. Ein Beispiel für einen redundanten Load Balancer ist HAProxy.
  • Überwachen Sie kontinuierlich den Zustand von Back-End-Datenbankservern.
  • Verteilen Sie Ressourcen bei Stromausfällen oder Naturkatastrophen in verschiedenen geografischen Regionen.
  • Implementieren Sie zuverlässiges Failover. In Bezug auf Speicher sind ein redundantes Array unabhängiger Festplatten (RAID) oder ein Storage Area Network (SAN) gängige Ansätze.
  • Richten Sie ein System ein, das Fehler erkennt, sobald sie auftreten.
  • Entwerfen Sie Systemteile auf Hochverfügbarkeit und testen Sie ihre Funktionalität vor der Implementierung

Hochverfügbarkeit und die Cloud

Wie oben erwähnt, hat hohe Verfügbarkeit ein subjektives Element. Je nach System variiert die erforderliche Betriebszeit. Beim Cloud Computing ist der Servicegrad besonders variabel.

Der FlipServe Cloud-Dienst bietet eine Verfügbarkeit von mindestens 99,9 % für seine HA-Dienste; in jüngerer Zeit, und es gibt einige Anwendungen, bei denen wir eine Verfügbarkeit von 99,99 % erreichen können. Bleibt die Frage, welche Anwendungen diese Verfügbarkeit benötigen?