Wartungsereignisse mit TPUs im Modus „All Capacity“ verwalten

Alle TPU-Hosts werden regelmäßig gewartet. Im TPU-Modus „Alle Kapazitäten“ können Sie Wartungsereignisse planen und die Wartungsvorgänge für alle Ihre Kapazitäten nach Bedarf starten. Sie können Ihre genutzte und ungenutzte Kapazität gleichzeitig oder separat aktualisieren. Sie können die Wartung auch auf VM-, Unterblock-, Block- oder Reservierungsebene durchführen. Mit dieser detaillierten Wartungssteuerung können Sie eine optimale Wartungsreihenfolge erstellen und Wartungsvorgänge so planen, dass die Auswirkungen auf Ihr Unternehmen minimiert werden.

Der TPU-Modus „Alle Kapazitäten“ unterstützt nur „gruppierte Wartung“. Das bedeutet, dass die Wartungsvorgänge für alle VM-Instanzen innerhalb einer Reservierung gleichzeitig geplant werden. Alle TPU-VMs in einer Reservierung haben dasselbe Wartungsfenster. Die Wartungsvorgänge können jedoch separat auf Host-, Unterblock-, Block- oder Reservierungsebene ausgeführt werden. Wartungsbenachrichtigungen werden etwa 90 Tage im Voraus gesendet. Wartungsarbeiten werden nicht öfter als einmal alle 90 Tage durchgeführt.

Wenn Sie TPU Cluster Director in GKE verwenden und Knotenpools mit mehreren Hosts für TPU-Slices verwenden, empfehlen wir, den GKE-Knotenpool zu löschen, bevor Sie die ausstehende Wartung für Hosts in diesem Knotenpool manuell starten. Sobald die Wartung für alle Hosts im ursprünglichen Knotenpool ausgeführt wurde, können Sie den Knotenpool neu erstellen.

Im Folgenden finden Sie ein Beispiel für den Zeitplan eines TPU-Hostwartungsereignisses:

  1. Wartung ist geplant. Sie erhalten eine Benachrichtigung, dass der Host innerhalb von 90 Tagen aktualisiert wird.
  2. Sie können den Host auch manuell aktualisieren. Das ist innerhalb von 90 Tagen möglich.
  3. Nach 90 Tagen wird der Wartungsvorgang in jedem Fall ausgeführt.
  4. Wenn ein weiteres Wartungsereignis geplant ist, bevor das vorherige ausgeführt wird, wird die zweite Operation 180 Tage nach dem geplanten Beginn des ersten Wartungsereignisses ausgeführt.

Benachrichtigungen für Wartungswarnungen für die physische Kapazität einrichten

Compute Engine sendet Ihnen Cloud Logging-Ereignisse für geplante, gestartete oder abgeschlossene Wartungsarbeiten. Diese Wartungsereignisse bleiben in Ihren Logs, sodass Sie Log-Abfragen erstellen können, um einen historischen Überblick über die Wartung Ihrer Kapazität zu erhalten. Sie können sich auch über zukünftige Wartungsereignisse für eine Reservierung, einen Block oder einen Unterblock benachrichtigen lassen, indem Sie logbasierte Benachrichtigungsrichtlinien erstellen.

So erstellen Sie eine Benachrichtigung für Wartungsereignisse in Ihrer physischen Kapazität:

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.
  2. Abfrage anzeigen muss aktiviert sein.
  3. Erstellen Sie im Bereich „Abfrage“ eine Abfrage im Format, das in den folgenden Abschnitten aufgeführt ist. Ersetzen Sie den entsprechenden Parameterplatzhalter und führen Sie die Abfrage aus.
  4. Wenn die zurückgegebenen Ergebnisse Ihren Anforderungen entsprechen, können Sie Benachrichtigungen erstellen. Wählen Sie dazu in der Symbolleiste „Abfrageergebnisse“ im Drop-down-Menü Aktionen die Option Logbenachrichtigung erstellen aus und geben Sie die erforderlichen Informationen an.

Nach anstehender Wartung suchen

Hier ist eine Beispielabfrage für bevorstehende Wartungsarbeiten:

protoPayload.methodName="compute.CAPACITY_COMPONENT.upcomingGroupMaintenance" severity>=DEFAULT
protoPayload.resourceName="projects/shared-reservation-project/reservations/RESOURCE_NAME"
protoPayload.status.message =~ "scheduled"

