XenServer

Hochverfügbarkeit konfigurieren

Hochverfügbarkeit versucht, Ihre VM-Workload im Falle eines Host- oder Hardwareausfalls zu schützen.

Dieser Artikel beschreibt die Aufgaben, die zur Konfiguration der Hochverfügbarkeit ausgeführt werden müssen. Informationen zu Konzepten, Anforderungen und erwartetem Verhalten der Hochverfügbarkeit finden Sie unter Hochverfügbarkeit.

1. Konfigurieren Sie Ihren Pool für Hochverfügbarkeit

Damit ein Pool mit Hochverfügbarkeit kompatibel ist, muss er bestimmte Anforderungen erfüllen:

  1. Stellen Sie sicher, dass Ihr Pool homogen ist, drei oder mehr Hosts enthält und alle Hosts online sind. Weitere Informationen finden Sie unter Einen Pool erstellen.

  2. Richten Sie eine dedizierte, gebündelte Schnittstelle für das Pool-Management-Netzwerk ein und stellen Sie sicher, dass dieses Netzwerk UDP-Verkehr über Port 694 zulässt. Weitere Informationen finden Sie unter NIC-Bonds in Ressourcenpools erstellen.

  3. Konfigurieren Sie statische IP-Adressen für alle Hosts im Pool.

  4. Richten Sie einen gemeinsamen Speicher für alle Hosts im Pool ein. Weitere Informationen finden Sie unter Einen SR erstellen.

  5. Stellen Sie sicher, dass ein gemeinsames Speicher-Repository im Pool auf einer iSCSI-, NFS- oder Fibre Channel-LUN liegt, die die folgenden Anforderungen erfüllt:

    • 4 GB oder mehr Größe.
    • Verfügt über eine robuste Speicherkonnektivität: Konfigurieren Sie für iSCSI- und Fibre Channel-SRs Multipathing. Verwenden Sie für NFS-SRs ein robustes gebündeltes Netzwerk als Speichernetzwerk.

    Dieses SR wird als Heartbeat-SR verwendet.

2. Bereiten Sie Ihre VMs für Hochverfügbarkeit vor

Führen Sie diese Schritte für alle VMs in Ihrem Pool aus, die Sie mit Hochverfügbarkeit schützen möchten:

  1. Stellen Sie sicher, dass die VM agil ist:

    1. Stellen Sie sicher, dass sich die virtuellen Festplatten auf einem freigegebenen Speicher befinden.

      Wenn sich die Festplatten nicht auf einem freigegebenen Speicher befinden, verwenden Sie den folgenden Befehl, um sie zu verschieben:

      xe vm-copy uuid=<vm_uuid> new-name-label=<name_for_copy> sr-uuid=<uuid_of_sr>

      Setzen Sie sr-uuid auf die UUID des freigegebenen Pool-Speichers.

    2. Stellen Sie sicher, dass die VM nicht mit einem lokalen DVD-Laufwerk verbunden ist.

      1. Ermitteln Sie, ob die VM keine leeren CD/DVD-Laufwerke hat, indem Sie Folgendes eingeben:

        xe vbd-list type=CD empty=false vm-uuid=<vm_uuid>
        <!--NeedCopy-->
        

        Wenn ein Laufwerk angeschlossen ist, werden dessen Informationen zurückgegeben. Beachten Sie uuid, das das erste Element in der Liste ist.

      2. Um die CD/DVD-Laufwerke der VM zu leeren, geben Sie Folgendes ein:

        xe vbd-eject uuid=<uuid>
        <!--NeedCopy-->
        
    3. Stellen Sie sicher, dass sich die virtuellen Netzwerkschnittstellen auf poolweiten Netzwerken befinden.

    4. Stellen Sie sicher, dass die VM die Anforderungen für die Live-Migration erfüllt. Weitere Informationen finden Sie unter Migrationsanforderungen.

  2. Legen Sie eine Reihe von Prioritäten fest, die bestimmen, welche VMs die höchste Neustartpriorität erhalten, wenn ein Pool überbelegt ist.

    Setzen Sie den Wert von ha-restart-priority auf eine der folgenden Optionen:

    • restart, um die VM auf einem anderen Host im Pool neu zu starten, vorausgesetzt, der Pool ist nicht überbelegt. XenServer versucht diesen Neustart so lange, bis er erfolgreich ist.
    • best-effort, um einen einzelnen Versuch zu unternehmen, die VM auf einem anderen Host im Pool neu zu starten. XenServer unternimmt diesen Versuch erst, nachdem alle geschützten VMs erfolgreich neu gestartet wurden.

    Wenn Sie den Wert für die order der VMs festlegen, weisen Sie den VMs mit der höchsten Priorität die niedrigste Startreihenfolge zu. Der Standardwert für diese Einstellung ist 0, und VMs mit dieser Startreihenfolge werden zuerst gestartet.

    xe vm-param-set uuid=<vm_uuid> ha-restart-priority=<priority> order=<start_order>
    <!--NeedCopy-->
    

    Sie können stattdessen XenCenter verwenden, um diese Einstellungen für Ihre VMs zu konfigurieren. Weitere Informationen finden Sie unter Startoptionen.

