XenCenter

Hohe Verfügbarkeit

Die XenServer-Hochverfügbarkeit ermöglicht den automatischen Neustart von VMs im Falle eines zugrunde liegenden Hardwarefehlers oder des Verlusts eines Servers. Bei der Hochverfügbarkeit geht es darum, sicherzustellen, dass wichtige VMs immer in einem Ressourcenpool ausgeführt werden. Wenn Hochverfügbarkeit aktiviert ist, werden die VMs bei Ausfall eines Ihrer Server auf anderen Servern im selben Pool neu gestartet. Diese Funktion ermöglicht die Wiederherstellung wichtiger Dienste mit minimaler Serviceunterbrechung im Falle eines System- oder Komponentenausfalls.

Wenn der Pool-Koordinator-Server ausfällt, wählt XenServer High Availability einen neuen Server aus, der die Rolle des Pool-Koordinators übernimmt. Jeder Server in einem Pool kann ein Poolkoordinatorserver sein. XenServer repliziert die Pool-Datenbank ständig über alle Knoten. Außerdem wird die Datenbank für zusätzliche Sicherheit auf einem gemeinsam genutzten Speicher auf dem Heartbeat SR gesichert.

Es gibt zwei wichtige Aspekte für die Hochverfügbarkeit von XenServer:

  • Zuverlässige Erkennung von Serverausfällen
  • Berechnen eines Fehlerplans für eine schnelle Wiederherstellung

Heartbeats für die Verfügbarkeit

Es ist schwierig, einen Serverausfall zuverlässig zu erkennen, da Sie aus der Ferne zwischen einem Server, der für eine Weile verschwindet, und einem katastrophalen Ausfall unterscheiden müssen. Wenn die Hochverfügbarkeit fälschlicherweise entscheidet, dass ein Poolkoordinatorserver ausgefallen ist und ein neuer Poolkoordinator ausgewählt wird, kann dies zu unvorhersehbaren Ergebnissen führen, wenn der ursprüngliche Server zurückgegeben wird. Wenn ein Netzwerkproblem dazu führt, dass der Pool in zwei gleiche Hälften geteilt wird, müssen wir sicherstellen, dass nur eine Hälfte auf den gemeinsam genutzten Speicher zugreift und nicht beide gleichzeitig. XenServer löst all diese Probleme, indem es über zwei Mechanismen verfügt: einen Speicher-Heartbeat und einen Netzwerk-Heartbeat.

Wenn Sie Hochverfügbarkeit in einem Pool aktivieren, nominieren Sie ein iSCSI-, Fibre Channel- oder NFS-Speicher-Repository als Heartbeat-SR. XenServer erstellt automatisch ein paar kleine virtuelle Laufwerke in dieser SR. Der erste Datenträger wird von jedem Server im Ressourcenpool als freigegebener Quorumdatenträger verwendet. Jeder Server ordnet sich selbst einen eindeutigen Block auf dem freigegebenen Datenträger zu und schreibt regelmäßig in den Block, um anzuzeigen, dass er aktiv ist. Wenn die Hochverfügbarkeit gestartet wird, tauschen alle Server Daten sowohl über Netzwerk- als auch über Speicherkanäle aus. Diese Aktion gibt an, welche Server über beide Kanäle angezeigt werden können, und zeigt, welche E/A-Pfade funktionieren und welche nicht. Diese Informationen werden so lange ausgetauscht, bis ein fester Punkt erreicht ist und sich alle Server im Pool darüber einig sind, was sie sehen können. Wenn diese Vereinbarung getroffen wird, wird die Hochverfügbarkeit aktiviert, und der Pool ist geschützt. Es kann einige Minuten dauern, bis sich dieser Scharfschaltungsprozess für Hochverfügbarkeit auf größere Pools festgelegt hat, ist jedoch nur erforderlich, wenn Sie die Hochverfügbarkeit zum ersten Mal aktivieren.

Nachdem die Hochverfügbarkeit aktiv ist, schreibt jeder Server regelmäßig Speicheraktualisierungen auf den virtuellen Heartbeat-Datenträger und Netzwerkpakete über die Verwaltungsschnittstelle. Stellen Sie sicher, dass Netzwerkadapter aus Gründen der Ausfallsicherheit gebunden sind und dass Speicherschnittstellen dynamisches Multipathing verwenden, wo es unterstützt wird. Diese Konfiguration stellt sicher, dass Fehler eines einzelnen Adapters oder einer Verkabelung nicht zu Verfügbarkeitsproblemen führen.

Weitere Informationen:

Server-Fencing

