Citrix Hypervisor

Hohe Verfügbarkeit

Bei der Hochverfügbarkeit handelt es sich um eine Reihe automatischer Funktionen, die darauf ausgelegt sind, Probleme zu planen und sicher zu beheben, die Citrix Hypervisor-Server ausschalten oder sie nicht erreichbar machen. Beispielsweise bei physisch unterbrochenen Netzwerk- oder Host-Hardwarefehlern.

Übersicht

Hohe Verfügbarkeit stellt sicher, dass VMs, die auf diesem Host ausgeführt werden, heruntergefahren und auf einem anderen Host neu gestartet werden, wenn ein Host nicht erreichbar oder instabil wird. Durch das Herunterfahren und Neustarten von VMs auf einem anderen Host wird verhindert, dass die VMs (manuell oder automatisch) auf einem neuen Host gestartet werden. Irgendwann wird der ursprüngliche Host wiederhergestellt. Dieses Szenario kann dazu führen, dass zwei Instanzen derselben VM auf verschiedenen Hosts ausgeführt werden, und eine entsprechende hohe Wahrscheinlichkeit für eine Beschädigung der VM-Festplatte und Datenverlust besteht.

Wenn der Poolmaster nicht erreichbar oder instabil wird, kann die hohe Verfügbarkeit auch die administrative Kontrolle über einen Pool wiederherstellen. Die hohe Verfügbarkeit stellt sicher, dass die administrative Kontrolle ohne manuellen Eingriff automatisch wiederhergestellt wird.

Optional kann Hochverfügbarkeit auch den Neustart von VMs auf Hosts automatisieren, die bekanntermaßen in einem guten Zustand sind, ohne manuelle Eingriffe. Diese VMs können für den Neustart in Gruppen geplant werden, um Zeit für das Starten von Diensten zu ermöglichen. Damit können Infrastruktur-VMs vor ihren abhängigen VMs gestartet werden (z. B. ein DHCP-Server vor seinem abhängigen SQL-Server).

Warnungen:

Nutzen Sie hohe Verfügbarkeit sowie Multipathed Storage und Bonded Networking. Konfigurieren Sie Multipath-Speicher und verbundenes Netzwerk, bevor Sie versuchen, eine hohe Verfügbarkeit einzurichten. Kunden, die keinen Multipath-Speicher und verbundenes Netzwerk einrichten, können ein unerwartetes Host-Neustartverhalten (Self-Fencing) erkennen, wenn eine Infrastrukturinstabilität vorliegt.

Alle Grafiklösungen (NVIDIA vGPU, Intel GVT-D, Intel GVT-G, AMD MxGPU und vGPU Passthrough) können in einer Umgebung mit hoher Verfügbarkeit verwendet werden. VMs, die diese Grafiklösungen verwenden, können jedoch nicht mit hoher Verfügbarkeit geschützt werden. Diese VMs können nach bestem Aufwand neu gestartet werden, während Hosts mit den entsprechenden freien Ressourcen vorhanden sind.

Überbegehen

Ein Pool ist übertrieben, wenn die VMs, die derzeit ausgeführt werden, nach einer benutzerdefinierten Anzahl von Hostfehlern nicht an anderer Stelle neu gestartet werden können.

Überschreiben kann auftreten, wenn im Pool nicht genügend freier Speicher vorhanden ist, um diese VMs nach einem Fehler auszuführen. Es gibt jedoch auch subtilere Änderungen, die eine hohe Verfügbarkeit garantieren können: Änderungen an Virtual Block Devices (VBDs) und Netzwerken können Einfluss darauf haben, welche VMs auf welchen Hosts neu gestartet werden können. Citrix Hypervisor kann nicht alle möglichen Aktionen überprüfen und feststellen, ob sie eine Verletzung der hohen Verfügbarkeitsanforderungen verursachen. Eine asynchrone Benachrichtigung wird jedoch gesendet, wenn die hohe Verfügbarkeit nicht nachhaltig wird.

