Citrix Hypervisor

Hohe Verfügbarkeit

Hochverfügbarkeit ist eine Reihe automatischer Funktionen, mit denen Probleme geplant und sicher behoben werden können, die Citrix Hypervisor-Server zum Erliegen bringen oder sie unerreichbar machen. Zum Beispiel bei physisch gestörten Netzwerk- oder Host-Hardwareausfällen.

Überblick

Hochverfü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 mehr 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 später 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 entsprechend hohe Wahrscheinlichkeit für eine Beschädigung des VM-Datenträgers und Datenverlust.

Wenn der Poolmaster nicht mehr erreichbar oder instabil wird, kann die Hochverfügbarkeit auch die administrative Kontrolle über einen Pool wiederherstellen. Hochverfü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 sich ohne manuellen Eingriff in einem guten Zustand befinden. Diese VMs können für den Neustart in Gruppen geplant werden, damit die Dienste gestartet werden können. Damit können Infrastruktur-VMs vor ihren abhängigen VMs gestartet werden (z. B. ein DHCP-Server vor seinem abhängigen SQL-Server).

Warnungen:

Verwenden Sie Hochverfügbarkeit zusammen mit Multipath-Speicher und gebundenem Netzwerk. Konfigurieren Sie Multipathed Storage und Bonded Networking, bevor Sie versuchen, Hochverfü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 verwendet werden, die Hochverfügbarkeit nutzt. VMs, die diese Grafiklösungen verwenden, können jedoch nicht mit hoher Verfügbarkeit geschützt werden. Diese VMs können nach bestem Ermessen neu gestartet werden, während es Hosts mit den entsprechenden freien Ressourcen gibt.

Übermäßiges Engagement

Ein Pool ist überbelegt, wenn die derzeit laufenden VMs nach einer benutzerdefinierten Anzahl von Hostausfällen nicht an anderer Stelle neu gestartet werden können.

Eine Überbelegung kann auftreten, wenn im Pool nicht genügend freier Speicher vorhanden ist, um diese VMs nach einem Ausfall auszuführen. Es gibt jedoch auch subtilere Änderungen, die dazu führen können, dass Hochverfügbarkeitsgarantien nicht nachhaltig sind: Änderungen an Virtual Block Devices (VBDs) und Netzwerken können sich darauf auswirken, welche VMs auf welchen Hosts neu gestartet werden können. Citrix Hypervisor kann nicht alle potenziellen Aktionen überprüfen und feststellen, ob sie eine Verletzung der Hochverfügbarkeitsanforderungen verursachen. Es wird jedoch eine asynchrone Benachrichtigung gesendet, wenn die Hochverfügbarkeit nicht mehr nachhaltig wird.

Citrix Hypervisor verwaltet dynamisch einen Failoverplan, in dem detailliert beschrieben wird, was zu tun ist, wenn eine Reihe von Hosts in einem Pool zu einem bestimmten Zeitpunkt ausfällt. Ein wichtiges Konzept, das es zu verstehen gilt, ist der Wert, den Host nicht toleriert, der als Teil der Konfiguration mit hoher Verfügbarkeit definiert ist. Der Wert der zu tolerierenden Hostausfälle bestimmt die Anzahl der Ausfälle, die ohne Dienstverlust zulässig sind. Stellen Sie sich beispielsweise einen Ressourcenpool vor, der aus 64 Hosts besteht und die tolerierten Ausfälle auf 3 festgelegt sind. In diesem Fall berechnet der Pool einen Failoverplan, der es ermöglicht, dass drei beliebige Hosts ausfallen und die VMs auf anderen Hosts neu starten können. Wenn ein Plan nicht gefunden werden kann, gilt der Pool als überlastet. Der Plan wird basierend auf VM-Lebenszyklusvorgängen und -verlagerung dynamisch neu berechnet. Wenn Änderungen, z. B. das Hinzufügen neuer VMs zum Pool, dazu führen, dass Ihr Pool überlastet wird, werden Warnungen gesendet (entweder über XenCenter oder per E-Mail).

