Konfigurieren der Hochverfügbarkeit
Durch hohe Verfügbarkeit wird versucht, Ihre VM-Arbeitslast im Falle eines Host- oder Hardwarefehlers zu schützen.
In diesem Artikel werden die Aufgaben beschrieben, die zum Konfigurieren einer hohen Verfügbarkeit ausgeführt werden müssen. Informationen zu Konzepten, Anforderungen und erwarteten Verhaltensweisen im Zusammenhang mit hoher Verfügbarkeit finden Sie unter Hohe Verfügbarkeit.
1. Konfigurieren Sie Ihren Pool für hohe Verfügbarkeit
Damit ein Pool mit hoher Verfügbarkeit kompatibel ist, muss er bestimmte Anforderungen erfüllen:
-
Stellen Sie sicher, dass Ihr Pool homogen ist, drei oder mehr Hosts enthält und alle Hosts online sind. Weitere Informationen finden Sie unter Erstellen eines Pools.
-
Richten Sie eine dedizierte, gebundene Schnittstelle für das Poolverwaltungsnetzwerk ein und stellen Sie sicher, dass dieses Netzwerk UDP-Verkehr über Port 694 zulässt. Weitere Informationen finden Sie unter Erstellen von NIC-Bindungen in Ressourcenpools.
-
Konfigurieren Sie statische IP-Adressen für alle Hosts im Pool.
-
Richten Sie gemeinsamen Speicher für alle Hosts im Pool ein. Weitere Informationen finden Sie unter Erstellen eines SR.
-
Stellen Sie sicher, dass sich ein gemeinsam genutztes Speicherrepository im Pool auf einer iSCSI-, NFS- oder Fibre Channel-LUN befindet, die die folgenden Anforderungen erfüllt:
- Mindestens 4 GB groß.
- Verfügt über eine stabile Speicherkommunikation: Konfigurieren Sie Multipathing für iSCSI- und Fibre Channel SRs. Verwenden Sie für NFS SRs ein ausfallsicheres verbundenes Netzwerk als Speichernetzwerk.
Dieses SR wird als Heartbeat-SR verwendet.
2. Bereiten Sie Ihre VMs auf 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:
-
Stellen Sie sicher, dass die VM agil ist:
-
Stellen Sie sicher, dass sich die virtuellen Datenträger auf einem gemeinsam genutzten Speicher befinden.
Wenn sich die Datenträger nicht im gemeinsam genutzten Speicher befinden, verschieben Sie sie mit dem folgenden Befehl:
xe vm-copy uuid=<vm_uuid> new-name-label=<name_for_copy> sr-uuid=<uuid_of_sr>Setzen Sie
sr-uuidauf die UUID des gemeinsam genutzten Speichers des Pools. -
Stellen Sie sicher, dass die VM nicht mit einem lokalen DVD-Laufwerk verbunden ist.
-
Stellen Sie fest, 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 die
UUID, das erste Element in der Liste. -
Um die CD/DVD-Laufwerke der VM zu leeren, geben Sie Folgendes ein:
xe vbd-eject uuid=<uuid> <!--NeedCopy-->
-
-
Stellen Sie sicher, dass sich die virtuellen Netzwerkschnittstellen in poolweiten Netzwerken befinden.
-
Stellen Sie sicher, dass die VM die Anforderungen für die Livemigration erfüllt. Weitere Informationen finden Sie unter Migrationsanforderungen.
-
-
Geben Sie eine Reihe von Prioritäten an, die bestimmen, welchen VMs die höchste Neustartpriorität zugewiesen wird, wenn ein Pool überlastet ist.
Setzen Sie den Wert von
ha-restart-priorityauf eine der folgenden Optionen:-
Neustart, um die VM auf einem anderen Host im Pool neu zu starten, vorausgesetzt, der Pool ist nicht überlastet. XenServer versucht diesen Neustart, 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 Reihenfolge `` der VMs festlegen, legen Sie fest, dass die VMs mit der höchsten Priorität die niedrigste Startreihenfolge haben. 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 auf Ihren VMs zu konfigurieren. Weitere Informationen finden Sie unter Startoptionen.
-
3. Aktivieren Sie Hochverfügbarkeit auf Ihrem XenServer-Pool
Sie können die Hochverfügbarkeit in einem Pool entweder mithilfe von XenCenter oder der Befehlszeilenschnittstelle (CLI) aktivieren. Informationen zur Verwendung von XenCenter zum Aktivieren von Hochverfügbarkeit finden Sie unter Hochverfügbarkeit aktivieren.
So aktivieren Sie Hochverfügbarkeit mithilfe der xe-CLI:
-
Um die Hochverfügbarkeit im 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. Informationen zum Ändern dieses Standard-Timeouts für Ihren Pool finden Sie unter Konfigurieren des Timeouts für hohe Verfügbarkeit.
-
Berechnen Sie mit dem folgenden Befehl die maximale Anzahl von Hosts, die ausfallen können, bevor nicht mehr genügend Ressourcen vorhanden sind, um alle geschützten VMs im Pool auszufü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 Aktivitätsgarantie für geschützte VMs verloren geht. Dieser Wert kann sich ändern, wenn sich die Bedingungen im Pool ändern.
-
Geben Sie die Anzahl der zu tolerierenden Hostfehler 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 Fehler bestimmt, wann eine Warnung gesendet wird. Das System berechnet einen Failover-Plan neu, wenn sich der Status des Pools ändert. Mithilfe dieser Berechnung wird die Poolkapazität ermittelt und ermittelt, wie viele weitere Ausfälle möglich sind, ohne dass die Aktivitätsgarantie für geschützte VMs verloren geht. Wenn dieser berechnete Wert unter den angegebenen Wert fällt, wird eine Systemwarnung generiert.
Konfigurieren des Hochverfügbarkeits-Timeouts
Das Timeout ist der Zeitraum, während dem für die Hosts in Ihrem Pool kein Zugriff auf das Netzwerk oder den Speicher möglich ist. Wenn ein XenServer-Host innerhalb des Timeout-Zeitraums nicht auf das Netzwerk oder den Speicher zugreifen kann, kann er sich selbst abschirmen und neu starten. Das Standard-Timeout beträgt 60 Sekunden. Sie können diesen Wert jedoch ändern, indem Sie ein Standard-Timeout für hohe Verfügbarkeit für Ihren Pool festlegen:
xe pool-param-set uuid=<pool uuid> other-config:default_ha_timeout=<timeout in seconds>
<!--NeedCopy-->
Wenn Sie Hochverfügbarkeit aktivieren, indem Sie XenCenter statt der xe CLI verwenden, gilt diese Standardeinstellung weiterhin.
Entfernen des Hochverfügbarkeitsschutzes von einer VM
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 Startreihenfolgeeinstellungen bei. Sie können die Hochverfügbarkeit für diese VM wieder aktivieren, indem Sie den Parameter ha-restart-priority je nach Bedarf auf Neustart oder Best-Effort setzen.
Konfigurieren Sie das Neustartverhalten für VMs, die ordnungsgemäß heruntergefahren werden
Wenn eine VM durch HA geschützt ist, wird sie standardmäßig bei jedem Herunterfahren neu gestartet. Zu diesem Verhalten gehört auch der Neustart der VM, nachdem sie innerhalb des Gastbetriebssystems ordnungsgemäß heruntergefahren wurde.
Sie können dieses Verhalten ändern, um sicherzustellen, dass VMs im HA-fähigen Pool nur neu gestartet werden, wenn sie abstürzen oder wenn der Host, auf dem sie ausgeführt werden, ausfällt oder eingezäunt ist, und dass eine VM im Falle eines sauberen Herunterfahrens heruntergefahren bleibt.
Um HA-geschützte VMs so zu konfigurieren, dass sie nach einem sauberen Herunterfahren nicht automatisch neu gestartet werden, 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 sauberen Herunterfahren automatisch neu gestartet werden, 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 nicht erreichbaren Host wiederherstellen
Wenn ein Host aus irgendeinem Grund nicht auf die Hochverfügbarkeitsstatusdatei zugreifen kann, besteht die Möglichkeit, dass der Host nicht mehr erreichbar ist. 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 Poolkoordinator war, wird er normal mit deaktivierter Hochverfügbarkeit gestartet. Poolmitglieder stellen die Verbindung wieder her und deaktivieren automatisch die Hochverfügbarkeit. Wenn der Gastgeber ein Poolmitglied war und den Poolkoordinator nicht kontaktieren kann, müssen Sie möglicherweise eine der folgenden Aktionen ausführen:
-
Erzwingen Sie einen Neustart des Hosts als Pool-Koordinator (
xe pool-emergency-transition-to-master)xe pool-emergency-transition-to-master uuid=<host uuid> <!--NeedCopy--> -
Teilen Sie dem Host mit, 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 erneut:
xe pool-ha-enable heartbeat-sr-uuid=<sr uuid>
<!--NeedCopy-->
Herunterfahren eines Hosts, wenn Hochverfügbarkeit aktiviert ist
Gehen Sie beim Herunterfahren oder Neustarten eines Hosts besonders vorsichtig vor, um zu verhindern, dass der Hochverfügbarkeitsmechanismus davon ausgeht, dass der Host ausgefallen ist. Um einen Host bei aktivierter Hochverfügbarkeit sauber herunterzufahren, deaktivieren Sie den Host, evakuieren Sie den Host und fahren Sie ihn schließlich mithilfe von 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-->
Herunterfahren einer durch hohe Verfügbarkeit geschützten VM
Wenn eine VM im Rahmen eines Hochverfügbarkeitsplans geschützt und auf automatischen Neustart eingestellt ist, kann sie nicht heruntergefahren werden, während 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 zum automatischen Deaktivieren des Schutzes, wenn Sie die Schaltfläche Herunterfahren einer geschützten VM auswählen.
Hinweis:
Wenn Sie eine VM innerhalb des Gasts herunterfahren und die VM geschützt ist, wird sie automatisch unter den Hochverfügbarkeits-Fehlerbedingungen neu gestartet. Durch den automatischen Neustart wird sichergestellt, dass eine geschützte VM nicht aufgrund eines Bedienfehlers versehentlich heruntergefahren wird. Wenn Sie diese VM herunterfahren möchten, deaktivieren Sie zuerst ihren Hochverfügbarkeitsschutz.
In diesem Artikel
- 1. Konfigurieren Sie Ihren Pool für hohe Verfügbarkeit
- 2. Bereiten Sie Ihre VMs auf Hochverfügbarkeit vor
- 3. Aktivieren Sie Hochverfügbarkeit auf Ihrem XenServer-Pool
- Konfigurieren des Hochverfügbarkeits-Timeouts
- Entfernen des Hochverfügbarkeitsschutzes von einer VM
- Konfigurieren Sie das Neustartverhalten für VMs, die ordnungsgemäß heruntergefahren werden
- Einen nicht erreichbaren Host wiederherstellen
- Herunterfahren eines Hosts, wenn Hochverfügbarkeit aktiviert ist
- Herunterfahren einer durch hohe Verfügbarkeit geschützten VM