Citrix Hypervisor verwaltet dynamisch einen Failoverplan, in dem angegeben wird, was zu tun ist, wenn eine Gruppe von Hosts in einem Pool zu einem bestimmten Zeitpunkt ausfällt. Ein wichtiges Konzept, das zu verstehen ist, sind die Host-Fehler, um Wert zu tolerieren, die als Teil der Hochverfügbarkeitskonfiguration definiert ist. Der Wert der zu tolerierenden Hostfehler bestimmt die Anzahl der Ausfälle, die ohne Dienstverlust zulässig sind. Betrachten Sie beispielsweise einen Ressourcenpool, der aus 64 Hosts besteht und die tolerierten Fehler auf 3 festgelegt ist. In diesem Fall berechnet der Pool einen Failoverplan, mit dem drei Hosts ausfallen und die VMs auf anderen Hosts neu gestartet werden können. Wenn ein Plan nicht gefunden werden kann, gilt der Pool als übertrieben festgeschrieben. Der Plan wird basierend auf VM-Lebenszyklusoperationen und -verschiebungen dynamisch neu berechnet. Wenn Änderungen, z. B. die Hinzufügung neuer VMs zum Pool, dazu führen, dass Ihr Pool überschrieben wird, werden Warnungen gesendet (entweder über XenCenter oder E-Mail).

Warnung zu Überverpflichtung

Wenn Versuche, eine VM zu starten oder fortzusetzen, dazu führen, dass der Pool überschrieben wird, wird eine Warnmeldung angezeigt. Diese Warnung wird in XenCenter angezeigt und ist auch als Nachrichteninstanz über die Management-API verfügbar. Wenn Sie eine E-Mail-Adresse konfiguriert haben, kann eine Nachricht auch an die E-Mail-Adresse gesendet werden. Sie können dann den Vorgang abbrechen oder trotzdem fortfahren. Das Fortfahren bewirkt, dass der Pool überschrieben wird. Die Speichermenge, die von VMs mit unterschiedlichen Prioritäten belegt wird, wird auf Pool- und Hostebene angezeigt.

Host Fencing

Manchmal kann ein Server aufgrund des Verlustes der Netzwerkkonnektivität oder wenn ein Problem mit dem Steuerungsstapel aufgetreten ist, ausfallen. In solchen Fällen stellt sich der Citrix Hypervisor-Server selbst fest, um sicherzustellen, dass die VMs nicht auf zwei Servern gleichzeitig ausgeführt werden. Wenn eine Fencing-Aktion ausgeführt wird, wird der Server sofort und abrupt neu gestartet, sodass alle VMs, die darauf ausgeführt werden, gestoppt werden. Die anderen Server erkennen, dass die VMs nicht mehr ausgeführt werden, und die VMs werden gemäß den ihnen zugewiesenen Neustartprioritäten neu gestartet. Der eingezäunte Server tritt in eine Neustartsequenz ein, und wenn er neu gestartet wurde, versucht er, dem Ressourcenpool erneut beizutreten.

Hinweis:

Hosts in geclusterten Pools können auch selbst eingrenzen, wenn sie nicht mit mehr als der Hälfte der anderen Hosts im Ressourcenpool kommunizieren können. Weitere Informationen finden Sie unter Clusterpools.

Anforderungen an die Konfiguration