Warnung vor Überbelegung

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

Host Fencing

Manchmal kann ein Server aufgrund des Verlusts der Netzwerkkonnektivität oder wenn ein Problem mit dem Kontrollstapel auftritt, ausfallen. In solchen Fällen zäunt sich der Citrix Hypervisor-Server selbst ein, um sicherzustellen, dass die VMs nicht auf zwei Servern gleichzeitig ausgeführt werden. Wenn eine Fence-Aktion ausgeführt wird, wird der Server sofort und abrupt neu gestartet, wodurch alle darauf laufenden VMs 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 wieder beizutreten.

Hinweis:

Hosts in Clusterpools können sich 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 Clustered-Pools.

Anforderungen an die Konfiguration

Um die Hochverfügbarkeitsfunktion nutzen zu können, benötigen Sie:

  • Citrix Hypervisor Pool (diese Funktion bietet Hochverfügbarkeit auf Serverebene innerhalb eines einzigen Ressourcenpools).

    Hinweis:

    Wir empfehlen, dass Sie Hochverfügbarkeit nur in Pools aktivieren, die mindestens drei Citrix Hypervisor-Server enthalten. Weitere Informationen finden Sie unter CTX129721 — Hochverfügbarkeitsverhalten, wenn der Heartbeat in einem Pool verloren geht.

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

    4 MB Heartbeat-Volume: Wird verwendet, um einen Heartbeat bereitzustellen.

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

    Hinweise : Für maximale Zuverlässigkeit empfehlen wir die Verwendung eines dedizierten NFS- oder iSCSI-Speicher-Repository als Heartbeat-Disk mit hoher Verfügbarkeit. Verwenden Sie dieses Speicherrepository nicht für andere Zwecke.

    Wenn Ihr Pool ein Cluster-Pool ist, muss Ihr Heartbeat-SR ein GFS2-SR sein.

    Mit SMB oder iSCSI verbundener Speicher bei der Authentifizierung mit CHAP kann nicht als Heartbeat-SR verwendet werden.

    Wenn Sie eine 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 Hochverfügbarkeit aktiviert ist, geht die Hochverfügbarkeit davon aus, dass das Netzwerk des Hosts ausgefallen ist. Die Änderung der IP-Adresse kann den Host umzäunen 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 die Verwendung einer dedizierten gebundenen Schnittstelle als Hochverfügbarkeitsverwaltungsnetzwerk.

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

  • Muss seine virtuellen Datenträger auf freigegebenem Speicher haben. Sie können jede Art von gemeinsam genutztem Speicher verwenden. iSCSI-, NFS- oder Fibre-Channel-LUN ist nur für den Speicher-Heartbeat erforderlich und kann für virtuellen Datenträgerspeicher verwendet werden.

  • Kann Livemigration verwenden

  • Keine Verbindung zu einem lokalen DVD-Laufwerk konfiguriert

  • Hat seine virtuellen Netzwerkschnittstellen in poolweiten Netzwerken

Hinweis:

Wenn Hochverfügbarkeit aktiviert ist, empfehlen wir dringend, eine gebundene Verwaltungsschnittstelle auf den Servern im Pool und Multipath-Speicher für die 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 dieser Situation kann eine VM nicht agil erscheinen und ist nicht durch Hochverfü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. Dieser Befehl analysiert die Platzierungsbeschränkungen, und Sie können bei Bedarf Abhilfemaßnahmen ergreifen.

Konfigurationseinstellungen neu starten

Virtuelle Maschinen können als geschützt, nach bestem Ermessen oder durch Hochverfügbarkeit ungeschützt betrachtet werden. Der Wert von ha-restart-priority definiert, ob eine VM als geschützt, nach bestem Aufwand oder ungeschützt behandelt wird. Das Neustartverhalten von virtuellen Rechnern in jeder dieser Kategorien ist unterschiedlich.