Ersetzen Sie CAPACITY_COMPONENT und RESOURCE_NAME durch die folgenden Werte:

Benachrichtigungen über anstehende Wartungen für CAPACITY_COMPONENT RESOURCE_NAME
Alle Reservierungen reservations Lassen Sie RESOURCE_NAME aus.
Eine bestimmte Reservierung reservations YOUR_RESERVATION_NAME
Blöcke für alle Reservierungen reservations.blocks Lassen Sie RESOURCE_NAME aus.
Ein bestimmter Block reservations.blocks YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID
Unterblöcke für alle Reservierungen reservations.blocks.subblocks Lassen Sie RESOURCE_NAME aus.
Ein bestimmter Unterblock reservations.blocks.subblocks YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID

Abfrage zum Öffnen des Wartungsfensters

protoPayload.methodName="compute.reservations.CAPACITY_COMPONENT.startGroupMaintenance" severity>=DEFAULT
protoPayload.status.message =~ "started"

Ersetzen Sie CAPACITY_COMPONENT durch einen der folgenden Werte:

Benachrichtigungen für Wartungsfenster erhalten, die für CAPACITY_COMPONENT
Blöcke in Reservierungen reservations.blocks
Unterblöcke in einer Reservierung reservations.blocks.subblocks

Abfrage für abgeschlossene Wartung

Hier ist ein Beispiel für eine Abfrage, mit der Sie nach abgeschlossenen Wartungsarbeiten suchen können:

protoPayload.methodName="compute.reservations.CAPACITY_COMPONENT.completedGroupMaintenance" severity>=DEFAULT
protoPayload.resourceName="projects/YOUR_RESERVATION_PROJECT/reservations/RESOURCE"
protoPayload.status.message =~ "completed"

Ersetzen Sie CAPACITY_COMPONENT und RESOURCE_NAME durch die folgenden Werte:

Benachrichtigungen für abgeschlossene Wartungen erhalten für CAPACITY_COMPONENT RESOURCE_NAME
Alle Reservierungen reservations RESOURCE_NAME weglassen
Eine bestimmte Reservierung reservations YOUR_RESERVATION_NAME
Blöcke für alle Reservierungen reservations.blocks RESOURCE_NAME weglassen
Ein bestimmter Block reservations.blocks YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID
Unterblöcke für alle Reservierungen reservations.blocks.subblocks RESOURCE_NAME weglassen
Ein bestimmter Unterblock reservations.blocks.subblocks YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID

Wartungsstatus der physischen Kapazität ansehen

Sie können den Wartungsstatus Ihrer Kapazität über Cloud Logging, APIs und die CLI abrufen. Informationen zum Wartungsstatus sind auf vier Ebenen verfügbar: Reservierung, Block, Unterblock und Host.

Cloud Logging

Das folgende Beispiel-JSON wurde als Antwort auf diese Beispielanfrage generiert:

{
"protoPayload": {
  "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
  "status": {
    "message": "Maintenance is scheduled for this block in reservation
    YOUR_RESERVATION. Review the maintenance schedule
    by describing the reservation and block via gcloud CLI"
  },
  "metadata": {
    "type":SCHEDULED
    "canReschedule":True
    "windowGroupStartTime": '2025-09-12T13:00:00.000-07:00',
    "windowGroupEndTime": '2025-09-12T17:00:00.000-07:00',
    "maintenanceGroupStatus":PENDING,
    "maintenancePendingCount":128 # Used and Unused Machines,
    "instanceMaintenancePendingCount": 64 # VMs Only
  },
"methodName": "compute.reservations.block.upcomingGroupMaintenance",

},
}

gcloud

gcloud compute reservations blocks describe YOUR_RESERVATION \
--block-name=YOUR_BLOCK \
--project=YOUR_PROJECT \
--zone=YOUR_ZONE

Die Ausgabe sieht etwa so aus:

count: 128 # Host count
creationTimestamp: '2025-08-19T18:23:32.825-07:00'
id: '6404259976725386932'
inUseCount: 64 # In use host count
kind: compute#reservationBlock
name: exr1-block-0002
…
reservationMaintenance:
instanceMaintenanceOngoingCount: 0
instanceMaintenancePendingCount: 64 # VMs Only
maintenanceOngoingCount: 0
maintenancePendingCount: 128 # Used and Unused Hosts
schedulingType: GROUPED
subblockInfraMaintenanceOngoingCount: 0
subblockInfraMaintenancePendingCount: 0
upcomingGroupMaintenance:
  canReschedule: true
  maintenanceReasons:
  - PLANNED_UPDATE
  maintenanceStatus: PENDING
  type: SCHEDULED
  windowEndTime: '2025-09-12T17:00:00.000-07:00'
  windowStartTime: '2025-09-12T13:00:00.000-07:00'

Die folgenden Werte aus der Ausgabe beschreiben die Wartungsinformationen:

  • reservationMaintenance.instanceMaintenanceOngoingCount: Die Anzahl der aktualisierten verwendeten Hosts.
  • reservationMaintenance.instanceMaintenancePendingCount: Die Anzahl der verwendeten Hosts, für die eine Wartung aussteht
  • reservationMaintenance.maintenanceOngoingCount: Die Anzahl der aktualisierten, nicht verwendeten Hosts
  • reservationMaintenance.maintenancePendingCount: die Anzahl der nicht verwendeten Hosts, für die eine Wartung ansteht
  • reservationMaintenance.upcomingGroupMaintenance.maintenanceReasons: die Art der Wartung
  • reservationMaintenance.upcomingGroupMaintenance.maintenanceStatus: Der Status des Wartungsvorgangs
  • reservationMaintenance.upcomingGroupMaintenance.type: der Wartungstyp (SCHEDULED für geplante Wartung oder UNSCHEDULED für ungeplante oder Notfallwartung)
  • reservationMaintenance.upcomingGroupMaintenance.windowEndTime: das geplante Ende des Zeitfensters für den Wartungsvorgang
  • reservationMaintenance.upcomingGroupMaintenance.windowStartTime: der geplante Beginn des Zeitfensters für den Wartungsvorgang

Benachrichtigungen für Wartungsbenachrichtigungen für TPU-VMs einrichten

Sie können Benachrichtigungen für Wartungsereignisse auf Ihren TPU-VMs erstellen:

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.
  2. Stellen Sie den Umschalter Abfrage anzeigen auf „Ein“.
  3. Erstellen Sie im Bereich „Abfrage“ eine Abfrage im Format, das in den folgenden Abschnitten aufgeführt ist.
  4. Wenn Sie sich vergewissert haben, dass die zurückgegebenen Ergebnisse Ihren Anforderungen entsprechen, können Sie eine Benachrichtigung erstellen, indem Sie auf das Drop-down-Menü Aktionen klicken, Logbenachrichtigung erstellen auswählen und die Informationen im Bereich Logbasierte Benachrichtigungsrichtlinie erstellen eingeben.

Abfragen, wann die Wartung für eine VM-Instanz geplant ist

protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
protoPayload.status.message =~ "scheduled"

Abfragen, wann ein Wartungsfenster für eine VM-Instanz geöffnet wurde

protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
protoPayload.status.message =~ "ongoing"

Abfrage für Wartung, die für VM-Instanzen gestartet wurde

protoPayload.methodName="compute.instances.blocks.terminateOnHostMaintenance" severity>=DEFAULT

Abfragen, wann die Wartung für eine VM-Instanz abgeschlossen ist

protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
protoPayload.status.message =~ "completed"

Wartungsstatus einer Cloud TPU-VM ansehen

Sie können den Wartungsstatus einer Cloud TPU-VM mit der Compute Engine-Instanz-API oder mit einem curl-Befehl im Gastbetriebssystem abrufen.

Instanz beschreiben

gcloud

gcloud compute instances describe INSTANCE --zone ZONE

Dieser Befehl gibt in etwa Folgendes zurück:

…
upcomingMaintenance:{
"type":"SCHEDULED"
"canReschedule":True
"windowStartTime": '2025-09-12T13:00:00.000-07:00'
"windowEndTime": '2025-09-12T17:00:00.000-07:00'
"latestWindowStartTime": '2025-09-12T13:00:00.000-07:00'
"maintenanceStatus":"PENDING"
...

curl

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

Dieser Befehl gibt in etwa Folgendes zurück:

{
"maintenanceType":"SCHEDULED"
"canReschedule":True
"windowStartTime": '2025-09-12T13:00:00.000-07:00'
"windowEndTime": '2025-09-12T17:00:00.000-07:00'
"latestWindowStartTime": '2025-09-12T13:00:00.000-07:00'
"maintenanceStatus":"PENDING"
}

Wartungsbenachrichtigungen finden Sie auch in Cloud Logging.

Hier sehen Sie ein Beispiel für eine Log-Nachricht zu einer anstehenden geplanten Wartung. Ein Beispiel für eine Abfrage finden Sie unter Wartungsstatus der physischen Kapazität ansehen.

{
  "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."
    },
    "metadata": {
      "canReschedule": true
      "latestWindowStartTime": "2024-01-01:00:00:00PST"
      "maintenanceStatus": "PENDING"
      "type": "SCHEDULED"
      "windowEndTime": "2024-01-01:00:02:00PST"
      "windowStartTime": "2024-01-01:00:00:00PST"
    },
},
  "operation": {
    "id": "systemevent-1702539760425-60c736da2db40-701ddf19-b5424b20",
    "producer": "compute.instances.upcomingMaintenance",
    "first": true,
    "last": false
  },
}

Das folgende Beispiel zeigt eine Log-Nachricht für eine laufende ungeplante Wartung. Ein Beispiel für eine Abfrage finden Sie unter Abfragen, wann ein Wartungsfenster geöffnet ist.

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "message": "Maintenance window has started 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."
    },
    "metadata": {
      "canReschedule": true
      "latestWindowStartTime": "2024-01-01:00:00:00PST"
      "maintenanceStatus": "ONGING"
      "type": "UNSCHEDULED"
      "windowEndTime": "2024-01-01:00:02:00PST"
      "windowStartTime": "2024-01-01:00:00:00PST"
    },
},
  "operation": {
    "id": "systemevent-1702539760425-60c736da2db40-701ddf19-b5424b20",
    "producer": "compute.instances.upcomingMaintenance",
    "first": true,
    "last": false
  },
}

Das folgende Beispiel zeigt eine Log-Nachricht für eine abgeschlossene Wartung. Ein Beispiel für eine Abfrage finden Sie unter Abfragen, wann die Wartung für eine VM-Instanz abgeschlossen ist.

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "message": "Maintenance window has completed for this instance. All maintenance notifications on the instance have been removed."
    },
  "operation": {
    "id": "systemevent-1702539760425-60c736da2db40-701ddf19-b5424b20",
    "producer": "compute.instances.upcomingMaintenance",
    "first": false,
    "last": true
  },
}

Ausstehende Wartung für physische Kapazität manuell starten

Sobald ein Wartungsereignis geplant ist (maintenanceStatus ist auf PENDING festgelegt), können Sie die Wartung für Ihre Reservierungen, Blöcke oder Unterblöcke, für die das Attribut canReschedule auf True festgelegt ist, manuell starten. Wenn Sie ein ausstehendes Wartungsereignis manuell starten, hängt das Ergebnis vom Wartungsstatus Ihrer Reservierung, Blöcke oder Unterblöcke ab. In der folgenden Tabelle wird beschrieben, was in den einzelnen Fällen passiert:

Wartungsstatus Beschreibung Was wird angezeigt?
Geplant Für die Reservierung ist eine planmäßige Wartung in Compute Engine vorgesehen. Sie können die Wartung vor dem geplanten Zeitpunkt manuell starten. In der Google Cloud CLI oder REST API ist das Feld maintenanceStatus auf PENDING festgelegt.
In Bearbeitung Die Wartung läuft. Sie können den Termin nicht verschieben. In der Google Cloud CLI oder REST API ist das Feld maintenanceStatus auf ONGOING festgelegt.
Abgeschlossen Die Wartung ist abgeschlossen. Compute Engine hat alle Wartungsbenachrichtigungen von der VM entfernt. In der Google Cloud CLI oder REST API ist das Feld maintenanceStatus nicht vorhanden.

Wartung für die gesamte Reservierung manuell starten

Mit dem folgenden Befehl wird die Wartung für eine Reservierung gestartet. Verwenden Sie den Parameter --scope, um einen der folgenden Werte anzugeben, der den Umfang des Wartungsvorgangs festlegt:

  • Alle Hosts: --scope=all
  • Hosts mit laufenden VMs: --scope=running
  • Nicht verwendete, beendete oder angehaltene VMs: --scope=unused