Um die Hochverfügbarkeitsfunktion zu verwenden, benötigen Sie:

  • Citrix Hypervisor -Pool (diese Funktion bietet eine hohe Verfügbarkeit auf Serverebene innerhalb eines einzelnen Ressourcenpools).

    Hinweis:

    Es wird empfohlen, die Hochverfügbarkeit nur in Pools zu aktivieren, die mindestens drei Citrix Hypervisor-Server enthalten. Weitere Informationen finden Sie unter CTX129721 - Verhalten bei hoher Verfügbarkeit, wenn der Heartbeat in einem Pool verloren geht.

  • Gemeinsamer Speicher, einschließlich mindestens einer iSCSI-, NFS- oder Fibre-Channel-LUN der Größe 356 MB oder höher — der Heartbeat-SR. Der Hochverfügbarkeitsmechanismus erstellt zwei Volumes auf dem Heartbeat SR:

    4 MB Heartbeat Volume: Wird für Heartbeating verwendet.

    256 MB Metadaten-Volume: Zum Speichern von Pool-Master-Metadaten, die bei einem Master-Failover verwendet werden sollen.

    Hinweise:

    Für maximale Zuverlässigkeit empfehlen wir, ein dediziertes NFS- oder iSCSI-Speicher-Repository als Hochverfügbarkeits-Heartbeat-Datenträger zu verwenden. Verwenden Sie dieses Speicher-Repository nicht für andere Zwecke. Wenn es sich bei Ihrem Pool um einen gruppierten Pool handelt, muss Ihr Heartbeat SR ein GFS2 SR sein. Speicher, der mit SMB oder iSCSI verbunden ist, wenn er mit CHAP authentifiziert wurde, kann nicht als Heartbeat-SR verwendet werden. Wenn Sie NetApp oder EqualLogic SR verwenden, stellen Sie manuell eine NFS- oder iSCSI-LUN auf dem Array bereit, um sie als Heartbeat-SR zu verwenden.

  • Statische IP-Adressen für alle Hosts.

    Warnung:

    Wenn sich die IP-Adresse eines Servers ändert, während die Hochverfügbarkeit aktiviert ist, geht bei hoher Verfügbarkeit davon aus, dass das Netzwerk des Hosts ausgefallen ist. Die Änderung der IP-Adresse kann den Host umgrenzen und ihn in einem nicht bootfähigen Zustand belassen. Um diese Situation zu beheben, deaktivieren Sie die hohe Verfügbarkeit mit dem Befehl host-emergency-ha-disable, setzen Sie den Poolmaster mit zurück pool-emergency-reset-master, und aktivieren Sie dann die Hochverfügbarkeit erneut.

  • Für maximale Zuverlässigkeit empfehlen wir, eine dedizierte gebundene Schnittstelle als Hochverfügbarkeitsmanagementnetzwerk zu verwenden.

Damit eine VM durch hohe Verfügbarkeit geschützt werden kann, muss sie agil sein. Es bedeutet, dass die VM:

  • Die virtuellen Laufwerke müssen auf freigegebenem Speicher vorhanden sein. Sie können jede Art von gemeinsam genutztem Speicher verwenden. iSCSI, NFS oder Fibre-Channel-LUN ist nur für den Speichertakt erforderlich und kann für die Speicherung virtueller Festplatten verwendet werden.

  • Kann Livemigration verwenden

  • Verfügt nicht über eine Verbindung zu einem lokalen DVD-Laufwerk konfiguriert

  • Hat seine virtuellen Netzwerkschnittstellen in poolweiten Netzwerken

Hinweis:

Wenn die hohe Verfügbarkeit aktiviert ist, empfehlen wir dringend, eine gebundene Verwaltungsschnittstelle auf den Servern im Pool und Multipathed Storage für den Heartbeat SR zu verwenden.

Wenn Sie VLANs und gebundene Schnittstellen über die CLI erstellen, sind sie möglicherweise nicht angeschlossen und aktiv, obwohl sie erstellt wurden. In diesem Fall kann eine VM scheinen nicht agil zu sein und sie ist nicht durch hohe Verfügbarkeit geschützt. Sie können den CLI-Befehl pif-plug verwenden, um die VLAN- und Bond-PIFs aufzurufen, damit die VM agil werden kann. Sie können auch genau bestimmen, warum eine VM nicht agil ist, indem Sie den CLI-Befehl xe diagnostic-vm-status verwenden. Mit diesem Befehl werden die Platzierungsbedingungen analysiert, und Sie können bei Bedarf Abhilfemaßnahmen ergreifen.

Konfigurationseinstellungen neu starten

