Verfügbarkeitsrichtlinien von Instanzen festlegen

Compute Engine führt regelmäßig eine Wartung seiner Infrastruktur durch. Auf dieser Seite werden die Typen und die ungefähre Häufigkeit dieser Wartungsereignisse erläutert. Außerdem wird gezeigt, wie Sie mit Optionen zur Instanzverfügbarkeit das Verhalten von VM-Instanzen bei diesen Wartungsereignissen konfigurieren können. Sie erfahren auf dieser Seite auch, wie Sie für eine Instanz die Live-Migration bei einem Wartungsereignis festlegen.

Hinweise

Wartungsereignisse

Bei Wartungsereignissen von Compute Engine werden Hardware- und Software-Updates ausgeführt. Für einige dieser Wartungsereignisse muss Google Ihre VM von dem Host entfernen, der gerade gewartet wird. Compute Engine verwaltet automatisch die Planung dieser Instanzen. So wird von Compute Engine eine Live-Migration Ihrer VM-Instanzen ausgeführt, wenn Sie die Verfügbarkeitsrichtlinie der Instanz für die Live-Migration konfiguriert haben. Damit werden Störungen Ihrer Anwendungen während dieser Ereignisse verhindert. Alternativ können Sie Ihre Instanzen während dieser Ereignisse auch beenden, anstatt eine Live-Migration durchzuführen.

In der folgenden Tabelle sind die Wartungsereignisse von Compute Engine allgemein in zwei Kategorien mit entsprechenden Beispielen aufgeteilt. Dabei wird auch angegeben, für welches Wartungsereignis eine Live-Migration der VM auf einen anderen Host erforderlich ist.

Typ des Wartungsereignisses Beispiele Ungefähre Häufigkeit * Erfordert Live-Migration auf einen neuen Host
Hostwartung Hostkernel-Upgrade, Hardwarereparatur oder Upgrade Einmal alle 2 Wochen Ja
Einfach Hypervisor-Upgrade, Upgrade des Netzwerkstapels Ein- bis zweimal pro Woche Nein

*Beachten Sie, dass diese Angaben Schätzungen und keine verbindlichen Werte sind. Für Compute Engine wird zeitweise eine Wartung häufiger als hier angegeben ausgeführt.

Verfügbarkeitsrichtlinien auswählen

Die Verfügbarkeitsrichtlinie einer VM-Instanz bestimmt, wie sich diese Instanz verhält, wenn ein Wartungsereignis eintritt, bei dem Google Ihre VM-Instanz auf eine andere Hostmaschine verschieben muss. Sie können Ihre VM-Instanzen so konfigurieren, dass sie weiterhin ausgeführt werden, während sie von Compute Engine live zu einem anderen Host migriert werden, oder Sie können stattdessen Ihre Instanzen beenden. Die Verfügbarkeitsrichtlinie einer Instanz kann jederzeit aktualisiert werden, um zu steuern, wie sich Ihre VM-Instanzen verhalten sollen.

Für die Verfügbarkeitsrichtlinie einer Instanz lassen sich die beiden folgenden Einstellungen ändern:

  • Das Wartungsverhalten der VM-Instanz, das bestimmt, ob die Instanz live migriert oder beendet wird, wenn ein Wartungsereignis auftritt.
  • Das Verhalten bei Neustart der Instanz, mit dem festgelegt wird, ob die Instanz automatisch neu gestartet wird, wenn sie abstürzt oder beendet wird.

Standardmäßig wird für Instanzen bei der Wartung eine Live-Migration ausgeführt. Sie können dieses Verhalten ändern und Ihre Instanz bei Wartungsereignissen beenden.

Live-Migration

Standardmäßig ist für Standardinstanzen die Live-Migration festgelegt. Dabei wird die Instanz bei einem Wartungsereignis der Infrastruktur von Compute Engine automatisch an eine andere Stelle migriert. Die Instanz kann so während der Migration weiterhin ausgeführt werden. Ihre Instanz könnte für eine kurze Zeit mit verminderter Leistung arbeiten, obwohl bei den meisten Instanzen in der Regel kein Unterschied bemerkt wird. Dies ist ideal für Instanzen, die eine konstante Betriebszeit erfordern und eine kurzfristig verminderte Leistung tolerieren.