Führen Sie den folgenden Befehl aus, um die Wartung für alle Blöcke einer Reservierung zu starten:

gcloud compute reservations perform-maintenance YOUR_RESERVATION \
  --zone=YOUR_ZONE \
  --scope=all

Führen Sie den folgenden Befehl aus, um den Fortschritt eines Wartungsvorgangs zu prüfen:

gcloud compute reservations describe YOUR_RESERVATION  \
  --project=YOUR_PROJECT \
  --zone=YOUR_ZONE

Die Ausgabe sieht etwa so aus:

ResourceStatus
  upcomingGroupMaintenance:
    "type":"SCHEDULED"
    "canReschedule":True
    "maintenanceStatus":"PENDING"  "ONGOING"
    "maintenancePendingCount":512  0 # all hosts are moved into an ongoing state.
    "maintenanceOngoingCount":0  512  256  0 # this number first increases to all hosts
                                           # as machines complete, this number reduces.

Wartung für einen Block manuell starten

Mit dem folgenden Befehl wird die Wartung eines Blocks gestartet. Verwenden Sie den Parameter --scope, um einen der folgenden Werte anzugeben, der den Umfang des Wartungsvorgangs festlegt:

  • Alle Hosts: --scope=all
  • Hosts mit laufenden VMs: --scope=running
  • Nicht verwendete, beendete oder angehaltene VMs: --scope=unused

Der folgende Befehl zeigt, wie die Wartung auf laufenden Hosts gestartet wird:

gcloud compute reservations perform-maintenance YOUR_RESERVATION
    --scope=RUNNING \
    --project=YOUR_PROJECT \
    --zone=YOUR_ZONE

Der folgende Befehl zeigt, wie Sie den Wartungsfortschritt für einen Block prüfen:

gcloud compute reservations blocks describe YOUR_RESERVATION --block-name=YOUR_BLOCK_NAME  \
    --project=YOUR_PROJECT \
    --zone=YOUR_ZONE

Die Ausgabe sieht etwa so aus:

ResourceStatus
  upcomingGroupMaintenance:
    "maintenanceType":"SCHEDULED"    "maintenanceGroupStatus":"PENDING"  "ONGOING"
    "maintenancePending":0
 "maintenanceOngoing":70  0

Wartung für einen Unterblock manuell starten

Wenn Sie die Wartung eines Unterblocks starten, geben Sie den Parameter --scope nicht an, da ein Unterblock der kleinste Wartungsbereich ist.

Mit dem folgenden Befehl wird die Wartung auf allen Hosts in einem Block gestartet:

gcloud compute reservations sub-blocks perform-maintenance YOUR_RESERVATION
    --block-name=YOUR_BLOCK_NAME \
    --sub-block-name=YOUR_SUBBLOCK_NAME \
    --project=YOUR_PROJECT \
    --zone=YOUR_ZONE

Mit dem folgenden Befehl wird der Wartungsfortschritt geprüft:

gcloud compute reservations sub-blocks describe YOUR_RESERVATION
    --block-name=YOUR_BLOCK_NAME \
    --sub-block-name=YOUR_SUBBLOCK_NAME \
    --project=YOUR_PROJECT \
    --zone=YOUR_ZONE

Die Ausgabe sieht etwa so aus:

ResourceStatus
  groupMaintenance:
    "maintenanceType":"SCHEDULED"
    "canReschedule":True
    "maintenanceGroupStatus":"PENDING"  "ONGOING"
    "maintenancePendingCount": 32  0 # 32 hosts updated
    "maintenanceOngoingCount":0  32  0
    "instanceMaintenancePendingCount": 64  0
    "instanceMaintenanceOngoingCount": 0  64  0 # 64 instances updated

Anstehende Wartung für eine TPU-VM manuell starten

Wenn auf einem Host mehrere VMs ausgeführt werden, wird durch das Starten der Wartung auf einer VM die Wartung für alle VMs auf dem Host ausgelöst.

Das folgende Beispiel zeigt, wie die Wartung für einen Trillium-Host mit zwei VMs, vm-1 und vm-2, manuell ausgelöst wird:

gcloud compute instances perform-maintenance vm-1

Wenn Sie die Wartung von vm-1 starten, wird auch die Wartung von vm-2 ausgelöst.