Virtuelle Maschinen können als geschützt, bestmöglich oder ungeschützt durch hohe Verfügbarkeit angesehen werden. Der Wert von ha-restart-priority definiert, ob eine VM als geschützt, best-effort oder ungeschützt behandelt wird. Das Neustartverhalten für VMs in jeder dieser Kategorien ist unterschiedlich.

Geschützt

Hohe Verfügbarkeit garantiert den Neustart einer geschützten VM, die offline geschaltet wird oder deren Host offline geschaltet wird, vorausgesetzt, der Pool ist nicht überfordert und die VM agil ist.

Wenn eine geschützte VM nicht neu gestartet werden kann, wenn ein Server ausfällt, versucht hohe Verfügbarkeit, die VM zu starten, wenn zusätzliche Kapazität in einem Pool vorhanden ist. Versuche, die VM zu starten, wenn zusätzliche Kapazität vorhanden ist, können jetzt erfolgreich sein.

ha-restart-priority Wert: restart

Bester Aufwand

Wenn der Host einer virtuellen Maschine mit bestem Aufwand offline geschaltet wird, versucht Hochverfügbarkeit, die VM mit der besten Leistung auf einem anderen Host neu zu starten. Dieser Versuch wird erst durchgeführt, nachdem alle geschützten VMs erfolgreich neu gestartet wurden. Hochverfügbarkeit macht nur einen Versuch, eine VM mit bestem Aufwand neu zu starten. Wenn dieser Versuch fehlschlägt, unternimmt die hohe Verfügbarkeit keine weiteren Versuche, die VM neu zu starten.

ha-restart-priority Wert: best-effort

Ungeschützt

Wenn eine ungeschützte VM oder der Host, auf dem sie ausgeführt wird, gestoppt wird, versucht hohe Verfügbarkeit nicht, die VM neu zu starten.

ha-restart-priority Wert: Wert ist eine leere Zeichenfolge

Hinweis:

Hochverfügbarkeit stoppt oder migriert eine ausgeführte VM niemals zu freien Ressourcen, damit eine geschützte VM mit Bestleistung neu gestartet werden kann.

Wenn der Pool Serverausfälle hat und die Anzahl der tolerierbaren Fehler auf Null sinkt, wird der Neustart der geschützten VMs nicht garantiert. In solchen Fällen wird eine Systemwarnung generiert. Wenn ein weiterer Fehler auftritt, verhalten sich alle VMs, die eine Neustartpriorität festgelegt haben, entsprechend dem besten Verhalten.

Bestellung starten

Die Startreihenfolge ist die Reihenfolge, in der Citrix Hypervisor Hochverfügbarkeit versucht, geschützte VMs neu zu starten, wenn ein Fehler auftritt. Die Werte der order Eigenschaft für jede der geschützten VMs bestimmen die Startreihenfolge.

Die order Eigenschaft einer VM wird von Hochverfügbarkeit und auch von anderen Funktionen verwendet, die VMs starten und herunterfahren. Für jede VM kann die order Eigenschaft festgelegt werden, nicht nur die VMs, die für hohe Verfügbarkeit als geschützt gekennzeichnet sind. Hochverfügbarkeit verwendet die order Eigenschaft jedoch nur für geschützte VMs.

Der Wert der order Eigenschaft ist eine ganze Zahl. Der Standardwert ist 0, was die höchste Priorität ist. Geschützte VMs mit dem order Wert 0 werden zuerst durch hohe Verfügbarkeit neu gestartet. Je höher der Wert der order Eigenschaft, desto später wird die VM neu gestartet.

Sie können den Wert der Eigenschaft order einer VM über die Befehlszeilenschnittstelle festlegen:

xe vm-param-set uuid=VM_UUID order=int

Oder legen Sie in XenCenter im Bedienfeld “ Startoptionen “ für eine VM die Startreihenfolge auf den erforderlichen Wert fest.

Hochverfügbarkeit im Citrix Hypervisor -Pool aktivieren