Geschützt

Hochverfügbarkeit garantiert den Neustart einer geschützten VM, die offline geht oder deren Host offline geht, vorausgesetzt, der Pool ist nicht überlastet und die VM agil ist.

Wenn eine geschützte VM nicht neu gestartet werden kann, wenn ein Server ausfällt, versucht Hochverfü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, sind jetzt möglicherweise erfolgreich.

ha-restart-priority Wert: restart

Beste Bemühung

Wenn der Host einer VM mit bestem Aufwand offline geht, versucht Hochverfügbarkeit, die VM mit der besten Leistung auf einem anderen Host neu zu starten. Dieser Versuch wird erst unternommen, nachdem alle geschützten VMs erfolgreich neu gestartet wurden. Hochverfügbarkeit macht nur einen Versuch, eine VM mit bestem Aufwand neu zu starten. Schlägt dieser Versuch fehl, unternimmt Hochverfü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, angehalten wird, versucht High Availability nicht, die VM neu zu starten.

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

Hinweis:

Hochverfügbarkeit stoppt oder migriert niemals eine laufende VM, um Ressourcen für einen Neustart einer geschützten oder nach besten Kräften verfügbaren VM freizugeben.

Wenn im Pool Serverausfälle auftreten und die Anzahl der tolerierbaren Ausfälle auf Null sinkt, kann nicht garantiert werden, dass die geschützten VMs neu gestartet werden. In solchen Fällen wird eine Systemwarnung generiert. Tritt ein weiterer Fehler auf, verhalten sich alle VMs mit festgelegter Neustartpriorität entsprechend dem Bestleistungsverhalten.

Bestellung starten

Die Startreihenfolge ist die Reihenfolge, in der Citrix Hypervisor High Availability 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 der Hochverfügbarkeit und auch von anderen Funktionen verwendet, die VMs starten und herunterfahren. Bei jeder VM kann die order-Eigenschaft festgelegt werden, nicht nur die VMs, die für Hochverfügbarkeit als geschützt gekennzeichnet sind. Bei hoher Verfügbarkeit wird die order-Eigenschaft jedoch nur für geschützte VMs verwendet.

Der Wert der order-Eigenschaft ist eine Ganzzahl. Der Standardwert ist 0, was die höchste Priorität ist. Geschützte virtuelle Maschinen mit einem order-Wert von 0 werden zuerst durch Hochverfügbarkeit neu gestartet. Je höher der Wert der order-Eigenschaft ist, desto später wird die VM in der Reihenfolge 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
<!--NeedCopy-->

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

Ermöglichen Sie Hochverfügbarkeit in Ihrem Citrix Hypervisor-Pool

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

Warnungen:

  • Wenn Sie Hochverfügbarkeit aktivieren, sind 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 durchzuführen, oder alternativ, VMs, die durch Hochverfügbarkeit geschützt sind, ungeschützt machen.

  • Wenn Hochverfügbarkeit aktiviert ist, können Sie kein Clustering in Ihrem Pool aktivieren. Deaktivieren Sie vorübergehend Hochverfügbarkeit, um Clustering zu ermöglichen. Sie können Hochverfügbarkeit in Ihrem Cluster-Pool aktivieren. Ein gewisses Hochverfügbarkeitsverhalten, wie z. B. Self-Fencing, unterscheidet sich bei Cluster-Pools. Weitere Informationen finden Sie unter Clustered-Pools.

