Gestire gli eventi di manutenzione con le TPU in modalità Tutte le capacità
Tutti gli host TPU vengono sottoposti a manutenzione regolare. In modalità TPU All Capacity, puoi pianificare i prossimi eventi di manutenzione e avviare le operazioni di manutenzione quando vuoi su tutta la tua capacità. Puoi aggiornare la capacità utilizzata e non utilizzata contemporaneamente o separatamente. Puoi anche eseguire la manutenzione a livello di VM, blocco secondario, blocco o prenotazione. Questo controllo di manutenzione granulare ti consente di creare una sequenza di manutenzione ottimale e pianificare le operazioni di manutenzione per ridurre al minimo l'impatto sull'attività.
La modalità TPU All Capacity supporta solo la "manutenzione raggruppata", il che significa che le operazioni di manutenzione per tutte le istanze VM all'interno di una prenotazione vengono pianificate contemporaneamente. Tutte le VM TPU in una prenotazione hanno lo stesso periodo di manutenzione. Tuttavia, le operazioni di manutenzione possono essere eseguite separatamente a livello di host, blocco secondario, blocco o prenotazione. Le notifiche di manutenzione vengono inviate circa 90 giorni prima. La manutenzione non verrà eseguita più di una volta ogni 90 giorni.
Se utilizzi TPU Cluster Director su GKE e utilizzi node pool di sezioni TPU multi-host, ti consigliamo di eliminare il node pool GKE prima di avviare manualmente la manutenzione in attesa per qualsiasi host in quel node pool. Una volta eseguita la manutenzione per tutti gli host nel pool di nodi originale, puoi ricreare il pool di nodi.
Di seguito è riportato un esempio di cronologia per un evento di manutenzione dell'host TPU:
- La manutenzione è pianificata. Ti viene inviata una notifica che indica che l'host verrà aggiornato entro 90 giorni.
- Puoi scegliere di aggiornare manualmente l'host entro 90 giorni.
- Dopo 90 giorni, l'operazione di manutenzione viene eseguita senza eccezioni.
- Se viene pianificato un altro evento di manutenzione prima dell'esecuzione del precedente, la seconda operazione è pianificata per l'esecuzione dopo 180 giorni, 90 giorni dopo la pianificazione dell'evento di manutenzione iniziale.
Configurare gli avvisi di notifica di manutenzione per la capacità fisica
Compute Engine ti invia eventi Cloud Logging per la manutenzione pianificata, avviata o completata. Questi eventi di manutenzione rimangono nei log, in modo da poter creare query di log per ottenere una visualizzazione storica della manutenzione della tua capacità. Puoi anche ricevere notifiche sugli eventi di manutenzione futuri per una prenotazione, blocco o sottoblocco creando policy di avviso basate sui log.
Per creare un avviso per gli eventi di manutenzione della capacità fisica:
- Nella console Google Cloud , vai a Esplora log.
- Assicurati che l'opzione Mostra query sia attiva.
- Nel riquadro della query, crea una query nel formato elencato nelle sezioni seguenti. Sostituisci il segnaposto del parametro corrispondente e esegui la query.
- Dopo aver verificato che i risultati restituiti corrispondano a ciò che ti interessa, puoi creare avvisi selezionando Crea avviso log dal menu a discesa Azioni nella barra degli strumenti Risultati query e fornendo le informazioni richieste.
Query per la manutenzione prevista
Di seguito è riportato un esempio di query per interrogare la manutenzione imminente:
protoPayload.methodName="compute.CAPACITY_COMPONENT.upcomingGroupMaintenance" severity>=DEFAULT protoPayload.resourceName="projects/shared-reservation-project/reservations/RESOURCE_NAME" protoPayload.status.message =~ "scheduled"
Sostituisci CAPACITY_COMPONENT e RESOURCE_NAME con i seguenti valori:
| Ricevi una notifica di manutenzione imminente per | CAPACITY_COMPONENT |
RESOURCE_NAME |
|---|---|---|
| Tutte le prenotazioni | reservations |
Ometti RESOURCE_NAME |
| Una prenotazione specifica | reservations |
YOUR_RESERVATION_NAME |
| Blocchi in tutte le prenotazioni | reservations.blocks |
Ometti RESOURCE_NAME |
| Un blocco specifico | reservations.blocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID |
| Blocchi secondari in tutte le prenotazioni | reservations.blocks.subblocks |
Ometti RESOURCE_NAME |
| Un blocco secondario specifico | reservations.blocks.subblocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID |
Query per l'apertura del periodo di manutenzione
protoPayload.methodName="compute.reservations.CAPACITY_COMPONENT.startGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "started"
Sostituisci CAPACITY_COMPONENT con uno dei seguenti valori:
| Ricevere una notifica per l'apertura di un periodo di manutenzione per | CAPACITY_COMPONENT |
|---|---|
| Blocchi in una prenotazione | reservations.blocks |
| Blocchi secondari in una prenotazione | reservations.blocks.subblocks |
Query per la manutenzione completata
Di seguito è riportato un esempio di query per eseguire query sulla manutenzione completata:
protoPayload.methodName="compute.reservations.CAPACITY_COMPONENT.completedGroupMaintenance" severity>=DEFAULT protoPayload.resourceName="projects/YOUR_RESERVATION_PROJECT/reservations/RESOURCE" protoPayload.status.message =~ "completed"
Sostituisci CAPACITY_COMPONENT e RESOURCE_NAME con i seguenti valori:
| Ricevi una notifica per la manutenzione completata per | CAPACITY_COMPONENT |
RESOURCE_NAME |
|---|---|---|
| Tutte le prenotazioni | reservations |
Ometti RESOURCE_NAME |
| Una prenotazione specifica | reservations |
YOUR_RESERVATION_NAME |
| Blocchi in tutte le prenotazioni | reservations.blocks |
Ometti RESOURCE_NAME |
| Un blocco specifico | reservations.blocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID |
| Blocchi secondari in tutte le prenotazioni | reservations.blocks.subblocks |
Ometti RESOURCE_NAME |
| Un blocco secondario specifico | reservations.blocks.subblocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID |
Visualizzare lo stato di manutenzione della capacità fisica
Puoi scoprire lo stato di manutenzione della tua capacità tramite Cloud Logging, API e CLI. Le informazioni sullo stato della manutenzione sono fornite a quattro livelli: prenotazione, blocco, sottoblocco e host.
Cloud Logging
Il seguente JSON di esempio è stato generato in risposta a questa query di esempio:
{ "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
L'output è simile al seguente:
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' …
I seguenti valori dell'output descrivono le informazioni sulla manutenzione:
reservationMaintenance.instanceMaintenanceOngoingCount: il numero di host utilizzati in fase di aggiornamentoreservationMaintenance.instanceMaintenancePendingCount: il numero di host utilizzati in attesa di manutenzionereservationMaintenance.maintenanceOngoingCount: il numero di host inutilizzati in fase di aggiornamentoreservationMaintenance.maintenancePendingCount: il numero di host inutilizzati in attesa di manutenzionereservationMaintenance.upcomingGroupMaintenance.maintenanceReasons: il tipo di manutenzionereservationMaintenance.upcomingGroupMaintenance.maintenanceStatus: lo stato dell'operazione di manutenzionereservationMaintenance.upcomingGroupMaintenance.type: il tipo di manutenzione (SCHEDULEDper la manutenzione pianificata oUNSCHEDULEDper la manutenzione non pianificata o di emergenza)reservationMaintenance.upcomingGroupMaintenance.windowEndTime: la fine pianificata della finestra temporale per l'operazione di manutenzionereservationMaintenance.upcomingGroupMaintenance.windowStartTime: l'inizio pianificato dell'intervallo di tempo per l'operazione di manutenzione
Configurare gli avvisi di notifica di manutenzione per le VM TPU
Puoi creare avvisi per gli eventi di manutenzione sulle tue VM TPU:
- Nella console Google Cloud , vai a Esplora log.
- Imposta il pulsante di attivazione/disattivazione Mostra query su "Attivo".
- Nel riquadro della query, crea una query nel formato elencato nelle sezioni seguenti.
- Una volta verificato che i risultati restituiti corrispondano a ciò che vuoi, puoi creare un avviso facendo clic sul menu a discesa Azioni, selezionando Crea avviso log e completando le informazioni nel riquadro Crea criterio di avviso basato sui log.
Esegui query per quando è pianificata la manutenzione di un'istanza VM
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "scheduled"
Esegui query per sapere quando è stato aperto il periodo di manutenzione per un'istanza VM
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "ongoing"
Query per la manutenzione avviata per le istanze VM
protoPayload.methodName="compute.instances.blocks.terminateOnHostMaintenance" severity>=DEFAULT
Esegui una query per sapere quando è stata completata la manutenzione di un'istanza VM
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "completed"
Visualizza lo stato di manutenzione di una VM Cloud TPU
Puoi recuperare lo stato di manutenzione di una VM Cloud TPU con l'API Compute Engine Instance o con un comando curl dal sistema operativo guest.
Descrivi un'istanza
gcloud
gcloud compute instances describe INSTANCE --zone ZONE
Questo comando restituisce un output simile al seguente:
… 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"
Questo comando restituisce un output simile al seguente:
{ "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" }
Puoi trovare le notifiche di manutenzione anche in Cloud Logging.
Di seguito è riportato un esempio di messaggio di log di una manutenzione pianificata in attesa. Per una query di esempio, vedi Visualizzare lo stato di manutenzione della capacità fisica.
{ "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 }, }
L'esempio seguente è un messaggio di log di una manutenzione non pianificata in corso. Per una query di esempio, consulta Query per quando è aperto un periodo di manutenzione.
{ "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 }, }
Il seguente esempio è un messaggio di log per la manutenzione completata. Per un esempio di query, consulta Query per quando la manutenzione è stata completata per un'istanza VM.
{ "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 }, }
Avviare manualmente la manutenzione in attesa per la capacità fisica
Una volta pianificato un evento di manutenzione (maintenanceStatus è impostato su PENDING),
puoi avviare manualmente la manutenzione per le prenotazioni, i blocchi o i sottoblocchi
che hanno la proprietà canReschedule impostata su True. Quando avvii manualmente
un evento di manutenzione in attesa, ciò che accade dipende dallo stato di manutenzione
della prenotazione, dei blocchi o dei blocchi secondari. La tabella seguente descrive cosa
succede per ciascuna di queste situazioni:
| Stato di manutenzione | Descrizione | Cosa vedi |
|---|---|---|
| Pianificato | Compute Engine ha pianificato la manutenzione per la prenotazione. Puoi avviare manualmente la manutenzione prima dell'orario pianificato. | In
Google Cloud CLI o nell'API REST, il campo maintenanceStatus è impostato su
PENDING. |
| In corso | La manutenzione è in corso. Non puoi riprogrammarlo. | In Google Cloud CLI o nell'API REST, il campo maintenanceStatus
è impostato su ONGOING. |
| Completa | La manutenzione è terminata. Compute Engine ha rimosso tutte le notifiche di manutenzione dalla VM. | In Google Cloud CLI o nell'API REST, il campo maintenanceStatus
non esiste. |
Avviare manualmente la manutenzione dell'intera prenotazione
Il seguente comando avvia la manutenzione di una prenotazione. Utilizza il parametro
--scope per specificare uno dei seguenti valori che indicano l'ambito
dell'operazione di manutenzione:
- Tutti gli host:
--scope=all - Host con VM in esecuzione:
--scope=running - VM inutilizzate, arrestate o sospese:
--scope=unused
Per avviare la manutenzione di tutti i blocchi di una prenotazione, esegui questo comando:
gcloud compute reservations perform-maintenance YOUR_RESERVATION \ --zone=YOUR_ZONE \ --scope=all
Per controllare l'avanzamento di un evento di manutenzione, esegui questo comando:
gcloud compute reservations describe YOUR_RESERVATION \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
L'output è simile al seguente:
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.
Avviare manualmente la manutenzione di un blocco
Il seguente comando avvia la manutenzione di un blocco. Utilizza il parametro --scope
per specificare uno dei seguenti valori che indicano l'ambito dell'operazione
di manutenzione:
- Tutti gli host:
--scope=all - Host con VM in esecuzione:
--scope=running - VM inutilizzate, arrestate o sospese:
--scope=unused
Il seguente comando mostra come avviare la manutenzione sugli host in esecuzione:
gcloud compute reservations perform-maintenance YOUR_RESERVATION --scope=RUNNING \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
Il seguente comando mostra come controllare l'avanzamento della manutenzione per un blocco:
gcloud compute reservations blocks describe YOUR_RESERVATION --block-name=YOUR_BLOCK_NAME \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
L'output è simile al seguente:
ResourceStatus upcomingGroupMaintenance: "maintenanceType":"SCHEDULED" … "maintenanceGroupStatus":"PENDING" → "ONGOING" "maintenancePending":0 "maintenanceOngoing":70 → 0
Avviare manualmente la manutenzione di un blocco secondario
Quando avvii la manutenzione di un blocco secondario, non specificare il parametro --scope perché un blocco secondario è l'ambito di manutenzione più piccolo.
Il seguente comando avvia la manutenzione di tutti gli host di un blocco:
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
Il seguente comando controlla l'avanzamento della manutenzione:
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
L'output è simile al seguente:
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
Avvia manualmente la manutenzione in attesa per una VM TPU
Se un host esegue più di una VM, l'avvio della manutenzione su una VM attiva la manutenzione per tutte le VM sull'host.
L'esempio seguente mostra come attivare manualmente la manutenzione per un host Trillium
con due VM, vm-1 e vm-2:
gcloud compute instances perform-maintenance vm-1
L'avvio della manutenzione di vm-1 attiverà la manutenzione di vm-2.