Das Worst-Case-Szenario für Hochverfügbarkeit ist ein Szenario, bei dem angenommen wird, dass ein Server offline ist, aber immer noch in den freigegebenen Speicher schreibt. Dieses Szenario kann zur 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 fehlerhafte Server auf freigegebene Datenträger 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 werden im Falle eines Heartbeat-Fehlers selbst abgeschirmt (d. h. ausgeschaltet und neu gestartet), es sei denn, eine der folgenden Bedingungen trifft zu:

  • Der Speichertakt ist für alle Server vorhanden, aber das Netzwerk wurde partitioniert (sodass es jetzt zwei Gruppen von Servern gibt). In diesem Fall werden alle Server, die Mitglieder der größten Netzwerkpartition sind, weiterhin ausgeführt, und die Server in der kleineren Netzwerkpartition werden automatisch abgeschirmt. Hier wird davon ausgegangen, dass die VMs durch den Netzwerkausfall isoliert wurden und sie auf einem Server mit funktionierendem Netzwerk neu gestartet werden müssen. Wenn die Netzwerkpartitionen gleich groß sind, dann zäunt sich nur eine von ihnen gemäß einer stabilen Auswahlfunktion selbst ein.
  • Wenn der Speichertakt verschwindet, der Netzwerktakt jedoch bestehen bleibt, überprüfen die Server, ob sie alle anderen Server über das Netzwerk sehen können. Wenn diese Bedingung zutrifft, werden die Server weiterhin ausgeführt, wobei davon ausgegangen wird, dass der Speichertaktserver nicht mehr verfügbar ist. Diese Aktion beeinträchtigt die VM-Sicherheit nicht, aber Netzwerkstörungen führen zu Fencing, da dies bedeuten würde, dass beide Heartbeats verschwunden sind.

Kapazitätsplanung für Ausfälle

Das Heartbeat-System gibt uns eine zuverlässige Benachrichtigung über Serverausfälle, und so gehen wir zum zweiten Schritt der Hochverfügbarkeit über: der Kapazitätsplanung für Ausfälle.

Ein Ressourcenpool besteht aus mehreren Servern (z. B. 32), die jeweils über potenziell unterschiedliche Speichermengen und eine unterschiedliche Anzahl ausgeführter VMs verfügen. XenServer High Availability berechnet dynamisch einen Fehlerplan, der die Maßnahmen berechnet, die bei einem Serverausfall ausgeführt werden sollen. Dieser Fehlerplan stellt sicher, dass kein Ausfall eines einzelnen Servers den Neustart der VMs auf einem anderen Server unmöglich macht (z. B. aufgrund von unzureichendem Arbeitsspeicher auf anderen Servern). Neben dem Ausfall eines einzelnen Servers kann die XenServer-Hochverfügbarkeit auch den Verlust mehrerer Server in einem Pool bewältigen. Hochverfügbarkeit kann z. B. den Fall bewältigen, dass bei einem Ausfall einer Netzwerkpartition eine ganze Gruppe von Servern ausfällt.

Neben der Berechnung, welche Maßnahmen ergriffen werden, berücksichtigt der Fehlerplan die Anzahl der Serverfehler, die im Pool toleriert werden können. Bei der Berechnung des Hochverfügbarkeitsplans für einen Pool sind zwei wichtige Aspekte erforderlich:

  • Maximale Ausfallkapazität. Dieser Wert ist die maximale Anzahl von Servern, die ausfallen können, bevor nicht genügend Ressourcen zum Ausführen aller geschützten VMs im Pool vorhanden sind. Um die maximale Ausfallkapazität zu berechnen, berücksichtigt XenServer:

    • Die Neustartprioritäten der VMs im Pool
    • Die Anzahl der Server im Pool
    • Die CPU- und Speicherkapazität des Servers
  • Grenzwert für Serverfehler. Sie können diesen Wert als Teil der Hochverfügbarkeitskonfiguration definieren, die die Anzahl der Serverausfälle angibt, die im Pool innerhalb des Plans zugelassen werden sollen. Wenn das Serverausfalllimit für einen Pool beispielsweise 3 beträgt, berechnet XenServer einen Failover-Plan, der den Ausfall von 3 Servern zulässt und alle geschützten VMs weiterhin im Pool ausgeführt werden können. Sie können den Grenzwert für Serverausfälle auf einen Wert konfigurieren, der niedriger als die maximale Ausfallkapazität ist, wodurch es weniger wahrscheinlich ist, dass der Pool überlastet wird. Diese Konfiguration kann in einer Umgebung mit aktivierter RBAC nützlich sein. Diese Einstellung ermöglicht es RBAC-Benutzern mit niedrigeren Berechtigungen als der Pooloperator, mehr VMs online zu schalten, ohne den Hochverfügbarkeitsplan zu unterbrechen. Weitere Informationen finden Sie in der Hochverfügbarkeit und rollenbasierte Zugriffskontrolle (RBAC) Abschnitt.

Eine Systemwarnung wird generiert, wenn der Wert für die maximale Ausfallkapazität unter den Wert fällt, der für den Grenzwert für den Serverausfall angegeben ist.

Schutz vor Überbelegung