Ermöglichen Sie Hochverfügbarkeit mithilfe der CLI

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

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

    xe vm-param-set uuid=vm_uuid ha-restart-priority=restart order=1
    <!--NeedCopy-->
    
  3. Aktivieren Sie Hochverfügbarkeit im Pool und geben Sie optional einen Timeout an:

    xe pool-ha-enable heartbeat-sr-uuids=sr_uuid ha-config:timeout=timeout in seconds
    <!--NeedCopy-->
    

    Das Timeout ist der Zeitraum, in dem das Netzwerk oder der Speicher für die Hosts in Ihrem Pool nicht zugänglich ist. Wenn Sie beim Aktivieren der Hochverfügbarkeit kein Timeout angeben, verwendet Citrix Hypervisor das standardmäßige Zeitlimit von 60 Sekunden. Wenn ein Citrix Hypervisor-Server innerhalb des Timeout-Zeitraums nicht auf das Netzwerk oder den Speicher zugreifen kann, kann er sich selbst abgrenzen 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 ausfallen können, bevor nicht genügend Ressourcen zur Ausführung aller geschützten VMs im Pool vorhanden sind.

    xe pool-ha-compute-max-host-failures-to-tolerate
    <!--NeedCopy-->
    

    Die Anzahl der tolerierten Fehler bestimmt, wann eine Warnung gesendet wird. Das System berechnet einen Failoverplan neu, wenn sich der Status des Pools ändert. Mit dieser Berechnung wird die Poolkapazität ermittelt und wie viele weitere Ausfälle möglich sind, ohne dass die Nutzungsgarantie 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
    <!--NeedCopy-->
    

Entfernen des Hochverfügbarkeitsschutzes von einer VM mithilfe der CLI

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.

Stellen Sie einen nicht erreichbaren Host wieder her

Wenn ein Host aus irgendeinem Grund nicht auf die Hochverfügbarkeitsstatusdatei zugreifen kann, ist es möglich, dass ein Host nicht mehr 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
<!--NeedCopy-->

Wenn der Host der Poolmaster war, wird er wie gewohnt mit deaktivierter Hochverfügbarkeit gestartet. Poolmitglieder verbinden sich erneut und deaktivieren automatisch die Hochverfügbarkeit. Wenn der Host ein Poolmitglied war und den Master nicht kontaktieren kann, müssen Sie möglicherweise eine der folgenden Aktionen ausführen:

  • Erzwinge den Neustart des Hosts als Poolmaster (xe pool-emergency-transition-to-master)

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

     xe pool-emergency-reset-master master-address=new_master_hostname
     <!--NeedCopy-->
    

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

xe pool-ha-enable heartbeat-sr-uuid=sr_uuid
<!--NeedCopy-->

Herunterfahren eines Hosts bei aktivierter Hochverfügbarkeit

Achten Sie beim Herunterfahren oder Neustarten 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, deaktivieren Sie den Host, evakuieren Sie den Host und fahren Sie den Host schließlich mit XenCenter oder der CLI herunter. Führen Sie die folgenden Befehle aus, um einen Host in einer Umgebung herunterzufahren, in der Hochverfügbarkeit aktiviert ist:

    xe host-disable host=host_name
    xe host-evacuate uuid=host_uuid
    xe host-shutdown host=host_name
<!--NeedCopy-->

Fahren Sie eine VM herunter, die durch hohe Verfügbarkeit geschützt ist

Wenn eine VM durch einen Hochverfügbarkeitsplan geschützt und für einen automatischen Neustart eingerichtet ist, kann sie nicht heruntergefahren werden, solange dieser Schutz aktiv ist. Um eine VM herunterzufahren, deaktivieren Sie zunächst ihren Hochverfügbarkeitsschutz und führen Sie dann den CLI-Befehl aus. XenCenter bietet Ihnen ein Dialogfeld zum automatischen Deaktivieren des Schutzes, 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 des Hochverfügbarkeitsausfalls automatisch neu gestartet. Durch den automatischen Neustart wird sichergestellt, dass ein Bedienerfehler nicht dazu führt, dass eine geschützte VM versehentlich heruntergefahren wird. Wenn Sie diese VM herunterfahren möchten, deaktivieren Sie zuerst ihren Hochverfügbarkeitsschutz.

Hohe Verfügbarkeit