Conferir notificações de manutenção

Um evento de manutenção de host ocorre quando o Google Cloud precisa realizar uma atividade de manutenção ou reparo na TPU. O Google envia notificações sobre manutenções de host programadas antes da realização delas. Quando a janela de manutenção abre, o Google Cloud realiza a manutenção automaticamente na instância. Ao monitorar as janelas de manutenções programadas da VM, é possível preparar proativamente as cargas de trabalho para lidar com essas manutenções com o mínimo de interrupção.

Com o Cloud TPU, é possível conferir notificações de manutenção usando a CLI do Google Cloud e consultando o servidor de metadados. Também é possível conferir os próximos eventos de manutenção no Cloud Logging. Para saber como conferir notificações de manutenção para TPUs no GKE, consulte Gerenciar a interrupção de nós do GKE para GPUs e TPUs.

Campos de notificação de manutenção

As notificações de manutenção contêm os seguintes campos:

  • windowStartTime: o início da janela em que a manutenção vai ocorrer.
  • windowEndTime: o fim da janela em que a manutenção vai ocorrer.
  • latestWindowStartTime: o horário mais recente em que é possível reprogramar uma manutenção para ser realizada.
  • maintenanceType: o tipo de manutenção que será realizada.
    • SCHEDULED: um aviso sobre a manutenção será enviado com sete dias de antecedência.
    • UNSCHEDULED: a manutenção contém atualizações críticas e um aviso é enviado com menos antecedência do que no caso dos eventos de manutenção programados.
  • canReschedule: se é possível iniciar manualmente a manutenção durante o período de notificação dessa VM.
    • TRUE: é possível iniciar manualmente a manutenção durante o período de notificação.
    • FALSE: não é possível iniciar manualmente a manutenção nessa VM. Em geral, isso acontece quando a VM está passando ativamente por uma manutenção.
  • maintenanceStatus: o status da operação de manutenção atual.
    • ONGOING: a operação de manutenção está em andamento.
    • PENDING: a operação de manutenção ainda não foi iniciada, mas está programada.

Se não houver uma notificação de manutenção, a resposta será parecida com o seguinte:

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

Comportamentos do status de manutenção

Ao gerenciar eventos de manutenção, verifique os valores de canReschedule e maintenanceStatus. Quando combinados, esses campos indicam quais ações você pode ou não realizar em relação ao início manual de um evento de manutenção:

  • canReschedule=True e maintenanceStatus=Pending: é possível iniciar manualmente o evento de manutenção na instância antes do horário de início programado.
  • canReschedule=False e maintenanceStatus=Ongoing: a manutenção está em andamento e não pode ser reprogramada.
  • canReschedule=False e maintenanceStatus=Pending: a instância não aceita eventos de manutenção acionados manualmente.

Conferir notificações de manutenção

Para conferir as notificações de manutenção, faça o seguinte:

  • Chame a API Cloud TPU usando a CLI do Google Cloud.
  • Consulte o servidor de metadados na VM.
  • Verifique o Cloud Logging.

Verificar se há notificações de manutenção nas TPUs

gcloud

Use o comando gcloud alpha compute tpus tpu-vm describe para conferir notificações de manutenção:

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

Se houver um evento de manutenção programado, a resposta terá uma seção parecida com esta:

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"

Na resposta:

  • A manutenção está programada para a data e a hora mostradas em windowStartTime.
  • canReschedule está definido como true e maintenanceStatus está definido como PENDING. Essas configurações indicam que é possível iniciar manualmente o evento de manutenção programada antes da data mostrada em latestWindowStartTime.

Servidor de metadados

Em uma VM de TPU, consulte o servidor de metadados para saber o próximo evento de manutenção:

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

Se houver um evento de manutenção programado, a resposta terá uma seção parecida com esta:

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"
}

É possível consultar o servidor de metadados de qualquer VM de TPU na fração porque a notificação de evento de manutenção programada é igual para todas as VMs em uma fração.

Para mais informações sobre os metadados da VM, consulte Sobre os metadados da VM na documentação do Compute Engine.

Verificar se há notificações de manutenção no Cloud Logging

Quando uma notificação é programada no Cloud TPU, o Cloud Logging passa a ter um registro de eventos do sistema para o evento, com methodName: compute.instance.upcomingMaintenance. Para conferir os registros dos próximos eventos de manutenção, faça o seguinte:

  1. No menu de navegação do console do Google Cloud , acesse a página Análise de registros:

    Acessar a Análise de registros

  2. Use a seguinte consulta de pesquisa para conferir as TPUs que têm um evento de manutenção programada:

    "compute.instances.upcomingMaintenance"

    O Cloud TPU registra os próximos eventos de manutenção no Cloud Logging de acordo com a instância de VM individual, como t1v-n-5bdca789-w-0.

Exemplos de registros de notificação de manutenção

Uma notificação de evento de manutenção aparece na Análise de registros com valores parecidos com estes:

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

Confira este exemplo de uma entrada de registro completa para um evento de manutenção programada:

{
  "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"
}

Quando o evento de manutenção começa, um novo evento informativo aparece nos registros com valores parecidos com estes:

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

Quando o evento de manutenção termina, um novo evento informativo aparece nos registros de auditoria com valores parecidos com estes:

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

A seguir