Sie können Hochverfügbarkeit in einem Pool mit XenCenter oder der Befehlszeilenschnittstelle aktivieren. In beiden Fällen geben Sie einen Satz von Prioritäten an, die bestimmen, welche VMs die höchste Neustartpriorität erhalten, wenn ein Pool überschrieben ist.

Warnungen:

  • Wenn Sie die hohe Verfügbarkeit aktivieren, werden einige Vorgänge, die den Plan für den Neustart von VMs gefährden, z. B. das Entfernen eines Servers aus einem Pool, möglicherweise deaktiviert. Sie können die Hochverfügbarkeit vorübergehend deaktivieren, um solche Vorgänge auszuführen, oder die VMs, die durch Hochverfügbarkeit geschützt sind, ungeschützt machen.

  • Wenn Hochverfügbarkeit aktiviert ist, können Sie das Clustering in Ihrem Pool nicht aktivieren. Deaktivieren Sie vorübergehend die hohe Verfügbarkeit, um Clustering zu aktivieren. Sie können Hochverfügbarkeit in Ihrem Clusterpool aktivieren. Einige Hochverfügbarkeitsverhalten, wie z. B. Self-Fencing, unterscheidet sich für gruppierte Pools. Weitere Informationen finden Sie unter Clusterpools

Hochverfügbarkeit mit der Befehlszeilenschnittstelle aktivieren

  1. Stellen Sie sicher, dass Sie ein kompatibles Storage Repository (SR) an Ihren Pool angeschlossen haben. iSCSI, NFS oder Fibre-Channel-SRs sind kompatibel. Weitere Informationen zum Konfigurieren eines solchen Speicher-Repositorys mit der Befehlszeilenschnittstelle finden Sie unter Verwalten von Speicher-Repositories.

  2. Legen Sie für jede VM, die Sie schützen möchten, eine Neustartpriorität und eine Startreihenfolge fest. Sie können die Neustartpriorität wie folgt festlegen:

    xe vm-param-set uuid=vm_uuid ha-restart-priority=restart order=1
    
  3. Aktivieren Sie Hochverfügbarkeit für den Pool, und geben Sie optional ein Timeout an:

    xe pool-ha-enable heartbeat-sr-uuids=sr_uuid ha-config:timeout=timeout in seconds
    

    Das Timeout ist der Zeitraum, in dem die Hosts in Ihrem Pool auf Netzwerke oder Speicher nicht zugreifen können. Wenn Sie beim Aktivieren der Hochverfügbarkeit kein Timeout angeben, verwendet Citrix Hypervisor das standardmäßige Timeout von 30 Sekunden. Wenn ein Citrix Hypervisor-Server innerhalb des Zeitüberschreitungszeitraums nicht auf das Netzwerk oder den Speicher zugreifen kann, kann er sich selbst eingrenzen und neu starten.

  4. Führen Sie den Befehl pool-ha-compute-max-host-failures-to-tolerate aus. Dieser Befehl gibt die maximale Anzahl von Hosts zurück, die fehlschlagen können, bevor nicht genügend Ressourcen vorhanden sind, um alle geschützten VMs im Pool auszuführen.

    xe pool-ha-compute-max-host-failures-to-tolerate
    

    Die Anzahl der zu tolerierenden Fehler bestimmt, wann eine Warnung gesendet wird. Das System berechnet einen Failoverplan neu, wenn sich der Status des Pools ändert. Diese Berechnung verwendet, um die Poolkapazität zu ermitteln und wie viele weitere Ausfälle möglich sind, ohne dass die Lebensfähigkeitsgarantie für geschützte VMs verloren geht. Eine Systemwarnung wird generiert, wenn dieser berechnete Wert unter den angegebenen Wert für fällt ha-host-failures-to-tolerate.

  5. Geben Sie den Parameter ha-host-failures-to-tolerate an. Der Wert muss kleiner oder gleich dem berechneten Wert sein:

    xe pool-param-set ha-host-failures-to-tolerate=2 uuid=pool-uuid
    

Entfernen des Hochverfügbarkeitsschutzes von einer VM mit der Befehlszeilenschnittstelle

