Hochverfügbarkeit
Die XenServer®-Hochverfügbarkeit ermöglicht es, VMs bei einem zugrunde liegenden Hardwarefehler oder dem Ausfall eines Servers automatisch neu zu starten. Hochverfügbarkeit stellt sicher, dass wichtige VMs immer in einem Ressourcenpool ausgeführt werden. Wenn die Hochverfügbarkeit aktiviert ist und einer Ihrer Server ausfällt, werden seine VMs auf anderen Servern im selben Pool neu gestartet. Diese Funktion ermöglicht die Wiederherstellung wesentlicher Dienste mit minimaler Dienstunterbrechung im Falle eines System- oder Komponentenausfalls.
Fällt der Pool-Koordinator-Server aus, wählt die XenServer-Hochverfügbarkeit einen neuen Server aus, der die Rolle des Pool-Koordinators übernimmt. Jeder Server in einem Pool kann ein Pool-Koordinator-Server sein. XenServer repliziert die Pool-Datenbank ständig über alle Knoten hinweg. Zur zusätzlichen Sicherheit sichert es die Datenbank auch auf einem freigegebenen Speicher auf dem Heartbeat-SR.
Die XenServer-Hochverfügbarkeit umfasst zwei Hauptaspekte:
- Zuverlässige Erkennung von Serverausfällen
- Berechnung eines Ausfallplans zur Ermöglichung einer schnellen Wiederherstellung
Heartbeats für die Verfügbarkeit
Die zuverlässige Erkennung von Serverausfällen ist schwierig, da man aus der Ferne zwischen einem Server, der für eine Weile verschwindet, und einem katastrophalen Ausfall unterscheiden muss. Wenn die Hochverfügbarkeit fälschlicherweise annimmt, dass ein Pool-Koordinator-Server ausgefallen ist, und einen neuen Pool-Koordinator wählt, kann es zu unvorhersehbaren Ergebnissen kommen, wenn der ursprüngliche Server zurückkehrt. Ähnlich muss bei einem Netzwerkproblem, das den Pool in zwei gleiche Hälften teilt, sichergestellt werden, dass nur eine Hälfte auf den freigegebenen Speicher zugreift und nicht beide gleichzeitig. XenServer löst all diese Probleme durch zwei Mechanismen: einen Speicher-Heartbeat und einen Netzwerk-Heartbeat.
Wenn Sie die Hochverfügbarkeit in einem Pool aktivieren, benennen Sie ein iSCSI-, Fibre Channel- oder NFS-Speicher-Repository als Heartbeat-SR. XenServer erstellt automatisch ein paar kleine virtuelle Festplatten in diesem SR. Die erste Festplatte wird von jedem Server im Ressourcenpool als freigegebene Quorum-Festplatte verwendet. Jeder Server weist sich selbst einen eindeutigen Block auf der freigegebenen Festplatte zu und schreibt regelmäßig in diesen Block, um anzuzeigen, dass er aktiv ist. Wenn die Hochverfügbarkeit startet, tauschen alle Server Daten sowohl über Speicher- als auch über Netzwerkkanäle aus. Der Netzwerk-Heartbeat verwendet einen UDP-Transport über Port 694. Diese Aktion zeigt an, welche Server sie über beide Kanäle sehen können und welche E/A-Pfade funktionieren und welche nicht. Diese Informationen werden ausgetauscht, bis ein fester Punkt erreicht ist und sich alle Server im Pool darüber einig sind, was sie sehen können. Wenn diese Einigung erzielt wird, ist die Hochverfügbarkeit aktiviert und der Pool ist geschützt. Dieser Hochverfügbarkeits-Aktivierungsprozess kann bei größeren Pools einige Minuten dauern, ist aber nur erforderlich, wenn Sie die Hochverfügbarkeit zum ersten Mal aktivieren.
Nachdem die Hochverfügbarkeit aktiv ist, schreibt jeder Server regelmäßig Speicheraktualisierungen auf die virtuelle Heartbeat-Festplatte und Netzwerkpakete über die Verwaltungsschnittstelle. Stellen Sie sicher, dass Netzwerkkarten für Ausfallsicherheit gebündelt sind und dass Speicherschnittstellen dynamisches Multipathing verwenden, wo dies unterstützt wird. Diese Konfiguration stellt sicher, dass einzelne Adapter- oder Verkabelungsausfälle keine Verfügbarkeitsprobleme verursachen.
Weitere Informationen finden Sie unter:
Server-Fencing
Das Worst-Case-Szenario für Hochverfügbarkeit ist, wenn ein Server als offline betrachtet wird, aber immer noch auf den freigegebenen Speicher schreibt. Dieses Szenario kann zu einer Beschädigung persistenter Daten führen. XenServer verwendet Server-Fencing, um diese Situation zu verhindern. Der Server wird automatisch ausgeschaltet und vom Zugriff auf freigegebene Ressourcen im Pool isoliert. Fencing verhindert, dass der ausfallende Server auf freigegebene Festplatten schreibt. Dieses Verhalten verhindert eine Beschädigung der gespeicherten Daten während eines automatisierten Failovers, wenn geschützte virtuelle Maschinen auf andere Server im Pool verschoben werden.
Server führen ein Selbst-Fencing durch (d. h. sie schalten sich aus und starten neu), wenn ein Heartbeat-Fehler auftritt, es sei denn, eine der folgenden Bedingungen trifft zu:
- Der Speicher-Heartbeat ist für alle Server vorhanden, aber das Netzwerk ist partitioniert (sodass es nun zwei Servergruppen gibt). In diesem Fall bleiben alle Server, die Mitglieder der größten Netzwerkpartition sind, in Betrieb, und die Server in der kleineren Netzwerkpartition führen ein Selbst-Fencing durch. Die Annahme hierbei ist, dass der Netzwerkausfall die VMs isoliert hat und diese auf einem Server mit funktionierendem Netzwerk neu gestartet werden müssen. Wenn die Netzwerkpartitionen die gleiche Größe haben, führt nur eine von ihnen ein Selbst-Fencing gemäß einer stabilen Auswahlfunktion durch.
- Wenn der Speicher-Heartbeat ausfällt, der Netzwerk-Heartbeat jedoch erhalten bleibt, prüfen die Server, ob sie alle anderen Server über das Netzwerk sehen können. Wenn diese Bedingung zutrifft, bleiben die Server in Betrieb, unter der Annahme, dass das Speichergerät ausgefallen ist. Diese Aktion beeinträchtigt die VM-Sicherheit nicht, aber jeder Verlust des Netzwerk-Heartbeats führt zu einem Fencing, da dies bedeuten würde, dass beide Heartbeats verschwunden sind.
Kapazitätsplanung für den Ausfall
Das Heartbeat-System liefert uns eine zuverlässige Benachrichtigung über Serverausfälle, und so gehen wir zum zweiten Schritt der Hochverfügbarkeit über: die Kapazitätsplanung für den Ausfall.
Ein Ressourcenpool besteht aus mehreren Servern (z. B. 32), jeder mit potenziell unterschiedlichen Speichermengen und einer unterschiedlichen Anzahl laufender VMs. Die XenServer-Hochverfügbarkeit berechnet dynamisch einen Ausfallplan, der die bei einem Serverausfall zu ergreifenden Maßnahmen festlegt. Dieser Ausfallplan stellt sicher, dass kein einzelner Serverausfall das Neustarten seiner VMs auf einem anderen Server unmöglich macht (z. B. aufgrund von unzureichendem Speicher auf anderen Servern). Zusätzlich zum Umgang mit dem Ausfall eines einzelnen Servers kann die XenServer-Hochverfügbarkeit den Verlust mehrerer Server in einem Pool bewältigen. Zum Beispiel kann die Hochverfügbarkeit den Ausfall einer Netzwerkpartition handhaben, die eine ganze Gruppe von Servern außer Betrieb setzt.
Zusätzlich zur Berechnung der zu ergreifenden Maßnahmen berücksichtigt der Ausfallplan die Anzahl der Serverausfälle, die im Pool toleriert werden können. Bei der Berechnung des Hochverfügbarkeitsplans für einen Pool sind zwei wichtige Überlegungen zu beachten:
-
Maximale Ausfallkapazität. Dieser Wert ist die maximale Anzahl von Servern, die ausfallen können, bevor nicht genügend Ressourcen vorhanden sind, um alle geschützten VMs im Pool auszuführen. Zur Berechnung der maximalen Ausfallkapazität berücksichtigt XenServer:
- Die Neustartprioritäten der VMs im Pool
- Die Anzahl der Server im Pool
- Die CPU- und Speicherkapazität des Servers
-
Server-Ausfallgrenze. Sie können diesen Wert als Teil der Hochverfügbarkeitskonfiguration definieren, die die Anzahl der im Pool zulässigen Serverausfälle innerhalb des Plans angibt. Wenn beispielsweise die Server-Ausfallgrenze für einen Pool 3 beträgt, berechnet XenServer einen Failover-Plan, der es ermöglicht, dass 3 beliebige Server ausfallen und alle geschützten VMs weiterhin im Pool ausgeführt werden können. Sie können die Server-Ausfallgrenze auf einen Wert konfigurieren, der niedriger ist als die maximale Ausfallkapazität, wodurch die Wahrscheinlichkeit verringert wird, dass der Pool überbelegt wird. Diese Konfiguration kann in einer Umgebung mit aktivierter RBAC nützlich sein. Zum Beispiel ermöglicht diese Einstellung RBAC-Benutzern mit geringeren Berechtigungen als dem Pool-Operator, mehr VMs online zu bringen, ohne den Hochverfügbarkeitsplan zu beeinträchtigen. Weitere Informationen finden Sie im Abschnitt Hochverfügbarkeit und rollenbasierte Zugriffssteuerung (RBAC).
Eine Systemwarnung wird generiert, wenn der Wert der maximalen Ausfallkapazität unter den für die Server-Ausfallgrenze angegebenen Wert fällt.
Überbelegungsschutz
Wenn die Hochverfügbarkeit in einem Pool zum ersten Mal aktiviert wird, wird ein Ausfallplan basierend auf den dann verfügbaren Ressourcen berechnet. Die XenServer-Hochverfügbarkeit berechnet dynamisch einen neuen Ausfallplan als Reaktion auf Ereignisse, die den Pool beeinflussen würden, zum Beispiel das Starten einer neuen VM. Wenn aufgrund unzureichender Ressourcen im gesamten Pool kein neuer Plan berechnet werden kann, wird der Pool überbelegt. Beispiele für unzureichende Ressourcen könnten nicht genügend freier Speicher oder Änderungen an virtuellen Festplatten und Netzwerken sein, die beeinflussen, welche VMs auf welchen Servern neu gestartet werden könnten.
Die Neustartpriorität für Hochverfügbarkeit wird verwendet, um zu bestimmen, welche VMs gestartet werden sollen, wenn ein Pool überbelegt ist. Wenn Sie die Neustartpriorität für die VMs konfigurieren, die Sie schützen möchten, im Dialogfeld HA-Konfiguration oder im Assistenten HA konfigurieren, wird die maximale Ausfallkapazität für den Pool dynamisch neu berechnet. Diese Informationen ermöglichen es Ihnen, verschiedene Kombinationen von VM-Neustartprioritäten auszuprobieren, je nach Ihren Geschäftsanforderungen. Sie können sehen, ob die maximale Ausfallkapazität dem Schutzniveau entspricht, das Sie für die kritischen VMs im Pool benötigen.
Wenn Sie versuchen, eine VM zu starten oder fortzusetzen, und diese Aktion dazu führen würde, dass der Pool überbelegt wird, wird in XenCenter eine Warnung angezeigt. Die Nachricht kann auch an eine E-Mail-Adresse gesendet werden, falls konfiguriert. Sie haben die Möglichkeit, den Vorgang abzubrechen oder trotzdem fortzufahren, wodurch der Pool überbelegt wird.
Arbeiten mit einem HA-fähigen Pool
Die bewährte Methode für Hochverfügbarkeit besteht darin, keine Konfigurationsänderungen am Pool vorzunehmen, während die Hochverfügbarkeit aktiviert ist. Stattdessen ist sie als „2-Uhr-Schutz“ gedacht, der Server im Falle eines Problems neu startet, wenn kein menschlicher Administrator in der Nähe ist. Wenn Sie aktiv Konfigurationsänderungen im Pool vornehmen, wie z. B. Software-Updates anwenden, deaktivieren Sie die Hochverfügbarkeit während dieser Änderungen.
- Wenn Sie versuchen, eine geschützte VM von XenCenter aus herunterzufahren, bietet XenCenter die Option an, die VM aus dem Ausfallplan zu entfernen und sie dann herunterzufahren. Diese Option stellt sicher, dass versehentliche VM-Abschaltungen nicht zu Ausfallzeiten führen, Sie aber eine geschützte VM trotzdem anhalten können, wenn Sie dies wirklich möchten.
- Wenn Sie einen Server neu starten müssen, während die Hochverfügbarkeit aktiviert ist, verwendet XenCenter automatisch die VM-Neustartprioritäten, um zu bestimmen, ob dieser Neustart den Pool-Ausfallplan ungültig macht. Wenn dies den Plan nicht beeinträchtigt, wird der Server normal heruntergefahren. Wenn der Plan verletzt wird, aber die maximale Ausfallkapazität größer als 1 ist, bietet XenCenter die Option, das Server-Ausfalllimit des Pools um 1 zu senken. Diese Aktion reduziert die allgemeine Ausfallsicherheit des Pools, stellt aber immer sicher, dass mindestens ein Serverausfall toleriert wird. Wenn der Server wieder hochfährt, wird der Plan automatisch neu berechnet und das ursprüngliche Server-Ausfalllimit gegebenenfalls wiederhergestellt.
- Wenn Sie Software-Updates mit dem Assistenten Updates installieren installieren, müssen Sie die Hochverfügbarkeit im Pool deaktivieren, indem Sie HA ausschalten auswählen. Sie können die Hochverfügbarkeit nach der Installation des Updates wieder aktivieren. Wenn Sie die Hochverfügbarkeit nicht deaktivieren, wird das Update nicht fortgesetzt. Überwachen Sie den Pool manuell, während Updates installiert werden, um sicherzustellen, dass Serverausfälle den Betrieb des Pools nicht stören.
- Wenn die Hochverfügbarkeit aktiviert ist, können einige Vorgänge, die den Plan zum Neustarten von VMs gefährden könnten, deaktiviert werden, z. B. das Entfernen eines Servers aus einem Pool. Um diese Vorgänge auszuführen, deaktivieren Sie die Hochverfügbarkeit vorübergehend oder fahren Sie die geschützten VMs herunter, bevor Sie fortfahren.
Hochverfügbarkeit und rollenbasierte Zugriffssteuerung (RBAC)
In XenServer-Umgebungen, in denen die rollenbasierte Zugriffssteuerung (RBAC) implementiert ist, dürfen nicht alle Benutzer die Konfigurationseinstellungen für die Hochverfügbarkeit eines Pools ändern. Zum Beispiel haben VM-Operatoren keine ausreichenden Berechtigungen, um die Failover-Kapazität für einen HA-fähigen Pool anzupassen. Wenn das Starten einer VM die maximale Anzahl zulässiger Serverausfälle auf einen Wert reduziert, der niedriger ist als der aktuelle Wert, kann ein VM-Operator die VM nicht starten. Nur Benutzer auf der Ebene von Pool-Administrator oder Pool-Operator können die Anzahl der zulässigen Serverausfälle konfigurieren.
In diesem Fall kann der Pool-Administrator oder Pool-Operator das Server-Ausfalllimit auf eine Zahl festlegen, die niedriger ist als die maximal zulässige Anzahl von Ausfällen. Diese Einstellung schafft eine Pufferkapazität und stellt so sicher, dass weniger privilegierte Benutzer neue VMs starten können. Sie reduziert die Failover-Kapazität des Pools, ohne den Ausfallplan zu gefährden.