Wenn die Hochverfügbarkeit zum ersten Mal für einen Pool aktiviert wird, wird ein Fehlerplan basierend auf den dann verfügbaren Ressourcen berechnet. XenServer High Availability berechnet dynamisch einen neuen Fehlerplan als Reaktion auf Ereignisse, die sich auf den Pool auswirken würden, z. B. das Starten einer neuen VM. Wenn ein neuer Plan aufgrund unzureichender Ressourcen im gesamten Pool nicht berechnet werden kann, wird der Pool überlastet. Beispiele für unzureichende Ressourcen sind möglicherweise nicht genügend freier Arbeitsspeicher oder Änderungen an virtuellen Datenträgern und Netzwerken, die sich darauf auswirken, welche VMs auf welchen Servern neu gestartet werden können.

Die Neustartpriorität für Hochverfügbarkeit wird verwendet, um zu bestimmen, welche VMs gestartet werden sollen, wenn ein Pool überlastet ist. Wenn Sie die Neustartpriorität für die VMs, die Sie schützen möchten, im HA-Konfiguration oder im Dialogfeld Konfigurieren von HA wird die maximale Ausfallkapazität für den Pool dynamisch neu berechnet. Anhand dieser Informationen können Sie je nach Ihren Geschäftsanforderungen verschiedene Kombinationen von VM-Neustartprioritäten ausprobieren. Sie können sehen, ob die maximale Ausfallkapazität für die Schutzstufe geeignet ist, die 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 überlastet 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, was dazu führt, dass der Pool überlastet 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 soll es sich um die “2-Uhr-Schutzmaßnahme” handeln, die Server im Falle eines Problems neu startet, wenn kein menschlicher Administrator in der Nähe ist. Wenn Sie aktiv Konfigurationsänderungen im Pool vornehmen, z. B. Softwareupdates anwenden, deaktivieren Sie die Hochverfügbarkeit während dieser Änderungen.

  • Wenn Sie versuchen, eine geschützte VM über XenCenter herunterzufahren, bietet XenCenter die Möglichkeit, die VM aus dem Fehlerplan zu entfernen und dann herunterzufahren. Diese Option stellt sicher, dass versehentliches Herunterfahren von VMs nicht zu Ausfallzeiten führt, Sie aber trotzdem eine geschützte VM stoppen können, wenn Sie dies wirklich möchten.
  • Wenn Sie einen Server neu starten müssen, wenn die Hochverfügbarkeit aktiviert ist, verwendet XenCenter automatisch die VM-Neustartprioritäten, um zu bestimmen, ob dieser Neustart den Poolfehlerplan ungültig macht. Wenn sich dies nicht auf den Plan auswirkt, wird der Server normal heruntergefahren. Wenn der Plan verletzt wird, die maximale Ausfallkapazität jedoch größer als 1 ist, bietet XenCenter die Möglichkeit, das Serverausfalllimit des Pools um 1 zu senken. Diese Aktion verringert die allgemeine Resilienz des Pools, stellt jedoch immer sicher, dass mindestens ein Serverausfall toleriert wird. Wenn der Server wieder verfügbar ist, wird der Plan automatisch neu berechnet und gegebenenfalls das ursprüngliche Serverausfalllimit wiederhergestellt.
  • Wenn Sie Softwareupdates mit dem Updates installieren Assistenten, müssen Sie die Hochverfügbarkeit für den Pool deaktivieren, indem Sie Deaktivieren von HA. 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 Serverfehler den Betrieb des Pools nicht unterbrechen.
  • Wenn Hochverfügbarkeit aktiviert ist, werden möglicherweise einige Vorgänge deaktiviert, die den Plan für den Neustart von VMs beeinträchtigen können, z. B. das Entfernen eines Servers aus einem Pool. Um diese Vorgänge auszuführen, deaktivieren Sie vorübergehend die Hochverfügbarkeit, oder Sie können die geschützten VMs herunterfahren, bevor Sie fortfahren.

Hochverfügbarkeit und rollenbasierte Zugriffskontrolle (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. Beispielsweise verfügen VM-Operatoren nicht über ausreichende Berechtigungen, um die Failoverkapazität für einen HA-fähigen Pool anzupassen. Wenn durch das Starten einer VM die maximale Anzahl zulässiger Serverausfälle auf einen Wert reduziert wird, der niedriger als der aktuelle Wert ist, kann ein VM-Betreiber die VM nicht starten. Nur Benutzer auf Pooladministrator- oder Pooloperatorebene können die zulässige Anzahl von Serverfehlern konfigurieren.

In diesem Fall kann der Pooladministrator oder Poolbetreiber den Grenzwert für Serverausfälle auf eine Zahl festlegen, die niedriger ist als die maximal zulässige Anzahl von Fehlern. Diese Einstellung schafft Pufferkapazität und stellt so sicher, dass weniger privilegierte Benutzer neue VMs starten können. Dadurch wird die Failoverkapazität des Pools reduziert, ohne den Ausfallplan zu gefährden.

Zugehörige Dokumentation

XenServer 8

Citrix Hypervisor 8.2 Kumulatives Update 1

Hohe Verfügbarkeit