Um Hochverfügbarkeitsfunktionen für eine VM zu deaktivieren, verwenden Sie den Befehl xe vm-param-set, um den Parameter ha-restart-priority als leere Zeichenfolge festzulegen. Durch das Setzen des Parameters ha-restart-priority werden die Einstellungen für die Startreihenfolge nicht gelöscht. Sie können die hohe Verfügbarkeit für eine VM erneut aktivieren, indem Sie den Parameter ha-restart-priority auf restart oder best-effort entsprechend festlegen.

Wiederherstellen eines nicht erreichbaren Hosts

Wenn ein Host aus irgendeinem Grund nicht auf die Hochverfügbarkeitsstatusdatei zugreifen kann, ist es möglich, dass ein Host möglicherweise nicht erreichbar ist. Um die Citrix Hypervisor Installation wiederherzustellen, müssen Sie möglicherweise die Hochverfügbarkeit mit dem folgenden Befehl host-emergency-ha-disable deaktivieren:

xe host-emergency-ha-disable --force

Wenn der Host der Poolmaster war, startet er wie gewohnt mit deaktivierter Hochverfügbarkeit. Poolmitglieder stellen die Verbindung wieder her und deaktivieren die hohe Verfügbarkeit automatisch. Wenn der Host ein Poolmitglied war und den Master nicht kontaktieren kann, müssen Sie möglicherweise eine der folgenden Aktionen ausführen:

  • Erzwingen, den Host als Poolmaster neu zu starten (xe pool-emergency-transition-to-master)

     xe pool-emergency-transition-to-master uuid=host_uuid
    
  • Sagen Sie dem Host, wo der neue Master ist (xe pool-emergency-reset-master):

     xe pool-emergency-reset-master master-address=new_master_hostname
    

Wenn alle Hosts erfolgreich neu gestartet wurden, aktivieren Sie die hohe Verfügbarkeit erneut:

xe pool-ha-enable heartbeat-sr-uuid=sr_uuid

Herunterfahren eines Hosts, wenn hohe Verfügbarkeit aktiviert ist

Achten Sie beim Herunterfahren oder Neustart eines Hosts besonders darauf, dass der Hochverfügbarkeitsmechanismus davon ausgeht, dass der Host ausgefallen ist. Um einen Host sauber herunterzufahren, wenn Hochverfügbarkeit aktiviert ist, verwenden Sie disable, evacuate und schließlich shutdown für den Host entweder in XenCenter oder über die Befehlszeilenschnittstelle. Führen Sie folgende Befehle aus, um einen Host in einer Umgebung herunterzufahren, in der hohe Verfügbarkeit aktiviert ist:

    xe host-disable host=host_name
    xe host-evacuate uuid=host_uuid
    xe host-shutdown host=host_name

Herunterfahren einer VM, die durch hohe Verfügbarkeit geschützt ist

Wenn eine VM im Rahmen eines Hochverfügbarkeitsplans geschützt und automatisch neu gestartet wird, kann sie nicht heruntergefahren werden, während dieser Schutz aktiv ist. Um eine VM herunterzufahren, deaktivieren Sie zuerst den Hochverfügbarkeitsschutz und führen dann den CLI-Befehl aus. XenCenter bietet Ihnen ein Dialogfeld, in dem Sie das Deaktivieren des Schutzes automatisieren können, wenn Sie die Schaltfläche Herunterfahren einer geschützten VM auswählen.

Hinweis:

Wenn Sie eine VM innerhalb des Gastes herunterfahren und die VM geschützt ist, wird sie unter den Bedingungen für hohe Verfügbarkeit automatisch neu gestartet. Durch den automatischen Neustart wird sichergestellt, dass ein Operatorfehler nicht dazu führt, dass eine geschützte VM versehentlich heruntergefahren wird. Wenn Sie diese VM herunterfahren möchten, deaktivieren Sie zuerst den Schutz für hohe Verfügbarkeit.

Hohe Verfügbarkeit