Gerenciar eventos de manutenção com TPUs no modo "Toda a capacidade"
Todos os hosts da TPU passam por manutenção regular. No modo de capacidade total da TPU, é possível planejar os próximos eventos de manutenção e iniciar as operações quando quiser em toda a capacidade. É possível atualizar a capacidade usada e não usada simultaneamente ou separadamente. Também é possível realizar a manutenção no nível de uma VM, um sub-bloco, um bloco ou uma reserva. Esse controle refinado permite criar uma sequência de manutenção ideal e programar operações de manutenção para minimizar o impacto nos negócios.
O modo de capacidade total da TPU só é compatível com "manutenção agrupada", o que significa que as operações de manutenção de todas as instâncias de VM em uma reserva são programadas ao mesmo tempo. Todas as VMs de TPU em uma reserva têm a mesma janela de manutenção. No entanto, as operações de manutenção podem ser realizadas separadamente no nível do host, do sub-bloco, do bloco ou da reserva. As notificações de manutenção são enviadas com aproximadamente 90 dias de antecedência. A manutenção não será realizada com mais frequência do que uma vez a cada 90 dias.
Se você estiver usando o TPU Cluster Director no GKE e pools de nós da fração da TPU de vários hosts, recomendamos excluir o pool de nós do GKE antes de iniciar manualmente a manutenção pendente de qualquer host nesse pool. Depois que a manutenção for executada em todos os hosts no pool de nós original, você poderá recriar o pool.
Confira a seguir um exemplo de linha do tempo para um evento de manutenção de host da TPU:
- A manutenção está programada. Você vai receber uma notificação informando que o host será atualizado em até 90 dias.
- Você pode atualizar manualmente o host com 90 dias.
- Após 90 dias, a operação de manutenção é executada sem exceção.
- Se outro evento de manutenção for programado antes da execução do anterior, a segunda operação será programada para ser executada após 180 dias, 90 dias após a programação do evento inicial.
Configurar alertas de notificação de manutenção para capacidade física
O Compute Engine envia eventos do Cloud Logging para manutenção programada, iniciada ou concluída. Esses eventos de manutenção permanecem nos seus registros para que você possa criar consultas de registros e ter uma visão histórica da manutenção da sua capacidade. Você também pode receber notificações sobre eventos de manutenção futuros para uma reserva, um bloco ou um subbloco criando políticas de alerta com base em registros.
Para criar um alerta para eventos de manutenção na sua capacidade física:
- No console do Google Cloud , acesse o Explorador de registros.
- Verifique se a opção Mostrar consulta está ativada.
- No painel de consulta, crie uma consulta no formato listado nas seções a seguir. Substitua o marcador de posição do parâmetro correspondente e execute a consulta.
- Depois de verificar se os resultados retornados correspondem ao que você quer, é possível criar alertas selecionando Criar alerta de registro no menu suspenso Ações da barra de ferramentas "Resultados da consulta" e fornecendo as informações solicitadas.
Consultar manutenções futuras
Confira a seguir um exemplo de consulta para manutenção programada:
protoPayload.methodName="compute.CAPACITY_COMPONENT.upcomingGroupMaintenance" severity>=DEFAULT protoPayload.resourceName="projects/shared-reservation-project/reservations/RESOURCE_NAME" protoPayload.status.message =~ "scheduled"
Substitua CAPACITY_COMPONENT e RESOURCE_NAME pelos seguintes valores:
| Receber notificações de manutenção futura para | CAPACITY_COMPONENT |
RESOURCE_NAME |
|---|---|---|
| Todas as reservas | reservations |
Omitir RESOURCE_NAME |
| Uma reserva específica | reservations |
YOUR_RESERVATION_NAME |
| Bloqueios em todas as reservas | reservations.blocks |
Omitir RESOURCE_NAME |
| Um bloco específico | reservations.blocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID |
| Sub-blocos em todas as reservas | reservations.blocks.subblocks |
Omitir RESOURCE_NAME |
| Um sub-bloco específico | reservations.blocks.subblocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID |
Consulta para abertura da janela de manutenção
protoPayload.methodName="compute.reservations.CAPACITY_COMPONENT.startGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "started"
Substitua CAPACITY_COMPONENT por um dos seguintes valores:
| Receber notificação sobre a abertura de uma janela de manutenção para | CAPACITY_COMPONENT |
|---|---|
| Blocos em uma reserva | reservations.blocks |
| Sub-blocos em uma reserva | reservations.blocks.subblocks |
Consultar manutenções concluídas
Confira um exemplo de consulta para manutenção concluída:
protoPayload.methodName="compute.reservations.CAPACITY_COMPONENT.completedGroupMaintenance" severity>=DEFAULT protoPayload.resourceName="projects/YOUR_RESERVATION_PROJECT/reservations/RESOURCE" protoPayload.status.message =~ "completed"
Substitua CAPACITY_COMPONENT e RESOURCE_NAME pelos seguintes valores:
| Receber notificação de manutenção concluída para | CAPACITY_COMPONENT |
RESOURCE_NAME |
|---|---|---|
| Todas as reservas | reservations |
Omitir RESOURCE_NAME |
| Uma reserva específica | reservations |
YOUR_RESERVATION_NAME |
| Bloqueios em todas as reservas | reservations.blocks |
Omitir RESOURCE_NAME |
| Um bloco específico | reservations.blocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID |
| Sub-blocos em todas as reservas | reservations.blocks.subblocks |
Omitir RESOURCE_NAME |
| Um sub-bloco específico | reservations.blocks.subblocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID |
Ver o status de manutenção da capacidade física
É possível conferir o status de manutenção da sua capacidade no Cloud Logging, APIs e CLI. As informações de status da manutenção são fornecidas em quatro níveis: reserva, bloco, subbloco e host.
Cloud Logging
O exemplo de JSON a seguir foi gerado em resposta a esta consulta de exemplo:
{ "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
O resultado será assim:
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' …
Os valores a seguir da saída descrevem as informações de manutenção:
reservationMaintenance.instanceMaintenanceOngoingCount: o número de hosts usados que estão sendo atualizados.reservationMaintenance.instanceMaintenancePendingCount: o número de hosts usados com manutenção pendentereservationMaintenance.maintenanceOngoingCount: o número de hosts não utilizados que estão sendo atualizados.reservationMaintenance.maintenancePendingCount: o número de hosts não utilizados pendentes de manutenção.reservationMaintenance.upcomingGroupMaintenance.maintenanceReasons: o tipo de manutençãoreservationMaintenance.upcomingGroupMaintenance.maintenanceStatus: o status da operação de manutençãoreservationMaintenance.upcomingGroupMaintenance.type: o tipo de manutenção (SCHEDULEDpara manutenção planejada ouUNSCHEDULEDpara manutenção não planejada ou de emergência)reservationMaintenance.upcomingGroupMaintenance.windowEndTime: o fim programado do intervalo de tempo para a operação de manutenção.reservationMaintenance.upcomingGroupMaintenance.windowStartTime: o início programado do intervalo de tempo para a operação de manutenção.
Configurar alertas de notificação de manutenção para VMs de TPU
É possível criar alertas para eventos de manutenção nas suas VMs de TPU:
- No console do Google Cloud , acesse o Explorador de registros.
- Defina o botão Mostrar consulta como "ativado".
- No painel de consulta, crie uma consulta no formato listado nas seções a seguir.
- Depois de verificar se os resultados retornados correspondem ao que você quer, crie um alerta clicando no menu suspenso Ações, selecione Criar alerta de registro e preencha as informações no painel Criar política de alertas com base em registros.
Consultar quando a manutenção está programada para uma instância de VM
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "scheduled"
Consulta para quando a janela de manutenção foi aberta para uma instância de VM
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "ongoing"
Consulta para manutenção iniciada em instâncias de VM
protoPayload.methodName="compute.instances.blocks.terminateOnHostMaintenance" severity>=DEFAULT
Consulta para quando a manutenção for concluída em uma instância de VM
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT protoPayload.status.message =~ "completed"
Conferir o status de manutenção de uma VM do Cloud TPU
É possível recuperar o status de manutenção de uma VM do Cloud TPU com a
API de instância do Compute Engine ou com um comando curl no
sistema operacional convidado.
Descrever uma instância
gcloud
gcloud compute instances describe INSTANCE --zone ZONE
Esse comando retorna uma saída semelhante a esta:
… 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"
Esse comando retorna uma saída semelhante a esta:
{ "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" }
Também é possível encontrar notificações de manutenção no Cloud Logging.
Confira a seguir um exemplo de mensagem de registro de uma manutenção planejada pendente. Para ver um exemplo de consulta, consulte Conferir o status de manutenção da capacidade física.
{ "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 }, }
O exemplo a seguir é uma mensagem de registro de uma manutenção não planejada em andamento. Para ver um exemplo de consulta, consulte Consultar quando uma janela de manutenção está aberta.
{ "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 }, }
O exemplo a seguir é uma mensagem de registro para uma manutenção concluída. Para um exemplo de consulta, consulte Consultar quando a manutenção de uma instância de VM foi concluída.
{ "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 }, }
Iniciar manualmente a manutenção pendente da capacidade física
Depois que um evento de manutenção é programado (maintenanceStatus é definido como PENDING),
é possível iniciar manualmente a manutenção das suas reservas, blocos ou sub-blocos
que têm a propriedade canReschedule definida como True. Quando você inicia manualmente
um evento de manutenção pendente, o que acontece depende do estado de manutenção da
reserva, dos blocos ou dos sub-blocos. A tabela a seguir descreve o que acontece em cada um deles:
| Estado de manutenção | Descrição | O que você vê |
|---|---|---|
| Programado | O Compute Engine tem uma manutenção programada para a reserva. É possível iniciar a manutenção manualmente antes do horário programado. | Na
CLI do Google Cloud ou na API REST, o campo maintenanceStatus é definido como
PENDING. |
| Em andamento | A manutenção está em andamento. Não é possível reagendar. | Na CLI do Google Cloud ou na API REST, o campo maintenanceStatus
é definido como ONGOING. |
| Concluído | A manutenção foi concluída. O Compute Engine removeu todas as notificações de manutenção da VM. | Na CLI do Google Cloud ou na API REST, o campo maintenanceStatus não existe. |
Iniciar manualmente a manutenção em toda a reserva
O comando a seguir inicia a manutenção de uma reserva. Use o parâmetro
--scope para especificar um dos seguintes valores que definem o escopo
da operação de manutenção:
- Todos os hosts:
--scope=all - Hosts com VMs em execução:
--scope=running - VMs não usadas, interrompidas ou suspensas:
--scope=unused
Para iniciar a manutenção em todos os blocos de uma reserva, execute o seguinte comando:
gcloud compute reservations perform-maintenance YOUR_RESERVATION \ --zone=YOUR_ZONE \ --scope=all
Para verificar o progresso de um evento de manutenção, execute o seguinte comando:
gcloud compute reservations describe YOUR_RESERVATION \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
O resultado será assim:
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.
Iniciar manualmente a manutenção em um bloco
O comando a seguir inicia a manutenção em um bloco. Use o parâmetro --scope para especificar um dos seguintes valores que definem o escopo da operação de manutenção:
- Todos os hosts:
--scope=all - Hosts com VMs em execução:
--scope=running - VMs não usadas, interrompidas ou suspensas:
--scope=unused
O comando a seguir mostra como iniciar a manutenção em hosts em execução:
gcloud compute reservations perform-maintenance YOUR_RESERVATION --scope=RUNNING \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
O comando a seguir mostra como verificar o progresso da manutenção de um bloco:
gcloud compute reservations blocks describe YOUR_RESERVATION --block-name=YOUR_BLOCK_NAME \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
O resultado será assim:
ResourceStatus upcomingGroupMaintenance: "maintenanceType":"SCHEDULED" … "maintenanceGroupStatus":"PENDING" → "ONGOING" "maintenancePending":0 "maintenanceOngoing":70 → 0
Iniciar manualmente a manutenção em um sub-bloco
Ao iniciar a manutenção em um subbloco, não é necessário especificar o parâmetro --scope, porque um subbloco é o menor escopo de manutenção.
O comando a seguir inicia a manutenção em todos os hosts de um bloco:
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
O comando a seguir verifica o progresso da manutenção:
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
O resultado será assim:
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
Iniciar manualmente a manutenção pendente de uma VM de TPU
Se um host estiver executando mais de uma VM, iniciar a manutenção em uma delas vai acionar a manutenção de todas as VMs no host.
O exemplo a seguir mostra como acionar manualmente a manutenção de um host do Trillium
com duas VMs, vm-1 e vm-2:
gcloud compute instances perform-maintenance vm-1
Iniciar a manutenção de vm-1 vai acionar a manutenção de vm-2.