Mit der Migration Ihrer Instanz von Compute Engine wird ein Systemereignis gemeldet und in der Liste der Zonenvorgänge angezeigt. Sie können dieses Ereignis durch Aufruf der Compute Engine-Vorgänge für eine bestimmte Zone prüfen. Für Live-Migrationsereignisse gilt folgender Vorgangstyp:

compute.instances.migrateOnHostMaintenance

Beenden und (optional) neu starten

Wenn für Ihre Instanz keine Live-Migration ausgeführt werden soll, können Sie Ihre Instanz auch beenden und wahlweise neu starten. Für VMs, die gestoppt und optional neu gestartet werden, sendet Compute Engine ein Soft-Off-Signal, um die Instanz herunterzufahren, wartet 60 Sekunden, bis die Instanz ordnungsgemäß heruntergefahren ist, die Instanz beendet und in zeitlichem Abstand zum Wartungsereignis neu startet. Wenn die Instanz nicht innerhalb von 60 Sekunden ordnungsgemäß heruntergefahren wird, wird sie beendet.

Diese Option ist ideal für Instanzen, die eine konstante, maximale Leistung benötigen und wenn Ihre gesamte Anwendung zur Bewältigung von Instanzausfällen oder Neustarts ausgelegt ist.

Wenn Ihre Instanzen in Compute Engine beendet und neu gestartet werden, wird ein Systemereignis gemeldet, das in der Liste der Zonenvorgänge angezeigt wird. Sie können dieses Ereignis durch Aufruf der Compute Engine-Vorgänge für eine bestimmte Zone prüfen. Für beendete Ereignisse gilt folgender Vorgangstyp:

compute.instances.terminateOnHostMaintenance

Wenn Ihre Instanz neu startet, verwendet sie das gleiche persistente Bootlaufwerk und hängt alle sekundären, nichtflüchtigen Speicher, die Sie konfiguriert haben, wieder ein. Die Daten auf diesen Laufwerken bleiben über die Migration und den Neustart der Instanz hinweg erhalten.

Lokale SSD-Daten gehen durch die Beendigung der Instanz verloren. Wenn die Instanz neu gestartet wird, erstellt sie ein neues lokales SSD, das Sie formatieren und bereitstellen müssen.

Automatischer Neustart

Wenn Ihre Instanz so eingestellt ist, dass sie bei Wartungsarbeiten beendet wird, oder Ihre Instanz wegen eines zugrundeliegenden Hardwarefehlers abstürzt, können Sie Google Compute Engine so einstellen, dass die Instanz automatisch neu startet. Setzen Sie dazu das Feld automaticRestart auf true. Diese Einstellung gilt nicht, wenn die Instanz durch eine Nutzeraktion offline genommen wurde, zum Beispiel durch den Aufruf von sudo shutdown, oder während eines Zonenausfalls.

Beim automatischen Neustart der Instanz von Compute Engine wird ein Systemereignis gemeldet, das in der Liste der Zonenvorgänge angezeigt wird. Sie können dieses Ereignis durch Aufruf der Compute Engine-Vorgänge für eine bestimmte Zone prüfen. Für automatische Neustartereignisse gilt folgender Vorgangstyp:

compute.instances.automaticRestart

Compute Engine-Vorgänge ansehen

Sie können eine Liste der abgeschlossenen Vorgänge über die Google Cloud Console, das gcloud-Befehlszeilentool oder die Compute Engine API ansehen.

Console

Zur Anzeige einer Liste der Vorgänge für Ihr Projekt rufen Sie die Seite "Vorgänge" auf.

  1. Wechseln Sie zur Seite "Vorgänge".

  2. Klicken Sie für weitere Informationen zu einem Vorgang auf die Vorgangszusammenfassung. Wenn Sie beispielsweise die Migrationsdetails für die Instanz my-instance sehen möchten, klicken Sie auf den Vorgang Automatically migrate an instance (Instanz automatisch migrieren). Die Seite "Vorgänge" mit einer Live-Migration Details der Live-Migration

gcloud

Verwenden Sie den Unterbefehl operations list, um mit gcloud compute eine Liste der Vorgänge für Ihr Projekt anzusehen.

Wenn Sie die Liste der Vorgänge in einer bestimmten Zone ansehen möchten, fügen Sie das Flag --filter hinzu.

gcloud compute operations list --filter="zone:(ZONE)"

Ersetzen Sie ZONE durch die Zone, in der Sie die Liste der Vorgänge ansehen möchten. Führen Sie beispielsweise den folgenden Befehl aus, um die Liste der Vorgänge in us-cental1-c anzusehen:

gcloud compute operations list --filter="zone:(us-central1-c)"

NAME                            TYPE                                        TARGET                                HTTP_STATUS  STATUS  TIMESTAMP
systemevent-1543845145000...    compute.instances.migrateOnHostMaintenance  us-central1-c/instances/my-instance   200          DONE    2018-12-03T05:52:25.000-08:00

API

API-Anfragen für Vorgänge müssen entweder auf globaler, regionaler oder zonaler Ebene angegeben werden. Die Live-Migration, die Beendigung der Instanz und die automatischen Neustarts sind Vorgänge auf Zonenebene.

Stellen Sie für Zonenvorgänge eine GET-Anfrage an die Methode zoneOperations.list.

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

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: die Projekt-ID für diese Anfrage
  • ZONE: die Zone für diese Anfrage

Lassen Sie den Anfragetext leer.

Das folgende Beispiel zeigt die Ausgabe für eine Zonenvorgangsanfrage. In dieser Ausgabe sind Details zu einer Hostmigration angegeben.

{
 "kind": "compute#operation",
 "id": "3216798767364213712",
 "name": "systemevent-1543845145000-57c1e7574b840-a195b637-5ff74d9b",
 "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c",
 "operationType": "compute.instances.migrateOnHostMaintenance",
 "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/instances/my-instance",
 "targetId": "3070988523247098025",
 "status": "DONE",
 "statusMessage": "Instance migrated during Compute Engine maintenance.",
 "user": "system",
 "progress": 100,
 "insertTime": "2018-12-03T05:52:25.000-08:00",
 "startTime": "2018-12-03T05:52:25.000-08:00",
 "endTime": "2018-12-03T05:52:25.000-08:00",
 "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/operations/systemevent-1543845145000-57c1e7574b840-a195b637-5ff74d9b"
}

Verfügbarkeitsrichtlinien festlegen

Konfigurieren Sie das Verhalten einer Instanz bei Wartung und automatischem Neustart. Verwenden Sie dazu die Attribute onHostMaintenance und automaticRestart. Alle Instanzen werden mit Standardwerten konfiguriert, es sei denn, Sie haben es ausdrücklich anders festgelegt.

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

    • [Standard] MIGRATE: Legt fest, dass Compute Engine die Live-Migration einer Instanz durchführt, wenn ein Wartungsereignis auftritt.
    • TERMINATE: Legt die Beendigung einer Instanz anstelle ihrer Migration fest.
  • automaticRestart: Bestimmt das Verhalten, wenn eine Instanz abstürzt oder vom System beendet wird.

    • [Standard] true: Legt fest, dass Compute Engine eine Instanz neu startet, wenn sie abstürzt oder beendet wird.
    • false: Legt fest, dass Compute Engine eine Instanz nicht neu startet, wenn die Instanz abstürzt oder beendet wird.

Sie können die Verfügbarkeitsrichtlinien einer Instanz ändern, wenn Sie eine Instanz neu erstellen oder nachdem die Instanz erstellt wurde. Verwenden Sie dazu die Methode setScheduling.

Einstellungsoptionen während der Instanzerstellung

Console

  1. Öffnen Sie in der Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.
  3. Geben Sie auf der Seite Neue Instanz erstellen die Attribute für Ihre Instanz ein.
  4. Maximieren Sie die Option Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
  5. Wählen Sie unter Verfügbarkeitsrichtlinie die Optionen Automatischer Neustart und Wartung auf dem Host aus.
  6. Klicken Sie auf Erstellen, um die Instanz anzulegen.

gcloud

Verwenden Sie zur Angabe der Verfügbarkeitsrichtlinien einer neuen Instanz in gcloud compute das Flag --maintenance-policy, um festzulegen, ob die Instanz migriert oder beendet wird. Standardmäßig werden Instanzen automatisch neu gestartet, es sei denn, Sie geben das Flag --no-restart-on-failure an.

gcloud compute instances create INSTANCE_NAME \
    --maintenance-policy MAINTENANCE_POLICY \
    [--no-restart-on-failure]

Ersetzen Sie dabei Folgendes:

  • INSTANCE_NAME: der Name der Instanz
  • MAINTENANCE_POLICY: die Richtlinie für diese Instanz, entweder TERMINATE oder MIGRATE

API

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 Instanz ersetzt werden:

https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances

mit den Parametern onHostMaintenance und automaticRestart im Anfragetext:

{
  "name": "example-instance",
  "description": "Front-end for real-time ingest; don't migrate.",
  ...
  // User options for influencing this Instance's life cycle.
  "scheduling": {
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true
  }
}

Weitere Informationen finden Sie in der Referenzdokumentation unter Instanzen.

Aktualisierungsoptionen für eine Instanz

Console

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

    Die Seite VM-Instanzen aufrufen

  2. Klicken Sie auf die Instanz, deren Einstellungen Sie ändern möchten. Die Seite mit den Instanzdetails wird angezeigt.
  3. Führen Sie auf der Seite mit den Instanzdetails folgende 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 Verfügbarkeitsrichtlinien einer Instanz den Befehl instances set-scheduling. Verwenden Sie dabei dieselben Parameter und Flags wie im oben gezeigten Befehl zum Erstellen einer Instanz:

gcloud compute instances set-scheduling INSTANCE_NAME \
    --maintenance-policy MAINTENANCE_POLICY \
    [--no-restart-on-failure | --restart-on-failure]

Ersetzen Sie dabei Folgendes:

  • INSTANCE_NAME: der Name der Instanz
  • MAINTENANCE_POLICY: die Richtlinie für diese Instanz, entweder TERMINATE oder MIGRATE

API

In der API können Sie eine Anfrage an die folgende URL stellen und dabei die Projekt-ID, die Zone und den Instanznamen durch Ihre eigene Projekt-ID, Zone und Instanznamen ersetzen:

https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/example-instance/setScheduling

Der Text Ihrer Anfrage muss den neuen Wert für die Verfügbarkeitsrichtlinien enthalten:

{
  "onHostMaintenance": "MIGRATE",
  "automaticRestart": true
}

Weitere Informationen finden Sie in der instances().setScheduling-Referenzdokumentation.

Verfügbarkeitsrichtlinien testen

Nachdem Sie die Verfügbarkeitsrichtlinien festgelegt haben, können Sie Wartungsereignisse simulieren, um die Auswirkungen der Verfügbarkeitsrichtlinien auf Ihre Anwendungen zu testen. So lässt sich z. B. ein Wartungsereignis für Ihre Instanzen in einer der folgenden Situationen simulieren:

  • Ihre Instanzen sind für die Live-Migration bei Wartungsereignissen konfiguriert und Sie möchten die Auswirkungen der Live-Migration auf Ihre Anwendungen testen.
  • Es liegen Batch-Jobs vor, die auf VM-Instanzen auf Abruf ausgeführt werden, und Sie möchten testen, wie Ihre Anwendungen auf das vorzeitige Beenden und das Herunterfahren einer oder mehrerer Instanzen reagieren.
  • Ihre Instanzen sind so konfiguriert, dass sie bei Wartungsereignissen beendet und neu gestartet und nicht live migriert werden. Sie müssen testen, wie Ihre Anwendungen auf diesen Vorgang des Herunterfahrens und Neustartens reagieren.

Simulierte Wartungsereignisse unterliegen bestimmten API-Ratenlimits.

Sie können ein Wartungsereignis für eine Instanz mit dem gcloud-Befehlszeilentool oder mit einer API-Anfrage simulieren.

gcloud

Führen Sie den Befehl instances simulate-maintenance-event aus, damit für eine Instanz die jeweils konfigurierte Wartungsrichtlinienaktion aktiviert wird:

gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
    --zone ZONE

Ersetzen Sie dabei Folgendes:

  • INSTANCE_NAME: der Name der Instanz, für die das Wartungsereignis simuliert werden soll. Sie können mehrere Instanznamen angeben, die durch einzelne Leerzeichen getrennt sind, um Wartungsereignisse für mehr als eine Instanz in derselben Zone zu simulieren. Beispiel: instance-1 instance-2 instance-3
  • ZONE: die Zone, in der sich die Instanz befindet.

API

Stellen Sie in der API eine Anfrage an die Methode compute.instances.simulateMaintenanceEvent der Compute Engine API:

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

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: die Projekt-ID für diese Anfrage
  • INSTANCE_NAME: der Name der Instanz, für die das Wartungsereignis simuliert werden soll.
  • ZONE: die Zone, in der sich die Instanz befindet.

Weitere Informationen zu dieser Methode finden Sie in der Referenzdokumentation zu instances().simulateMaintenanceEvent.

Nächste Schritte