Umgang mit Maschinenausfällen
Dieser Abschnitt enthält Details zur Wiederherstellung nach verschiedenen Fehlerszenarien. Alle Szenarien zur Fehlerbehebung erfordern die Verwendung eines oder mehrerer der in Backup aufgeführten Sicherungstypen.
Ausfälle von Mitgliedern
Ohne HA erkennen Pool-Koordinator-Knoten die Ausfälle von Mitgliedern durch den Empfang regelmäßiger Heartbeat-Nachrichten. Wenn 600 Sekunden lang kein Heartbeat empfangen wurde, geht der Pool-Koordinator davon aus, dass das Mitglied tot ist. Es gibt zwei Möglichkeiten, dieses Problem zu beheben:
-
Reparieren Sie den ausgefallenen Host (z. B. durch einen physischen Neustart). Wenn die Verbindung zum Mitglied wiederhergestellt ist, markiert der Pool-Koordinator das Mitglied wieder als aktiv.
-
Fahren Sie den Host herunter und weisen Sie den Pool-Koordinator an, den Mitgliedsknoten mithilfe des CLI-Befehls
xe host-forgetzu vergessen. Sobald das Mitglied vergessen wurde, werden alle dort ausgeführten VMs als offline markiert und können auf anderen XenServer-Hosts neu gestartet werden.Es ist wichtig sicherzustellen, dass der XenServer®-Host tatsächlich offline ist, da sonst Datenbeschädigungen an den VMs auftreten könnten.
Teilen Sie Ihren Pool nicht mithilfe von
xe host-forgetin mehrere Pools mit einem einzigen Host auf. Dies könnte dazu führen, dass alle denselben gemeinsam genutzten Speicher zuordnen und VM-Daten beschädigen.
Warnung:
- Wenn Sie den vergessenen Host wieder als aktiven Host verwenden möchten, führen Sie eine Neuinstallation der XenServer-Software durch.
- Verwenden Sie den Befehl
xe host-forgetnicht, wenn HA im Pool aktiviert ist. Deaktivieren Sie zuerst HA, vergessen Sie dann den Host und aktivieren Sie HA anschließend erneut.
Wenn ein XenServer-Mitgliedshost ausfällt, sind möglicherweise noch VMs im Status running registriert. Wenn Sie sicher sind, dass der XenServer-Mitgliedshost definitiv ausgefallen ist, verwenden Sie den CLI-Befehl xe vm-reset-powerstate, um den Energiestatus der VMs auf halted zu setzen. Weitere Details finden Sie unter vm-reset-powerstate.
Warnung:
Eine falsche Verwendung dieses Befehls kann zu Datenbeschädigungen führen. Verwenden Sie diesen Befehl nur bei Bedarf.
Bevor Sie VMs auf einem anderen XenServer-Host starten können, müssen Sie auch die Sperren für den VM-Speicher freigeben. Nur ein Host kann jeweils jede Festplatte in einem SR verwenden. Es ist entscheidend, die Festplatte für andere XenServer-Hosts zugänglich zu machen, sobald ein Host ausgefallen ist. Führen Sie dazu das folgende Skript auf dem Pool-Koordinator für jedes SR aus, das Festplatten betroffener VMs enthält: /opt/xensource/sm/resetvdis.py host_UUID SR_UUID master
Sie müssen die dritte Zeichenfolge („master“) nur angeben, wenn der ausgefallene Host zum Zeitpunkt des Absturzes der SR-Pool-Koordinator war. (Der SR-Pool-Koordinator ist der Pool-Koordinator oder ein XenServer-Host, der lokalen Speicher verwendet.)
Warnung:
Stellen Sie sicher, dass der Host heruntergefahren ist, bevor Sie diesen Befehl ausführen. Eine falsche Verwendung dieses Befehls kann zu Datenbeschädigung führen.
Wenn Sie versuchen, eine VM auf einem anderen XenServer-Host zu starten, bevor Sie das resetvdis.py-Skript ausführen, erhalten Sie die folgende Fehlermeldung: VDI <UUID> already attached RW.
Ausfälle des Pool-Koordinators
Jedes Mitglied eines Ressourcenpools enthält alle notwendigen Informationen, um bei Bedarf die Rolle des Pool-Koordinators zu übernehmen. Wenn ein Pool-Koordinator-Knoten ausfällt, tritt die folgende Abfolge von Ereignissen ein:
-
Wenn HA aktiviert ist, wird automatisch ein anderer Pool-Koordinator gewählt.
-
Wenn HA nicht aktiviert ist, wartet jedes Mitglied darauf, dass der Pool-Koordinator zurückkehrt.
Wenn der Pool-Koordinator zu diesem Zeitpunkt wieder online geht, stellt er die Kommunikation mit seinen Mitgliedern wieder her, und der Betrieb kehrt zum Normalzustand zurück.
Wenn der Pool-Koordinator ausgefallen ist, wählen Sie eines der Mitglieder aus und führen Sie den Befehl xe pool-emergency-transition-to-master darauf aus. Sobald es der Pool-Koordinator geworden ist, führen Sie den Befehl xe pool-recover-slaves aus, und die Mitglieder zeigen nun auf den neuen Pool-Koordinator.
Wenn Sie den Host, der der ursprüngliche Pool-Koordinator war, reparieren oder ersetzen, können Sie ihn einfach hochfahren, die XenServer-Software installieren und ihn dem Pool hinzufügen. Da die XenServer-Hosts im Pool homogen sein müssen, besteht keine wirkliche Notwendigkeit, den ersetzten Host zum Pool-Koordinator zu machen.
Wenn ein XenServer-Host-Mitglied zu einem Pool-Koordinator wird, überprüfen Sie, ob das Standard-Pool-Speicher-Repository auf einen geeigneten Wert eingestellt ist. Diese Überprüfung kann mit dem Befehl xe pool-param-list erfolgen und indem Sie überprüfen, ob der default-SR-Parameter auf ein gültiges Speicher-Repository verweist.
Pool-Ausfälle
Im unglücklichen Fall, dass Ihr gesamter Ressourcenpool ausfällt, müssen Sie die Pool-Datenbank von Grund auf neu erstellen. Stellen Sie sicher, dass Sie Ihre Pool-Metadaten regelmäßig mit dem xe pool-dump-database CLI-Befehl sichern (siehe pool-dump-database).
So stellen Sie einen vollständig ausgefallenen Pool wieder her:
-
Installieren Sie einen neuen Satz von Hosts. Fassen Sie sie zu diesem Zeitpunkt nicht zusammen.
-
Für den als Pool-Koordinator benannten Host stellen Sie die Pool-Datenbank aus Ihrem Backup mit dem Befehl
xe pool-restore-databasewieder her (siehe pool-restore-database). -
Verbinden Sie sich mit dem Pool-Koordinator über XenCenter® und stellen Sie sicher, dass all Ihr freigegebener Speicher und Ihre VMs wieder verfügbar sind.
-
Führen Sie einen Pool-Beitrittsvorgang auf den verbleibenden frisch installierten Mitglieds-Hosts durch und starten Sie Ihre VMs auf den entsprechenden Hosts.
Umgang mit Fehlern aufgrund von Konfigurationsfehlern
Wenn die physische Hostmaschine betriebsbereit ist, aber die Software oder Hostkonfiguration beschädigt ist:
-
Führen Sie den folgenden Befehl aus, um die Host-Software und -Konfiguration wiederherzustellen:
xe host-restore host=host file-name=hostbackup <!--NeedCopy--> -
Starten Sie von der Host-Installations-CD neu und wählen Sie Aus Backup wiederherstellen.
Ausfall der physischen Maschine
Wenn die physische Hostmaschine ausgefallen ist, verwenden Sie das entsprechende Verfahren aus der folgenden Liste zur Wiederherstellung.
Warnung:
Alle VMs, die auf einem früheren Mitglied (oder dem früheren Host) liefen und ausgefallen sind, sind in der Datenbank immer noch als
Runningmarkiert. Dieses Verhalten dient der Sicherheit. Das gleichzeitige Starten einer VM auf zwei verschiedenen Hosts würde zu schwerwiegenden Festplattenbeschädigungen führen. Wenn Sie sicher sind, dass die Maschinen (und VMs) offline sind, können Sie den VM-Einschaltzustand aufHaltedzurücksetzen:
xe vm-reset-powerstate vm=vm_uuid --forceVMs können dann mit XenCenter oder der CLI neu gestartet werden.
So ersetzen Sie einen ausgefallenen Pool-Koordinator durch ein noch laufendes Mitglied:
-
Führen Sie die folgenden Befehle aus:
xe pool-emergency-transition-to-master xe pool-recover-slaves <!--NeedCopy--> -
Wenn die Befehle erfolgreich sind, starten Sie die VMs neu.
So stellen Sie einen Pool wieder her, bei dem alle Hosts ausgefallen sind:
-
Führen Sie den Befehl aus:
xe pool-restore-database file-name=backup <!--NeedCopy-->Warnung:
Dieser Befehl ist nur erfolgreich, wenn der Zielcomputer über eine entsprechende Anzahl von ordnungsgemäß benannten NICs verfügt.
-
Wenn der Zielcomputer eine andere Ansicht des Speichers hat als der ursprüngliche Computer, ändern Sie die Speicherkonfiguration mit dem Befehl
pbd-destroy. Verwenden Sie anschließend den Befehlpbd-create, um Speicherkonfigurationen neu zu erstellen. Eine Dokumentation dieser Befehle finden Sie unter pbd commands. -
Wenn Sie eine Speicherkonfiguration erstellt haben, verwenden Sie
pbd-plugoder den Menüpunkt Storage > Repair Storage Repository in XenCenter, um die neue Konfiguration zu verwenden. -
Starten Sie alle VMs neu.
So stellen Sie eine VM wieder her, wenn der VM-Speicher nicht verfügbar ist:
-
Führen Sie den folgenden Befehl aus:
xe vm-import filename=backup metadata=true <!--NeedCopy--> -
Wenn der Metadatenimport fehlschlägt, führen Sie den Befehl aus:
xe vm-import filename=backup metadata=true --force <!--NeedCopy-->Dieser Befehl versucht, die VM-Metadaten nach bestem Wissen und Gewissen wiederherzustellen.
-
Starten Sie alle VMs neu.