Hostwartungsrichtlinie für eine Instanz festlegen


In diesem Dokument wird beschrieben, wie Sie die Hostwartungsrichtlinie für eine virtuelle Maschine (VM) oder eine Bare-Metal-Instanz festlegen, um zu steuern, wie sich die Instanz 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 bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.

Beschränkungen

  • Sie können das Wartungsverhalten 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 das Wartungsverhalten für die VM nicht mehr von MIGRATE in TERMINATE oder umgekehrt ändern.
  • Sie können das Wartungsverhalten für Bare-Metal-Instanzen wie c3-standard-192-metal oder x4-megamem-1920-metal nicht ändern, die auf TERMINATE gesetzt sind und automatisch neu gestartet werden.

Verfügbare Hostwartungseigenschaften

Sie können das Wartungsverhalten, das Neustartverhalten und das Warten bei Hostfehlern einer Compute-Instanz konfigurieren. Die Compute Engine konfiguriert jede Instanz mit den Standardwerten, sofern Sie nichts anderes angeben.

Während Hostereignissen werden je nach konfigurierter Hostwartungsrichtlinie Instanzen, die die Live-Migration nicht unterstützen, beendet und automatisch neu gestartet.

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

    • MIGRATE: Legt fest, dass Compute Engine die Live-Migration einer Instanz durchführt, wenn ein Wartungsereignis auftritt. Dies ist die Standardeinstellung für die meisten VMs.
    • TERMINATE: Die Instanz wird angehalten, anstatt die Live-Migration zu verwenden. Dies ist die Standardoption für Z3, Bare-Metal-Instanzen und Instanzen mit Beschleunigern wie GPUs und TPUs. Bei diesen Instanztypen können Sie die Einstellung für onHostMaintenance nicht ändern.
  • automaticRestart: Bestimmt das Verhalten, wenn eine Instanz 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 Instanz nicht neu, wenn sie abstürzt oder beendet wird.
  • localSsdRecoveryTimeout: Legen Sie das Zeitlimit für die Wiederherstellung der lokalen SSD fest. Das ist die maximale Zeit in Stunden, die Compute Engine nach einem Hostfehler für die Wiederherstellung lokaler SSD-Daten wartet. Diese Einstellung gilt nur für VMs mit angehängten lokalen SSD-Laufwerken. Wenn Sie diese Einstellung für eine Instanz konfigurieren, der keine lokalen SSD-Laufwerke angeschlossen sind, wird sie ignoriert.

    • Nicht festgelegt (Standard): Compute Engine wartet bis zu eine Stunde, um die lokalen SSD-Daten wiederherzustellen. Bei Z3-VMs beträgt die Standardwartezeit 6 Stunden.
    • Eine ganze Zahl zwischen 0 und 168: Gibt an, wie viele Stunden Compute Engine wartet, bevor die Daten auf dem lokalen SSD wiederhergestellt werden. Der maximale Wert entspricht 7 Tagen. Ein Wert von 0 bedeutet, dass Compute Engine nicht auf die Wiederherstellung der lokalen SSD-Daten wartet und die Instanz sofort neu startet.
  • hostErrorTimeoutSeconds (Vorabversion): Legt die maximale Zeit in Sekunden fest, die Compute Engine darauf wartet, eine Compute-Instanz neu zu starten oder zu beenden, nachdem erkannt wurde, dass die Instanz nicht mehr reagiert.

    • Nicht festgelegt (Standard): Compute Engine wartet bis zu 5,5 Minuten (330 Sekunden), bevor eine nicht reagierende Instanz neu gestartet wird.
    • Eine ganze Zahl zwischen 90 und 330: Die Anzahl der Sekunden, die in Schritten von 30 angegeben wird, während derer die Compute Engine wartet, bevor eine nicht reagierende Compute-Instanz neu gestartet wird.

Hostwartungsrichtlinie einer Instanz festlegen

Sie können die Hostwartungsrichtlinie einer Instanz ändern, wenn Sie eine Instanz erstellen oder nachdem die Instanz erstellt wurde.

Hostwartungsrichtlinie während der Instanzerstellung festlegen

