Wartungsbenachrichtigungen aufrufen

Bei einem Hostwartungsereignis muss Google Cloud Wartungs- oder Reparaturarbeiten an Ihrer TPU ausführen. Google sendet Benachrichtigungen über bevorstehende Hostwartungen, bevor die Wartung durchgeführt wird. Wenn sich das Wartungsfenster öffnet,führt Google Cloudautomatisch eine Wartung für Ihre Instanz aus. Durch Überwachung der anstehenden Wartungsfenster Ihrer Instanz können Sie Ihre Arbeitslasten proaktiv darauf vorbereiten, die bevorstehende Wartung mit minimalen Unterbrechungen abzuwickeln.

Bei Cloud TPU können Sie Wartungsbenachrichtigungen über die Google Cloud CLI und durch Abfragen des Metadatenservers aufrufen. Sie können anstehende Wartungsereignisse auch in Cloud Logging aufrufen. Informationen zum Aufrufen von Wartungsbenachrichtigungen für TPUs in GKE finden Sie unter GKE-Knotenunterbrechungen für GPUs und TPUs verwalten.

Felder für Wartungsbenachrichtigungen

Wartungsbenachrichtigungen enthalten die folgenden Felder:

  • windowStartTime: Beginn des Wartungszeitraums
  • windowEndTime: Das Ende des Wartungszeitraums
  • latestWindowStartTime: Die späteste Zeit, zu der das Wartungsfenster verschoben werden kann
  • maintenanceType: Der Typ der Wartung, die durchgeführt wird
    • SCHEDULED: Die Wartung wird sieben Tage im Voraus angekündigt.
    • UNSCHEDULED: Die Wartung stellt kritische Aktualisierungen dar, für die weniger Vorabankündigungen ausgegeben werden als für geplante Wartungsereignisse.
  • canReschedule: Gibt an, ob Sie die Wartung während des Benachrichtigungszeitraums für diese VM manuell starten können.
    • TRUE: Sie können die Wartung während des Benachrichtigungszeitraums manuell starten.
    • FALSE: Sie können die Wartung für diese VM nicht manuell starten. Dies tritt in der Regel in dem Zeitraum auf, in dem die VM aktiv gewartet wird.
  • maintenanceStatus: Der Status des aktuellen Wartungsvorgangs
    • ONGOING: Der Wartungsvorgang wird ausgeführt
    • PENDING: Der Wartungsvorgang wurde noch nicht gestartet, ist aber geplant.

Wenn keine Wartungsbenachrichtigung vorhanden ist, sieht die Antwort in etwa so aus:

{ "error": "no notifications have been received yet, try again later" }

Verhalten bei Wartungsstatus

Prüfen Sie beim Verwalten von Wartungsereignissen die Werte für canReschedule und maintenanceStatus. Zusammen geben diese Felder an, welche Aktionen Sie ausführen können oder nicht, wenn Sie ein Wartungsereignis manuell starten möchten:

  • canReschedule=True und maintenanceStatus=Pending: Sie können das Wartungsereignis für die Instanz vor dem geplanten Beginn manuell starten.
  • canReschedule=False und maintenanceStatus=Ongoing: Die Wartung ist bereits in vollem Gange und kann nicht verschoben werden.
  • canReschedule=False und maintenanceStatus=Pending: Ihre Instanz unterstützt keine manuell ausgelösten Wartungsereignisse.

Wartungsbenachrichtigungen aufrufen

So rufen Sie Wartungsbenachrichtigungen auf:

  • Cloud TPU API mit der Google Cloud CLI aufrufen
  • Metadatenserver auf Ihrer VM abfragen
  • Cloud Logging prüfen

TPUs auf Wartungsbenachrichtigungen prüfen

gcloud

Verwenden Sie den Befehl gcloud alpha compute tpus tpu-vm describe, um Wartungsbenachrichtigungen aufzurufen:

gcloud alpha compute tpus tpu-vm describe TPU_NAME \
    --zone=ZONE

Wenn ein anstehender Wartungsvorgang vorliegt, enthält die Antwort einen Abschnitt wie diesen:

upcomingMaintenance:
    canReschedule: true
    latestWindowStartTime: "2025-12-01T19:00:00Z"
    maintenanceStatus: PENDING
    type: SCHEDULED
    windowEndTime: "2025-12-01T22:00:00Z"
    windowStartTime: "2025-12-01T19:00:00Z"

