In diesem Dokument wird beschrieben, wie Sie die Hostwartungsrichtlinie einer VM-Instanz festlegen, um zu steuern, wie sich die VM bei einem Hostereignis verhält.
Hinweise
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich wie folgt bei Compute Engine authentifizieren.
Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:
Console
Wenn Sie über die Google Cloud Console auf Google Cloud-Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.
gcloud
-
Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:
gcloud init
- Legen Sie eine Standardregion und -zone fest.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:
gcloud init
-
Beschränkungen
- Sie können die Hostwartungsrichtlinie einer VM auf Abruf nicht ändern. Bei einem Wartungsereignis wird die VM auf Abruf beendet und nicht migriert. Sie müssen die vorzeitig beendete VM manuell neu starten.
- Nachdem Sie eine VM mit einem E2-Maschinentyp erstellt haben, können Sie die Hostwartungseinstellungen der VM nicht mehr von
MIGRATE
inTERMINATE
oder umgekehrt ändern.
Verfügbare Hostwartungsattribute
Mit den folgenden Attributen können Sie das Wartungsverhalten, das Neustartverhalten und das Verhalten einer VM nach einem Hostfehler konfigurieren.
Compute Engine konfiguriert jede VM mit den Standardwerten, sofern Sie nichts anderes angeben.
Während Hostereignissen werden je nach konfigurierter Hostwartungsrichtlinie VMs, die die Live-Migration nicht unterstützen, beendet oder automatisch neu gestartet.
onHostMaintenance
: legt das Verhalten bei Auftreten eines Wartungsereignisses fest, das zum Neustart der VM führen kann.MIGRATE
[Standard] : Legt fest, dass Compute Engine die Live-Migration einer Instanz durchführt, wenn ein Wartungsereignis auftritt.TERMINATE
: beendet eine VM, anstatt sie zu migrieren.
automaticRestart
: bestimmt das Verhalten, wenn eine VM abstürzt oder vom System beendet wird.true
[Standard] : Legt fest, dass Compute Engine eine Instanz neu startet, wenn sie abstürzt oder beendet wird.false
: Compute Engine startet eine VM nicht neu, wenn die VM abstürzt oder beendet wird.
localSsdRecoveryTimeout
: Legt das Zeitlimit für die lokale SSD-Wiederherstellung fest. Dies ist die maximale Zeit in Stunden, die Compute Engine darauf wartet, lokale SSD-Daten nach einem Hostfehler wiederherzustellen. Diese Einstellung gilt nur für VMs mit angehängten lokalen SSD-Laufwerken.- Nicht festgelegt (Standard): Compute Engine wartet bis zu eine Stunde, um das Laufwerk wiederherzustellen. Bei Z3-VMs (Vorschau) beträgt die Standardwartezeit 4 Stunden.
- Eine Zahl zwischen 0 und 168: Gibt an, wie lange Compute Engine auf die Wiederherstellung des Laufwerks wartet. Die Zahl muss eine Ganzzahl in Schritten von 1 Stunde mit einem Höchstwert von 7 Tagen sein. Der Wert 0 bedeutet, dass Compute Engine nicht mit der Wiederherstellung der Daten wartet.
hostErrorTimeoutSeconds
(Vorschau): Legt die maximale Zeit in Sekunden fest, die Compute Engine darauf wartet, eine VM neu zu starten oder zu beenden, nachdem erkannt wurde, dass die VM nicht mehr reagiert.- Nicht festgelegt (Standardeinstellung): Compute Engine wartet bis zu 5,5 Minuten (330 Sekunden), bevor eine nicht reagierende VM neu gestartet wird.
- Zahl zwischen 90 und 330: Gibt die Anzahl der Sekunden in Schritten von 30 an, die Compute Engine wartet, bevor eine nicht reagierende VM neu gestartet wird.
Hostwartungsrichtlinie einer VM festlegen
Sie können die Hostwartungsrichtlinie einer VM ändern, wenn Sie die VM erstellen oder nachdem die VM erstellt wurde.
Hostwartungsrichtlinie während der VM-Erstellung festlegen
In diesem Abschnitt wird beschrieben, wie Sie die Hostwartungsrichtlinie beim Erstellen einer VM festlegen. Weitere Beispiele zur VM-Erstellung finden Sie unter VM-Instanz erstellen und starten.
Sie können die Hostwartungsrichtlinie einer VM bei der Erstellung über die Google Cloud Console, die gcloud CLI oder die Compute Engine API festlegen.
Console
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Geben Sie einen Namen für die VM an.
Wählen Sie eine Region und eine Zone für die VM aus.
Führen Sie im Abschnitt Maschinenkonfiguration die folgenden Schritte aus:
- Geben Sie die Details des Maschinentyps für die VM an.
- Maximieren Sie das Menü Erweiterte Einstellungen für das VM-Bereitstellungsmodell.
- Wählen Sie im Menü Bei Hostwartung einen der folgenden Schritte aus:
- Wählen Sie VM-Instanz migrieren aus, um VMs während Wartungsereignissen zu migrieren.
- Wählen Sie VM-Instanz beenden aus, um VMs während Wartungsereignissen zu beenden.
Klicken Sie auf Erstellen, um die VM zu erstellen.
gcloud
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Verwenden Sie den Befehl gcloud compute instances create
, um die Hostwartungsrichtlinie einer neuen VM festzulegen. Verwenden Sie einen oder mehrere der folgenden Parameter:
--maintenance-policy
: gibt an, ob die VM während der Hostwartung migriert oder beendet wird. Die VM wird standardmäßig migriert, wenn Sie dieses Attribut weglassen.--no-restart-on-failure
oder--restart-on-failure
: gibt an, ob die VM nach einem Hostfehler automatisch neu gestartet wird. Standardmäßig wird die VM immer neu gestartet, wenn ein Fehler erkannt wird.--local-ssd-recovery-timeout
: Zeit, die Compute Engine nach einem Hostfehler für die Wiederherstellung der angehängten lokalen SSD-Laufwerke aufgewendet. Die Standardeinstellung ist 1 Stunde.
Legen Sie die Hostwartungsrichtlinie einer neuen VM mit dem folgenden Befehl fest. Wenn Sie eines der Flags weglassen, wird der Standardwert des Flags verwendet.
gcloud compute instances create VM_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--RESTART_ON_FAILURE_BEHAVIOR \
--local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT
Ersetzen Sie Folgendes:
VM_NAME
: der VM-NameMAINTENANCE_POLICY
: Wartungsrichtlinie für diese VM, entwederTERMINATE
oderMIGRATE
.RESTART_ON_FAILURE_BEHAVIOR
: Das Verhalten beim Neustart der VM, festgelegt auf--no-restart-on-failure
oder--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: Anzahl der Stunden, die für die Wiederherstellung einer lokalen SSD benötigt werden, die an eine nicht reagierende VM angehängt ist. Gültige Werte liegen zwischen 0 und 168, in Schritten von 1 Stunde.
Zeitlimit für die Erkennung von Hostfehlern festlegen
Legen Sie mit dem Befehl gcloud compute instances create
die maximale Zeit fest, die Compute Engine wartet, bis eine nicht reagierende VM neu gestartet oder beendet wird. Geben Sie das Zeitlimit mit dem Flag --host-error-timeout-seconds
an.
gcloud beta compute instances create VM_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--RESTART_ON_FAILURE_BEHAVIOR \
--local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
--host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT
Ersetzen Sie Folgendes:
VM_NAME
: der VM-NameMAINTENANCE_POLICY
: Wartungsrichtlinie für diese VM, entwederTERMINATE
oderMIGRATE
.RESTART_ON_FAILURE_BEHAVIOR
: Das Verhalten beim Neustart der VM, festgelegt auf--no-restart-on-failure
oder--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: die Anzahl der Stunden, die Compute Engine für die Wiederherstellung einer lokalen SSD benötigt, die an eine nicht reagierende VM angehängt wurde. Gültige Werte liegen zwischen 0 und 168, in Schritten von 1 Stunde.ERROR_DETECTION_TIMEOUT
ist die Anzahl der Sekunden (von 90 bis 330 in Schritten von 30), bevor Compute Engine wartet, bevor eine nicht reagierende VM neu gestartet wird.
REST
Mit der Methode instances.insert
können Sie die Hostwartungsrichtlinie einer neuen VM mit der Compute Engine API festlegen.
Fügen Sie in das Objekt scheduling
des Anfragetexts eines oder mehrere der folgenden Attribute ein:
onHostMaintenance
: gibt an, ob die VM während der Hostwartung migriert oder beendet wird. Die VM wird standardmäßig migriert.automaticRestart
: VM wird nach einem Hostfehler automatisch neu gestartet. VMs werden standardmäßig automatisch neu gestartet.localSsdRecoveryTimeout
: wie viel Zeit Compute Engine benötigt, um angehängte lokale SSD-Laufwerke nach der Erkennung eines Hostfehlers wiederherzustellen. Die Standardeinstellung ist 1 Stunde.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "VM_NAME",
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY",
"automaticRestart": "RESTART_POLICY,
"localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
}
}
Ersetzen Sie Folgendes:
PROJECT_ID
: das Projekt für die VM.ZONE
: die Zone, in der Sie die VM erstellen möchten.VM_NAME
: der VM-NameMAINTENANCE_POLICY
: Wartungsrichtlinie für diese VM, entwederTERMINATE
oderMIGRATE
.RESTART_POLICY
: Neustartrichtlinie für diese VM, entwedertrue
oderfalse
.SSD_RECOVERY_TIMEOUT
: Die Anzahl der Stunden, die Compute Engine auf der Wiederherstellung eines lokalen SSD-Laufwerks verbringt, das an eine nicht reagierende VM angehängt ist. Gültige Werte liegen zwischen 0 und 168, in Schritten von 1 Stunde.
Zeitlimit für die Erkennung von Hostfehlern festlegen
Legen Sie mit der Betamethode instances.insert
die maximale Zeit fest, die Compute Engine wartet, bis eine nicht reagierende VM neu gestartet oder beendet wird, da diese Option in der Vorschau verfügbar ist.
Fügen Sie dem scheduling
-Objekt des Anfragetexts das Attribut hostErrorTimeoutSeconds
hinzu.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "VM_NAME",
"scheduling": {
"onHostMaintenance": "MAINTENANCE_POLICY",
"automaticRestart": "RESTART_POLICY,
"localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
"hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT,
}
}
Ersetzen Sie Folgendes:
PROJECT_ID
: das Projekt für die VM.ZONE
: die Zone, in der Sie die VM erstellen möchten.VM_NAME
: der VM-NameMAINTENANCE_POLICY
: Wartungsrichtlinie für diese VM, entwederTERMINATE
oderMIGRATE
.RESTART_POLICY
: Neustartrichtlinie für diese VM, entwedertrue
oderfalse
.SSD_RECOVERY_TIMEOUT
: Die Anzahl der Stunden, die Compute Engine auf die Wiederherstellung eines lokalen SSD-Laufwerks verbringen kann, das an eine nicht reagierende VM angehängt ist. Gültige Werte liegen zwischen 0 und 168, in Schritten von 1 Stunde.HOST_ERROR_TIMEOUT
ist die Anzahl der Sekunden, die Compute Engine wartet, bevor eine nicht reagierende VM neu gestartet oder beendet wird. Gültige Werte sind von 90 bis 330 in Schritten von 30.
Hostwartungsrichtlinie einer vorhandenen VM aktualisieren
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie auf die VM, deren Einstellungen Sie ändern möchten. Die Seite mit den VM-Details wird angezeigt.
Führen Sie auf der Seite mit den VM-Details die folgenden Schritte aus:
- Klicken Sie oben auf der Seite auf Bearbeiten.
- Wechseln Sie zum Bereich Verwaltung. Im Bereich Verfügbarkeitsrichtlinien können Sie die Optionen Bei Hostwartung und Automatischer Neustart festlegen.
- Klicken Sie auf Speichern.
gcloud
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Aktualisieren Sie die Hostwartungsrichtlinie einer vorhandenen VM mit dem Befehl gcloud compute instances set-scheduling
. Verwenden Sie dieselben Parameter, die im vorherigen Abschnitt zur VM-Erstellung beschrieben wurden.
gcloud compute instances set-scheduling VM_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--RESTART_ON_FAILURE_BEHAVIOR \
--local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT
Ersetzen Sie Folgendes:
VM_NAME
: der VM-NameMAINTENANCE_POLICY
: die Richtlinie für diese VM, entwederTERMINATE
oderMIGRATE
RESTART_ON_FAILURE_BEHAVIOR
: Neustartverhalten der VM,--no-restart-on-failure
oder--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: Die Zeit in Stunden, in der Compute Engine die Wiederherstellung eines lokalen SSD-Laufwerks ermöglicht, das an eine nicht reagierende VM angehängt ist. Gültige Werte sind 0 bis 168.
Zeitlimit für Hostfehlererkennung aktualisieren
Verwenden Sie den Befehl gcloud beta compute instances set-scheduling
, um die maximale Zeit zu aktualisieren, die Compute Engine auf den Neustart oder die Beendigung einer nicht reagierenden VM wartet, da dieses Feature nur
in der Vorschau verfügbar.
Aktualisieren Sie das Zeitlimit mit dem Parameter --host-error-timeout-seconds
.
Beispiel:
gcloud beta compute instances set-scheduling VM_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--RESTART_ON_FAILURE_BEHAVIOR \
--local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
--host-error-timeout-seconds=NUMBER_OF_SECONDS
Ersetzen Sie Folgendes:
VM_NAME
: der VM-NameMAINTENANCE_POLICY
: Wartungsrichtlinie für diese VM, entwederTERMINATE
oderMIGRATE
.RESTART_ON_FAILURE_BEHAVIOR
: Neustartverhalten der VM, festgelegt auf--no-restart-on-failure
oder--restart-on-failure
.SSD_RECOVERY_TIMEOUT
: In Stunden benötigt Compute Engine die Wiederherstellung eines lokalen SSD-Laufwerks, das an eine nicht reagierende VM angehängt ist. Gültige Werte sind 0 bis 168.NUMBER_OF_SECONDS
ist die Anzahl der Sekunden (zwischen 90 und 330), bevor eine nicht reagierende VM neu gestartet oder beendet wird.
REST
Aktualisieren Sie die Hostwartungsrichtlinie einer vorhandenen VM mit einer POST
-Anfrage an die Methode instances.setScheduling
.
Geben Sie im Anfragetext mindestens eines der folgenden Attribute an:
onHostMaintenance
: gibt an, ob die VM während der Hostwartung migriert oder beendet wird. Die VM wird standardmäßig migriert.automaticRestart
: VM wird nach einem Hostfehler automatisch neu gestartet. VMs werden standardmäßig automatisch neu gestartet.localSsdRecoveryTimeout
: wie viel Zeit Compute Engine benötigt, um angehängte lokale SSD-Laufwerke nach der Erkennung eines Hostfehlers wiederherzustellen. Wenn keine Angabe gemacht wird, beträgt der Standardwert 1 Stunde.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
{
"onHostMaintenance": "MAINTENANCE_POLICY",
"automaticRestart": RESTART_POLICY,
"localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
}
Ersetzen Sie Folgendes:
PROJECT_ID
: das Projekt für die VM.ZONE
ist die Zone, in der sich die VM befindet.VM_NAME
: der VM-NameMAINTENANCE_POLICY
: Wartungsrichtlinie für diese VM, entwederTERMINATE
oderMIGRATE
.RESTART_POLICY
: Neustartrichtlinie für diese VM, entwedertrue
oderfalse
.SSD_RECOVERY_TIMEOUT
: Die Zeit in Stunden, die Compute Engine auf die Wiederherstellung eines lokalen SSD-Laufwerks umgestellt hat, das an eine nicht reagierende VM angehängt war. Gültige Werte sind 0 bis 168.
Zeitlimit für Hostfehlererkennung aktualisieren
Wenn Sie die maximale Zeit aktualisieren möchten, die Compute Engine wartet, bis eine nicht reagierende VM neu gestartet oder beendet wird, müssen Sie die Betamethode instances.setScheduling
verwenden, da dieses Feature in der Vorschau verfügbar ist.
Fügen Sie den Parameter hostErrorTimeoutSeconds
in den Anfragetext ein.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
{
"hostErrorTimeoutSeconds": NUMBER_OF_SECONDS,
}
Ersetzen Sie Folgendes:
PROJECT_ID
: das Projekt für die VM.ZONE
ist die Zone, in der sich die VM befindet.VM_NAME
: der VM-NameNUMBER_OF_SECONDS
ist die Anzahl der Sekunden (zwischen 90 und 330), bevor eine nicht reagierende VM neu gestartet oder beendet wird.
Einstellungen für Hostwartungsrichtlinien einer VM ansehen
Console
Rufen Sie die Seite VM-Instanzen auf.
Klicken Sie auf den Namen der VM, für die Sie Metadaten aufrufen möchten. Die Seite VM-Instanzdetails wird geöffnet.
Wechseln Sie zum Bereich Verwaltung. Im Abschnitt Verfügbarkeitsrichtlinien werden die aktuellen Einstellungen für Wartung des Hosts und Automatischer Neustart angezeigt.
gcloud
Sehen Sie sich die Einstellungen für die Hostwartungsoption für eine VM mit dem Befehl gcloud compute instances describe
an:
gcloud compute instances describe VM_NAME --format="yaml(scheduling)"
Ersetzen Sie VM_NAME
durch den VM-Namen.
Die Ausgabe enthält das Zeitlimit für die Hostfehlererkennung der VM. Beispiel:
scheduling:
automaticRestart: true
localSsdRecoveryTimeout:
nanos: 0
seconds: '10800'
onHostMaintenance: MIGRATE
preemptible: false
provisioningModel: STANDARD
Einstellung für das Zeitlimit der Hostfehlererkennung aufrufen
Rufen Sie den aktuellen Wert von hostErrorTimeoutSeconds
mit dem Befehl gcloud beta compute instances describe
auf, da diese Option nur in der Vorschau verfügbar ist.
gcloud beta compute instances describe VM_NAME --format="yaml(scheduling)"
Ersetzen Sie VM_NAME
durch den VM-Namen.
Die Ausgabe enthält das Zeitlimit für die Hostfehlererkennung der VM. Beispiel:
scheduling:
automaticRestart: true
hostErrorTimeoutSeconds: 120
localSsdRecoveryTimeout:
nanos: 0
seconds: '10800'
onHostMaintenance: MIGRATE
preemptible: false
provisioningModel: STANDARD
REST
Verwenden Sie die instances.get
-Methode, um die Einstellungen für die Hostwartung für eine VM aufzurufen:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Ersetzen Sie Folgendes:
PROJECT_ID
: das Projekt, in der sich die VM befindet.ZONE
ist die Zone, in der sich die VM befindet.VM_NAME
: der VM-Name
In der Ausgabe enthält das Objekt scheduling
die Hostwartungsrichtlinie der VM. Beispiel:
"scheduling": {
"onHostMaintenance": "MIGRATE",
"automaticRestart": true,
"preemptible": false,
"provisioningModel": "STANDARD",
"localSsdRecoveryTimeout": {
"seconds": "10800",
"nanos": 0
}
}
Einstellungen für Zeitüberschreitungen bei Hostfehlern aufrufen
Rufen Sie die aktuelle hostErrorTimeoutSeconds
-Einstellung mit einer GET
-Anfrage an die Betamethode instances.get
auf, da diese Option nur in der Vorschau verfügbar ist.
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Ersetzen Sie Folgendes:
PROJECT_ID
: das Projekt für die VM.ZONE
ist die Zone, in der sich die VM befindet.VM_NAME
: der VM-Name
In der Ausgabe enthält das Objekt scheduling
das Zeitlimit für die Hostfehlererkennung der VM. Beispiel:
"scheduling": {
"hostErrorTimeoutSeconds": 120
}