Hostwartungsereignis überwachen und planen


Die Wartung aller VM-Instanzen wird durch die Host-Wartungsrichtlinie bestimmt, die Sie beim Erstellen der VMs auswählen. Einige VMs bieten die zusätzliche Möglichkeit, den Wartungsplan der VM im Voraus aufzurufen.

Auf dieser Seite wird erläutert, wie Sie ein Host-Wartungsereignis auf Compute Engine-VMs überwachen und planen. Zum Aufrufen des Wartungsplans für eine VM muss die VM einen Maschinentyp aus einer der folgenden Maschinenfamilien ausführen:

  • C3-VMs für allgemeine Zwecke
  • C3D-VMs für allgemeine Zwecke
  • Speicheroptimierte Z3-VMs
  • Speicheroptimierte M1-, M2- und M3-VMs

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 so 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

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. 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

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute-Instanzadministrator (v1) (roles/compute.instanceAdmin.v1) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von VMs und zum Verwalten der VM-Wartung benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen von VMs und zum Verwalten der VM-Wartung erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um VMs zu erstellen und die VM-Wartung zu verwalten:

  • Um Informationen zu einer VM abzurufen: compute.instances.get
  • Um eine VM zu erstellen: compute.instances.create

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Wartungsbenachrichtigungen überwachen

Google sendet Benachrichtigungen für anstehende VM-Wartungen auf verschiedene Arten. Sie finden Ihre Benachrichtigungen durch Abfrage Ihrer VMs, des Metadatenservers oder von Cloud Logging. Wenn sich das geplante Wartungsfenster öffnet, führt Google Cloud automatisch eine Wartung für Ihre VM aus. Durch Überwachung der geplanten Wartungsfenster Ihrer VM können Sie Ihre Arbeitslasten proaktiv darauf vorbereiten, die bevorstehende Wartung mit minimalen Unterbrechungen abzuwickeln.

VMs mit Benachrichtigungen zu Wartungsereignissen haben folgende Eigenschaften:

  • Weniger Wartungsereignisse: Im Allgemeinen sollte es bei VMs mit wiederkehrenden Wartungsintervallen zu weniger Wartungsereignissen kommen.
  • Längere Wartungsbenachrichtigung: Sie werden zu Planungszwecken weit im Voraus über geplante Wartungsereignisse informiert.
  • Monitoring und Planung: Verwenden Sie Cloud Logging, um Ihren Wartungsplan zu verfolgen. Verwenden Sie Vorfälle und Benachrichtigungen, um auf dem Laufenden zu bleiben.
  • On-Demand-Wartungssteuerung: Starten Sie die Wartung während des Benachrichtigungszeitraums, um Ihre VMs dann zu aktualisieren, wenn es Ihrem Zeitplan entspricht.

VMs auf Benachrichtigungen zu Wartungsereignissen prüfen

Verwenden Sie die Google Cloud CLI, die REST-Methode oder den Metadatenserver, um zu prüfen, ob ein VM-Wartungsereignis bevorsteht.

gcloud

Rufen Sie mit dem Befehl gcloud compute instances describe das bevorstehende Wartungsfenster für eine VM auf. Sie müssen die --zone=[ZONE_NAME] angeben.

gcloud compute instances describe VM_NAME \
  --zone=ZONE

Ersetzen Sie Folgendes:

  • VM_NAME: Der Name der VM.
  • ZONE: Die Zone, in der sich die VM befindet.

Die Antwort sieht so aus:

  upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2023-12-01T19:00:01Z"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2023-12-01T22:00:00Z"
    "windowStartTime": "2023-12-01T19:00:00Z"
  }

In dieser Antwort ist canReschedule auf True und maintenanceStatus auf PENDING gesetzt. Die Wartung wird für das angezeigte Datum und die angezeigte Uhrzeit geplant. Diese Einstellungen weisen darauf hin, dass Sie dieses Ereignis manuell im Voraus auslösen können.

REST

Führen Sie den Befehl instances.get aus, um festzustellen, ob eine Wartung für eine VM bevorsteht:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME

Ersetzen Sie Folgendes:

  • PROJECT_NAME ist der Name des Projekts.
  • ZONE: Die Zone, in der sich die VM befindet.
  • VM_NAME: der Name der VM

