VM-Hostwartungsrichtlinie festlegen


In diesem Dokument wird beschrieben, wie Sie die Hostwartungsrichtlinie einer VM-Instanz festlegen, um das Verhalten der VM bei einem Hostereignis zu konfigurieren.

Vorbereitung

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 in Terminate oder umgekehrt ändern.

Hostwartungsrichtlinie einer VM festlegen

Sie können die Hostwartungsrichtlinie einer VM ändern, wenn Sie eine VM erstellen oder nachdem die VM erstellt wurde. Dazu verwenden Sie die Methode setScheduling. Wenn Sie das Wartungsverhalten, das Neustartverhalten und die Erkennungszeit von Hostfehlern konfigurieren möchten, verwenden Sie die Attribute onHostMaintenance, automaticRestart und hostErrorTimeoutSeconds. Compute Engine konfiguriert alle VMs mit Standardwerten, sofern Sie nichts anderes angeben.

  • onHostMaintenance: legt das Verhalten bei Auftreten eines Wartungsereignisses fest, das zum Neustart der VM führen kann.

    • MIGRATE: führt dazu, dass Compute Engine die Live-Migration einer Instanz durchführt, wenn ein Wartungsereignis auftritt. Das ist der Standardwert.
    • TERMINATE: beendet eine VM, anstatt sie zu migrieren.
  • automaticRestart: bestimmt das Verhalten, wenn eine VM abstürzt oder vom System beendet wird.

    • true: Compute Engine startet eine Instanz neu, wenn sie abstürzt oder beendet wird. Das ist der Standardwert.
    • false: Compute Engine startet eine VM nicht neu, wenn die VM abstürzt oder beendet wird.
  • 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.

    • [Standard] ist nicht festgelegt. Compute Engine wartet bis zu 5,5 Minuten (330 Sekunden), bevor eine nicht reagierende VM neu gestartet wird.
    • Anzahl von Sekunden zwischen 90 und 330 in Schritten von 30, was festlegt, wie lange Compute Engine wartet, bevor eine nicht reagierende VM neu gestartet wird.

Alle VMs werden mit Standardwerten konfiguriert, es sei denn, Sie haben sie ausdrücklich anders festgelegt. Während Hostereignissen werden je nach konfigurierter Hostwartungsrichtlinie VMs, die die Live-Migration nicht unterstützen, beendet oder automatisch neu gestartet.

Hostwartungsrichtlinie während der VM-Erstellung festlegen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.

    Zur Seite „Instanz erstellen“

  2. Maximieren Sie den Bereich Netzwerk, Laufwerke, Sicherheit, Verwaltung, einzelne Mandanten und gehen Sie so vor:

    1. Maximieren Sie den Bereich Verwaltung.
    2. Wählen Sie in der Liste Automatischer Neustart die gewünschte Option aus.
    3. Wählen Sie in der Liste Bei Hostwartung die gewünschte Option aus.
  3. Klicken Sie auf Erstellen, um die VM zu erstellen.

gcloud

Verwenden Sie zum Festlegen der Hostwartungsrichtlinie einer neuen VM in gcloud compute das Flag --maintenance-policy, um anzugeben, ob die VM migriert oder beendet wird. Standardmäßig werden VMs automatisch neu gestartet, es sei denn, Sie geben das Flag --no-restart-on-failure an.

Verwenden Sie das Flag --host-error-timeout-seconds (Vorschau), um die maximale Zeit anzugeben, die Compute Engine wartet, um eine VM neu zu starten oder zu beenden, nachdem erkannt wurde, dass die VM nicht mehr reagiert.

gcloud compute instances create VM_NAME \
    --maintenance-policy=MAINTENANCE_POLICY \
    --host-error-timeout-seconds=NUMBER_OF_SECONDS \
    [--no-restart-on-failure]

Dabei gilt:

  • VM_NAME: der VM-Name
  • MAINTENANCE_POLICY: die Richtlinie für diese VM, entweder TERMINATE oder MIGRATE
  • NUMBER_OF_SECONDS: die Anzahl der Sekunden, die Compute Engine wartet, bis eine nicht reagierende VM zwischen 90 und 330 in Schritten von 30 neu gestartet wird. Diese Option ist in der Vorschau verfügbar. Für diese Option verwenden Sie den Befehl gcloud beta compute instances create.

API

Mit der Methode instances.insert können Sie die Hostwartungsrichtlinie einer neuen VM mit der Compute Engine API festlegen.

Fügen Sie im Anfragetext onHostMaintenance ein, um anzugeben, ob die VM während der Hostwartung migriert oder beendet wird. VMs werden automatisch nach einem Hostfehler neu gestartet, es sei denn, Sie legen automaticRestart auf false fest.

Wenn Sie die maximale Zeit angeben möchten, die Compute Engine wartet, bis eine VM neu gestartet oder beendet wird, nachdem erkannt wurde, dass die VM nicht mehr reagiert, fügen Sie den Parameter hostErrorTimeoutSeconds (Vorschau) in den Anfragetext hinzu.