In diesem Abschnitt erfahren Sie, wie Sie die Hostwartungsrichtlinie beim Erstellen einer Instanz festlegen. Weitere Beispiele für die Instanzerstellung finden Sie unter Compute Engine-Instanz erstellen und starten.

Sie können die Hostwartungsrichtlinie einer Compute-Instanz beim Erstellen mit der Google Cloud Console, der gcloud CLI oder REST festlegen.

Console

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

    Zur Seite „Instanz erstellen“

  2. Legen Sie einen Namen für die Instanz fest.

  3. Wählen Sie für die Instanz eine Region und eine Zone aus.

  4. Führen Sie im Abschnitt Maschinenkonfiguration die folgenden Schritte aus:

    1. Geben Sie die Details zum Maschinentyp für die Instanz an.
    2. Maximieren Sie das Menü Erweiterte Einstellungen für das VM-Bereitstellungsmodell.
    3. Wählen Sie im Menü Bei Hostwartung einen der folgenden Schritte aus:
      1. Wenn Sie VMs während Wartungsereignissen migrieren möchten, wählen Sie VM-Instanz migrieren aus.
      2. Wenn Sie Instanzen während Wartungsereignissen beenden möchten, wählen Sie VM-Instanz beenden aus.
  5. Klicken Sie auf Erstellen, um die Instanz zu erstellen.

gcloud

Verwenden Sie den Befehl gcloud compute instances create, um die Hostwartungsrichtlinie einer neuen Instanz festzulegen.

Um die Eigenschaft --host-error-timeout-seconds (Vorabversion) festzulegen, müssen Sie den Befehl gcloud beta compute instances create verwenden.

Sie können die Hostwartungsrichtlinie einer neuen Instanz mit dem folgenden Befehl festlegen. Wenn Sie eines der Flags weglassen, wird der Standardwert für das Flag verwendet.

  gcloud compute instances create INSTANCE_NAME \
      --zone=ZONE \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
      --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der Instanz.
  • ZONE: die Zone, in der sich die Instanz befindet,
  • MAINTENANCE_BEHAVIOR: das Verhalten bei Wartungsereignissen einer Instanz, entweder TERMINATE oder MIGRATE. Bei den meisten Maschinentypen wird die VM standardmäßig migriert, wenn Sie diese Eigenschaft weglassen. Z3- und Bare-Metal-Instanzen werden beendet.
  • RESTART_ON_FAILURE_BEHAVIOR: Neustartverhalten für beendete oder nicht reagierende Instanzen. Legen Sie entweder restart-on-failure (Standard) oder no-restart-on-failure fest.
  • SSD_RECOVERY_TIMEOUT: Anzahl der Stunden, die für die Wiederherstellung lokaler SSD-Laufwerke benötigt werden, die an eine beendete oder nicht reagierende Instanz angehängt sind. Gültige Werte liegen zwischen 0 und 168, in Schritten von 1 Stunde.
  • ERROR_DETECTION_TIMEOUT ist die Anzahl der Sekunden (zwischen 90 und 330 Sekunden, also 5,5 Minuten, in Schritten von 30 Sekunden), bevor eine nicht reagierende Instanz neu gestartet wird.

REST

Mit der Methode instances.insert können Sie die Hostwartungsrichtlinie einer neuen Instanz mit REST festlegen.