Die Antwort sieht so aus:

  upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2023-12-01T19:00:01Z"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2023-12-01T22:00:00Z"
    "windowStartTime": "2023-12-01T19:00:00Z"
  }

In dieser Antwort ist canReschedule auf TRUE und maintenanceStatus auf PENDING gesetzt. Die Wartung wird für das angezeigte Datum und die angezeigte Uhrzeit geplant.

Metadatenserver

Fragen Sie den Metadatenserver vom Gastbetriebssystem aus ab, um das nächste Wartungsereignis anzusehen.

$ curl http://metada.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"

Cloud Logging auf Benachrichtigungen zu Wartungsereignissen prüfen

Google sendet vor der VM-Wartung eine Benachrichtigung an Cloud Logging. Cloud Logging generiert im Log-Explorer ein Systemereignis. Die geplante Wartung der VM wird in Cloud Logging so angezeigt: compute.instances.upcomingMaintenance.

Abhängig von Ihrer VM-Konfiguration zeigt Cloud Logging das Ereignis so an:

  • Bei VMs, die für die Verwendung der Live-Migration bei Wartungen konfiguriert sind, wird das Ereignis mit dem Methodennamen compute.instances.migrateOnHostMaintenance angezeigt.
  • Bei VMs, die für die Verwendung von "Beenden und automatisch neu Starten" bei Wartungen konfiguriert sind, wird das Ereignis mit dem Methodennamen compute.instances.terminateOnHostMaintenance angezeigt.

Wenn Ihre VM für die Verwendung der Live-Migration konfiguriert ist, wird nach Abschluss der Wartung compute.instances.upcomingMaintenance angezeigt, was darauf hinweist, dass die Benachrichtigung gelöscht wurde.

Es kann von Vorteil sein, Benachrichtigungen einzurichten, um Wartungsbenachrichtigungen zu erhalten. Weitere Informationen finden Sie unter Logbasierte Benachrichtigungen konfigurieren und Benachrichtigungskanäle erstellen und verwalten.

Definitionen des Wartungsstatus

Die folgenden Statusdefinitionen erklären die Antworten auf eine VM-Wartungsabfrage. Sie enthalten Informationen zur VM-Wartung. Google Cloud CLI, REST und der Metadatenserver verwenden dieselben Antworten:

  • windowStartTime: der Beginn des Zeitfensters, in dem die Wartung durchgeführt wird
  • windowEndTime: das Ende des Zeitfensters, in dem die Wartung durchgeführt wird
  • latestWindowStartTime: der früheste Zeitpunkt, zu dem das Fenster verschoben werden kann
  • maintenanceType: der Typ der auszuführenden Wartung
    • NONE: für diese VM ist keine Wartung geplant
    • SCHEDULED: die Wartung wird 7 Tage im Voraus angekündigt
    • UNSCHEDULED: die Wartung stellt kritische Aktualisierungen dar, für die wesentlich weniger Vorankündigungen ausgegeben werden.
  • canReschedule: gibt an, ob die Wartung während des Benachrichtigungszeitraums für diese VM ausgelöst werden kann
    • TRUE: eine vom Kunden ausgelöste Wartung kann während des Benachrichtigungszeitraums ausgeführt werden
    • FALSE: eine vom Kunden ausgelöste Wartung kann für diese VM nicht ausgeführt werden. Dies tritt häufig in dem Zeitraum auf, in dem die VM gewartet wird
  • maintenanceStatus: der Status des aktuellen Wartungsvorgangs
    • ONGOING: der Wartungsvorgang wird ausgeführt
    • PENDING: der Wartungsvorgang ist geplant, wurde aber noch nicht gestartet

Verhalten des Wartungsstatus

Während Sie den Wartungsplan verwalten, prüfen Sie den Status von canReschedule= und maintenanceStatus=. Diese Antwortkombinationen beschreiben das erwartete Feature-Verhalten und zeigen eine der folgenden Statuskombinationen an:

  • Bei canReschedule=Yes und maintenanceStatus=Pending können Sie die Wartung auf der VM auslösen.
  • Bei canReschedule=No und maintenanceStatus=Ongoing wird die Wartung bereits ausgeführt.
  • Bei canReschedule=No und maintenanceStatus=Pending unterstützt Ihre VM keine manuell ausgelöste Wartung.

Nächste Schritte