Stellen Sie in der API eine POST-Anfrage an die folgende URL, wodurch das Projekt und die Zone durch Ihre Projekt-ID und die Zone der VM ersetzt werden:

https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

Dabei gilt:

  • PROJECT_ID: das Projekt, in dem Sie die VM erstellen möchten
  • ZONE: die Zone, in der Sie die VM erstellen möchten.

Fügen Sie die Parameter onHostMaintenance, hostErrorTimeoutSeconds und automaticRestart als Teil des Anfragetexts hinzu:

{
 "name": "VM_NAME",
 ...
 // User options for influencing this Instance's life cycle.
 "scheduling": {
   "onHostMaintenance": "MAINTENANCE_POLICY",
   "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS,
   "automaticRestart": RESTART_POLICY
 }
}

Dabei gilt:

  • VM_NAME: der VM-Name
  • MAINTENANCE_POLICY: die Richtlinie für diese VM, entweder TERMINATE oder MIGRATE.
  • NUMBER_OF_SECONDS: die Anzahl der Sekunden, die Compute Engine wartet, bis eine nicht reagierende VM zwischen 90 und 330 in Schritten von 30 neu gestartet wird. Diese Option ist in der Vorschau verfügbar. Verwenden Sie diese Option mit der Betamethode instances.inset.
  • RESTART_POLICY: Neustartrichtlinie für diese VM, entweder true oder false.

Hostwartungsrichtlinie einer VM aktualisieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu „VM-Instanzen“

  2. Klicken Sie auf die VM, deren Einstellungen Sie ändern möchten. Die Seite mit den VM-Details wird angezeigt.

  3. Führen Sie auf der Seite mit den VM-Details die folgenden Schritte aus:

    1. Klicken Sie oben auf der Seite auf Bearbeiten.
    2. Aktualisieren Sie unter Verfügbarkeitsrichtlinien die Richtlinie nach Bedarf. Im Bereich Verfügbarkeitsrichtlinien können Sie die Optionen Bei Hostwartung und Automatischer Neustart festlegen.
    3. Klicken Sie auf Speichern.

gcloud

Verwenden Sie zum Aktualisieren der Hostwartungsrichtlinie einer vorhandenen VM den Befehl gcloud compute instances set-scheduling mit den gleichen Parametern und Flags wie im oben gezeigten Befehl zum Erstellen einer VM.

gcloud compute instances set-scheduling VM_NAME \
     --maintenance-policy=MAINTENANCE_POLICY \
     --host-error-timeout-seconds=NUMBER_OF_SECONDS \
     [--no-restart-on-failure | --restart-on-failure]

Dabei gilt:

  • MAINTENANCE_POLICY: die Richtlinie für diese VM, entweder TERMINATE oder MIGRATE.
  • VM_NAME: der VM-Name
  • NUMBER_OF_SECONDS: die Anzahl der Sekunden, die Compute Engine wartet, bis eine nicht reagierende VM zwischen 90 und 330 in Schritten von 30 neu gestartet wird. Diese Option ist in der Vorschau verfügbar. Für diese Option verwenden Sie den Befehl gcloud beta compute instances set-scheduling.

API

Verwenden Sie die Methode instances.setScheduling, um die Hostwartungsrichtlinie einer vorhandenen VM zu aktualisieren.

Fügen Sie im Anfragetext onHostMaintenance ein, um anzugeben, ob die VM während der Hostwartung migriert oder beendet wird. VMs werden automatisch nach einem Hostfehler neu gestartet, es sei denn, Sie legen automaticRestart auf false fest.

Wenn Sie die maximale Zeit angeben möchten, die Compute Engine wartet, bis eine VM neu gestartet oder beendet wird, nachdem erkannt wurde, dass die VM nicht mehr reagiert, fügen Sie den Parameter hostErrorTimeoutSeconds (Vorschau) in den Anfragetext hinzu.

Stellen Sie in der API eine POST-Anfrage an folgende URL:

https://compute.googleapis.com/compute/v1/projects/PROJECT_IDt/zones/ZONE/instances/VM_NAME/setScheduling

Dabei gilt:

  • PROJECT_ID: das Projekt, in der sich die VM befindet.
  • ZONE: die Zone, in der sich die VM befindet
  • VM_NAME: der VM-Name

Fügen Sie die Parameter onHostMaintenance, hostErrorTimeoutSeconds und automaticRestart als Teil des Anfragetexts hinzu:

{
 "onHostMaintenance": "MAINTENANCE_POLICY",
 "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS,
 "automaticRestart": RESTART_POLICY
}

Dabei gilt:

  • MAINTENANCE_POLICY: die Richtlinie für diese VM, entweder TERMINATE oder MIGRATE.
  • NUMBER_OF_SECONDS: die Anzahl der Sekunden, die Compute Engine wartet, bis eine nicht reagierende VM zwischen 90 und 330 in Schritten von 30 neu gestartet wird. Diese Option ist in der Vorschau verfügbar. Verwenden Sie diese Option mit der Betamethode instances().setScheduling.

  • RESTART_POLICY: Neustartrichtlinie für diese VM, entweder true oder false.

Nächste Schritte