Sie können die Hostwartungsrichtlinie einer neuen Instanz mit dem folgenden Befehl festlegen. Wenn Sie eines der Felder weglassen, wird der Standardwert für das Feld verwendet.

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

      {
        "name": "INSTANCE_NAME",

        "scheduling": {
          "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
          "automaticRestart": "RESTART_POLICY,
          "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        }
      }

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt der Instanz.
  • ZONE: die Zone, in der Sie die Instanz erstellen möchten.
  • INSTANCE_NAME: der Name der Instanz.
  • MAINTENANCE_BEHAVIOR: das Verhalten bei Wartungsereignissen einer Instanz, entweder TERMINATE oder MIGRATE. Bei den meisten Maschinentypen wird die VM standardmäßig migriert, wenn Sie dieses Feld weglassen. Z3- und Bare-Metal-Instanzen werden beendet.
  • RESTART_POLICY: Gibt an, ob die Instanz nach einem Wartungsereignis oder einem Hostfehler automatisch neu gestartet wird: true (Standard) oder false.
  • SSD_RECOVERY_TIMEOUT: Anzahl der Stunden, die die Compute Engine für die Wiederherstellung aller lokalen SSD-Laufwerke benötigt, die an eine nicht reagierende oder beendete Instanz angehängt sind. Gültige Werte liegen zwischen 0 und 168, in Schritten von 1 Stunde. Der Standardwert für Z3 ist 6 Stunden und für alle anderen VMs 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 Instanz neu gestartet oder beendet wird, da diese Option in der Vorschau verfügbar ist.

Fügen Sie dem scheduling-Objekt des Anfragetexts die Eigenschaft hostErrorTimeoutSeconds hinzu. HOST_ERROR_TIMEOUT ist die Anzahl der Sekunden, die die Compute Engine wartet, bevor eine nicht reagierende Instanz neu gestartet oder beendet wird. Gültige Werte liegen zwischen 90 und 330 (5,5 Minuten), in Schritten von 30 Sekunden.


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

   {
      "name": "INSTANCE_NAME",

      "scheduling": {
        "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
        "automaticRestart": "RESTART_POLICY,
        "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        "hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT,
      }
    }

Hostwartungsrichtlinie einer vorhandenen Instanz aktualisieren

Console

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

    Zu "VM-Instanzen"

  2. Klicken Sie auf den Namen der Instanz, deren Einstellungen Sie ändern möchten. Die Seite mit den Instanzdetails wird angezeigt.

  3. Führen Sie auf dem Tab Details die folgenden Schritte aus:

    1. Klicken Sie oben auf der Seite auf Bearbeiten.
    2. Wechseln Sie zum Bereich Verwaltung. Im Bereich Verfügbarkeitsrichtlinien können Sie die Optionen für die Hostwartung ändern.
    3. Klicken Sie auf Speichern.

gcloud

Aktualisieren Sie die Hostwartungsrichtlinie einer vorhandenen Instanz mit dem Befehl gcloud compute instances set-scheduling. Verwenden Sie dieselben Parameter wie für den Befehl zum Erstellen einer Instanz im vorherigen Abschnitt.

Wenn Sie die maximale Zeit aktualisieren möchten, die Compute Engine wartet, bis eine nicht reagierende Instanz neu gestartet oder beendet wird (Vorabversion), verwenden Sie den Befehl gcloud beta compute instances set-scheduling und fügen Sie --host-error-timeout-seconds=NUMBER_OF_SECONDS hinzu.

    gcloud compute instances set-scheduling INSTANCE_NAME \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT

Ersetzen Sie Folgendes:

  • NUMBER_OF_SECONDS ist die Anzahl der Sekunden (zwischen 90 und 330 Sekunden, also 5,5 Minuten) in Schritten von 30 Sekunden, bevor eine nicht reagierende VM neu gestartet oder beendet wird.
    • INSTANCE_NAME: der Name der Instanz.
    • MAINTENANCE_BEHAVIOR: das Verhalten bei Wartungsereignissen einer Instanz, entweder TERMINATE oder MIGRATE. Bei den meisten Maschinentypen wird die VM standardmäßig migriert, wenn Sie diese Eigenschaft weglassen. Z3- und Bare-Metal-Instanzen werden beendet.
    • RESTART_ON_FAILURE_BEHAVIOR: Neustartverhalten für beendete oder nicht reagierende Instanzen. Legen Sie entweder restart-on-failure (Standard) oder no-restart-on-failure fest.
    • SSD_RECOVERY_TIMEOUT: Anzahl der Stunden, die für die Wiederherstellung lokaler SSD-Laufwerke benötigt werden, die an eine beendete oder nicht reagierende Instanz angehängt sind. Gültige Werte liegen zwischen 0 und 168, in Schritten von 1 Stunde.
    • NUMBER_OF_SECONDS ist die Anzahl der Sekunden (zwischen 90 und 330 Sekunden, also 5,5 Minuten, in Schritten von 30 Sekunden), bevor eine nicht reagierende Instanz neu gestartet wird.

REST

Aktualisieren Sie die Hostwartungsrichtlinie einer vorhandenen Instanz mit einer POST-Anfrage an die Methode instances.setScheduling.

    POST https://compute.googleapis.com/compute/v1projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

    {
      "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
      "automaticRestart": RESTART_POLICY,
      "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
    }

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt der Instanz.
  • ZONE: die Zone, in der sich die Instanz befindet.
  • INSTANCE_NAME: der Name der Instanz.
  • MAINTENANCE_BEHAVIOR: das Verhalten bei Wartungsereignissen für diese Instanz, entweder TERMINATE oder MIGRATE.
  • RESTART_POLICY: Gibt an, ob die Instanz automatisch neu gestartet wird, entweder true oder false.
    • SSD_RECOVERY_TIMEOUT: Anzahl der Stunden, die für die Wiederherstellung der lokalen SSD-Laufwerke benötigt werden, die an die Instanz angehängt sind. Gültige Werte liegen zwischen 0 und 168, in Schritten von 1 Stunde.

Zeitlimit für die Erkennung von Hostfehlern 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 dem Anfragetext das Attribut hostErrorTimeoutSeconds hinzu. HOST_ERROR_TIMEOUT ist die Anzahl der Sekunden, die die Compute Engine wartet, bevor eine nicht reagierende Instanz neu gestartet oder beendet wird. Gültige Werte liegen zwischen 90 und 330 (5,5 Minuten), in Schritten von 30 Sekunden.

  POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

  {
    ...
    "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS
  }

Einstellungen für die Hostwartungsrichtlinie für eine Instanz aufrufen

Console

  1. Rufen Sie die Seite VM-Instanzen auf.

    Zu "VM-Instanzen"

  2. Klicken Sie auf den Namen der Instanz, für die Sie die Einstellungen aufrufen möchten. Die Seite mit den Instanzdetails wird geöffnet.

  3. Wechseln Sie zum Bereich Verwaltung. Im Abschnitt Verfügbarkeitsrichtlinien sehen Sie Ihre aktuellen Einstellungen für Folgendes:

    • Bei Hostwartung
    • Automatischer Neustart
    • Zeitlimit bei Hostfehler

gcloud

Mit dem Befehl gcloud compute instances describe können Sie die Einstellungen für die Hostwartungsoption für eine Instanz aufrufen.

Verwenden Sie den Befehl gcloud beta compute instances describe, um den aktuellen Wert der hostErrorTimeoutSeconds-Einstellung (Vorabversion) aufzurufen.

 gcloud compute instances describe INSTANCE_NAME \
 --zone ZONE --format="yaml(scheduling)"

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der Instanz
  • ZONE: die Zone, in der sich die Instanz befindet.

Die Ausgabe enthält die aktuellen Einstellungen für die Hostwartungsrichtlinie, z. B.:

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 Instanz aufzurufen:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt, in dem sich die Instanz befindet.
  • ZONE: die Zone, in der sich die Instanz befindet.
  • INSTANCE_NAME: der Name der Instanz.

In der Ausgabe enthält das scheduling-Objekt die Einstellungen für die Hostwartungsrichtlinie der Instanz, z. B.:

{
...
  "scheduling": {
      "onHostMaintenance": "MIGRATE",
      "automaticRestart": true,
      "preemptible": false,
      "provisioningModel": "STANDARD",
      "localSsdRecoveryTimeout": {
        "seconds": "10800",
        "nanos": 0
      }
    },
...
}

Einstellungen für das Zeitlimit für Hostfehler ansehen

Rufen Sie die aktuelle hostErrorTimeoutSeconds-Einstellung mit einer GET-Anfrage an die Betamethode instances.get auf.

 GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Ersetzen Sie Folgendes:

  • PROJECT_ID: das Projekt der Instanz.
  • ZONE: die Zone, in der sich die Instanz befindet.
  • INSTANCE_NAME: der Name der Instanz.

In der Ausgabe enthält das scheduling-Objekt das Zeitlimit für die Erkennung von Hostfehlern der Instanz, z. B.:

{
...
  "scheduling": {
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true,
    "preemptible": false,
    "provisioningModel": "STANDARD",
    "hostErrorTimeoutSeconds": 120,
    "localSsdRecoveryTimeout": {
      "seconds": "10800",
      "nanos": 0
    }
  },
...
}

Nächste Schritte