3. Hochverfügbarkeit für Ihren XenServer®-Pool aktivieren

Sie können die Hochverfügbarkeit für einen Pool entweder mit XenCenter oder der Befehlszeilenschnittstelle (CLI) aktivieren. Informationen zur Aktivierung der Hochverfügbarkeit mit XenCenter finden Sie unter Hochverfügbarkeit aktivieren.

So aktivieren Sie die Hochverfügbarkeit mit der xe-CLI:

  1. Um die Hochverfügbarkeit für den Pool zu aktivieren und optional ein Timeout anzugeben, führen Sie den folgenden Befehl aus:

    xe pool-ha-enable heartbeat-sr-uuids=<sr uuid> ha-config:timeout=<timeout_in_seconds>
    <!--NeedCopy-->
    

    Das durch diesen Befehl konfigurierte Timeout gilt nur für diese Aktivierung der Hochverfügbarkeit. Wenn Sie kein Timeout angeben, beträgt der Standardwert 60 Sekunden. Um dieses Standard-Timeout für Ihren Pool zu ändern, siehe Das Hochverfügbarkeits-Timeout konfigurieren.

  2. Berechnen Sie die maximale Anzahl von Hosts, die ausfallen können, bevor nicht genügend Ressourcen vorhanden sind, um alle geschützten VMs im Pool auszuführen, indem Sie den folgenden Befehl ausführen:

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

    Die zurückgegebene Zahl gibt an, wie viele Hostausfälle derzeit im Pool möglich sind, ohne dass die Liveness-Garantie für geschützte VMs verloren geht. Dieser Wert kann sich ändern, wenn sich die Bedingungen im Pool ändern.

  3. Geben Sie die Anzahl der zu tolerierenden Hostausfälle an, die kleiner oder gleich dem im vorherigen Schritt angegebenen Wert ist.

    xe pool-param-set ha-host-failures-to-tolerate=<failure_value> uuid=<pool uuid>
    <!--NeedCopy-->
    

    Die Anzahl der zu tolerierenden Ausfälle bestimmt, wann eine Warnung gesendet wird. Das System berechnet einen Failover-Plan neu, wenn sich der Zustand des Pools ändert. Es verwendet diese Berechnung, um die Poolkapazität zu ermitteln und wie viele weitere Ausfälle möglich sind, ohne dass die Liveness-Garantie für geschützte VMs verloren geht. Eine Systemwarnung wird generiert, wenn dieser berechnete Wert unter den angegebenen Wert fällt.

Das Hochverfügbarkeits-Timeout konfigurieren

Das Timeout ist der Zeitraum, in dem Netzwerk oder Speicher für die Hosts in Ihrem Pool nicht zugänglich sind. Wenn ein XenServer-Host innerhalb des Timeout-Zeitraums nicht auf Netzwerk oder Speicher zugreifen kann, kann er sich selbst isolieren und neu starten. Das Standard-Timeout beträgt 60 Sekunden. Sie können diesen Wert jedoch ändern, indem Sie ein Standard-Hochverfügbarkeits-Timeout für Ihren Pool festlegen:

xe pool-param-set uuid=<pool uuid> other-config:default_ha_timeout=<timeout in seconds>
<!--NeedCopy-->

Wenn Sie die Hochverfügbarkeit mit XenCenter® anstelle der xe-CLI aktivieren, gilt dieser Standardwert weiterhin.

Hochverfügbarkeitsschutz von einer VM entfernen

Um Hochverfügbarkeitsfunktionen für eine VM zu deaktivieren, verwenden Sie den folgenden Befehl:

xe vm-param-set uuid=<vm_uuid> ha-restart-priority=

Dieser Befehl behält die Startreihenfolge-Einstellungen bei. Sie können die Hochverfügbarkeit für diese VM wieder aktivieren, indem Sie den Parameter ha-restart-priority entsprechend auf restart oder best-effort setzen.