In dieser Antwort:

  • Die Wartung ist für das in windowStartTime angegebene Datum und die angegebene Uhrzeit geplant.
  • canReschedule ist auf true und maintenanceStatus auf PENDING gesetzt. Diese Einstellungen weisen darauf hin, dass Sie das geplante Wartungsereignis vor dem in latestWindowStartTime angezeigten Datum manuell starten können.

Metadatenserver

Fragen Sie den Metadatenserver von einer TPU-VM aus ab, um das nächste Wartungsereignis anzusehen:

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

Wenn eine anstehende Wartung ansteht, enthält die Antwort einen Abschnitt, der in etwa so aussieht:

Upcoming maintenance: {
    "can_reschedule" : "true",
    "latest_window_start_time" : "2024-06-12T16:00:01+00:00",
    "maintenance_status" : "PENDING",
    "type" : "SCHEDULED",
    "window_end_time" : "2024-06-12T20:00:00+00:00",
    "window_start_time" : "2024-06-12T16:00:00+00:00"
}

Sie können den Metadatenserver von jeder TPU-VM im Slice abfragen, da die Benachrichtigung zum bevorstehenden Wartungsereignis für alle VMs in einem Slice identisch ist.

Weitere Informationen zu VM-Metadaten finden Sie in der Compute Engine-Dokumentation unter Informationen zu VM-Metadaten.

Cloud Logging auf Wartungsbenachrichtigungen prüfen

Wenn auf Ihrer Cloud TPU eine Benachrichtigung geplant ist, enthält Cloud Logging ein Systemereignisprotokoll für das Ereignis mit der methodName:compute.instance.upcomingMaintenance. So rufen Sie Protokolle für bevorstehende Wartungsereignisse auf:

  1. Rufen Sie im Navigationsmenü der Google Cloud Console die Seite „Log-Explorer“ auf:

    Zum Log-Explorer

  2. Mit der folgenden Suchabfrage können Sie alle TPUs abrufen, für die eine anstehende Wartung geplant ist:

    "compute.instances.upcomingMaintenance"

    Cloud TPU protokolliert anstehende Wartungsereignisse in Cloud Logging nach der einzelnen VM-Instanz, z. B. t1v-n-5bdca789-w-0.

Beispiele für Wartungsbenachrichtigungsprotokolle

Im Log-Explorer wird eine Benachrichtigung zu Wartungsereignissen mit Werten angezeigt, die etwa so aussehen:

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "PENDING"
    • windowStartTime: "2024-07-23T20:00:00Z"

Das folgende Beispiel zeigt einen vollständigen Logeintrag für ein bevorstehendes Wartungsereignis:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "message": "Maintenance is scheduled for this instance. Review the maintenance schedule by describing the VM with gcloud CLI or querying the http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance metadata key."
    },
    "serviceName": "compute.googleapis.com",
    "methodName": "compute.instances.upcomingMaintenance",
    "resourceName": "projects/cloud-tpu-multipod-dev/zones/europe-west4-b/instances/t1v-n-9472280f-w-0",
    "request": {
      "@type": "type.googleapis.com/compute.instances.upcomingMaintenance"
    },
    "metadata": {
      "type": "SCHEDULED",
      "windowStartTime": "2024-11-15T04:00:00Z",
      "canReschedule": true,
      "latestWindowStartTime": "2024-11-15T04:00:01Z",
      "windowEndTime": "2024-11-15T08:00:00Z",
      "maintenanceStatus": "PENDING"
  },
  "logName": "projects/cloud-tpu-multipod-dev/logs/cloudaudit.googleapis.com%2Fsystem_event",
  "operation": {
    "id": "systemevent-1731038451389-6265ecbfcd453-5127b81e-f40b8149",
    "producer": "compute.instances.upcomingMaintenance",
    "first": true,
    "last": true
  },
  "receiveTimestamp": "2024-11-08T04:00:54.457835088Z"
}

Wenn das Wartungsereignis beginnt, wird in den Protokollen ein neues Informationsereignis mit Werten wie den folgenden angezeigt:

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "ONGOING"
    • windowStartTime: "2024-07-23T20:00:00Z"

Nach dem Ende des Wartungsereignisses wird in den Audit-Logs ein neues Informationsereignis mit Werten wie den folgenden angezeigt:

  • methodName: "compute.instances.upcomingMaintenance"
  • status: { message: "Maintenance window has completed for this instance. All maintenance notifications on the instance have been removed." }

Nächste Schritte