Das Neustartverhalten für VMs konfigurieren, die intern heruntergefahren werden

Wenn eine VM durch HA geschützt ist, wird sie standardmäßig neu gestartet, wann immer sie herunterfährt. Dieses Verhalten umfasst interne Herunterfahren, entweder aufgrund eines VM-Absturzes oder eines sauberen Herunterfahrens innerhalb des Gastbetriebssystems.

Sie können dieses Verhalten ändern, um sicherzustellen, dass VMs im HA-fähigen Pool nur neu gestartet werden, wenn der Host, auf dem sie ausgeführt werden, ausfällt oder isoliert wird, und dass in Fällen eines internen Herunterfahrens eine VM heruntergefahren bleibt.

Um HA-geschützte VMs so zu konfigurieren, dass sie nach einem internen Herunterfahren nicht automatisch neu starten, setzen Sie den Wert ha-reboot-vm-on-internal-shutdown auf false:

xe pool-param-set uuid=<pool_uuid> ha-reboot-vm-on-internal-shutdown=false

Um HA-geschützte VMs so zu konfigurieren, dass sie nach einem internen Herunterfahren automatisch neu starten, setzen Sie den Wert ha-reboot-vm-on-internal-shutdown auf true:

xe pool-param-set uuid=<pool_uuid> ha-reboot-vm-on-internal-shutdown=true

Einen unerreichbaren Host wiederherstellen

Wenn ein Host aus irgendeinem Grund nicht auf die Hochverfügbarkeits-Statusdatei zugreifen kann, ist es möglich, dass ein Host unerreichbar wird. Um Ihre XenServer-Installation wiederherzustellen, müssen Sie möglicherweise die Hochverfügbarkeit mit dem Befehl host-emergency-ha-disable auf dem Host deaktivieren:

xe host-emergency-ha-disable --force
<!--NeedCopy-->

Wenn der Host der Pool-Koordinator war, startet er normal mit deaktivierter Hochverfügbarkeit. Poolmitglieder verbinden sich wieder und deaktivieren die Hochverfügbarkeit automatisch. Wenn der Host ein Poolmitglied war und den Pool-Koordinator nicht kontaktieren kann, müssen Sie möglicherweise eine der folgenden Aktionen durchführen:

  • Den Host zwingen, als Pool-Koordinator neu zu starten (xe pool-emergency-transition-to-master)

     xe pool-emergency-transition-to-master uuid=<host uuid>
     <!--NeedCopy-->
    
  • Dem Host mitteilen, wo sich der neue Pool-Koordinator befindet (xe pool-emergency-reset-master):

     xe pool-emergency-reset-master master-address=<new pool coordinator hostname>
     <!--NeedCopy-->
    

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

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

Einen Host herunterfahren, wenn Hochverfügbarkeit aktiviert ist

Seien Sie besonders vorsichtig beim Herunterfahren oder Neustarten eines Hosts, um zu verhindern, dass der Hochverfügbarkeitsmechanismus annimmt, 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 entweder mit XenCenter oder der CLI herunter. Um einen Host in einer Umgebung herunterzufahren, in der Hochverfügbarkeit aktiviert ist, führen Sie diese Befehle aus:

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

Eine durch Hochverfügbarkeit geschützte VM herunterfahren

Wenn eine VM unter einem Hochverfügbarkeitsplan geschützt und so eingestellt ist, dass sie automatisch neu gestartet wird, kann sie nicht heruntergefahren werden, solange dieser Schutz aktiv ist. Um eine VM herunterzufahren, deaktivieren Sie zuerst ihren Hochverfügbarkeitsschutz und führen Sie dann den CLI-Befehl aus.

xe vm-param-set uuid=<vm_uuid> ha-restart-priority=
xe vm-shutdown uuid=<vm_uuid>
<!--NeedCopy-->

XenCenter bietet Ihnen ein Dialogfeld, um das Deaktivieren des Schutzes zu automatisieren, wenn Sie die Schaltfläche Herunterfahren einer geschützten VM auswählen.

Hinweis:

Wenn Sie eine VM innerhalb des Gastsystems herunterfahren und die VM geschützt ist, wird sie unter den Hochverfügbarkeits-Fehlerbedingungen automatisch neu gestartet. Der automatische Neustart stellt sicher, dass ein Bedienerfehler nicht dazu führt, dass eine geschützte VM versehentlich heruntergefahren bleibt. Wenn Sie diese VM herunterfahren möchten, deaktivieren Sie zuerst ihren Hochverfügbarkeitsschutz.