Cómo ver las notificaciones de mantenimiento

Un evento de mantenimiento del host es cuando Google Cloud debe realizar una actividad de mantenimiento o reparación en tu TPU. Google envía notificaciones sobre el próximo mantenimiento del host antes de que se realice. Cuando se abre el período de mantenimiento, Google Cloudrealiza el mantenimiento automáticamente en tu instancia. Si supervisas los próximos períodos de mantenimiento de tu instancia, puedes preparar de forma proactiva tus cargas de trabajo para que manejen el próximo mantenimiento con interrupciones mínimas.

Cloud TPU te permite ver notificaciones de mantenimiento con Google Cloud CLI y consultar el servidor de metadatos. También puedes ver los próximos eventos de mantenimiento en Cloud Logging. Para obtener información sobre cómo ver notificaciones de mantenimiento para TPU en GKE, consulta Administra la interrupción de nodos de GKE para GPUs y TPUs.

Campos de notificación de mantenimiento

Las notificaciones de mantenimiento contienen los siguientes campos:

  • windowStartTime: Es el inicio del período en el que se realizará el mantenimiento.
  • windowEndTime: El final del período en el que se realizará el mantenimiento
  • latestWindowStartTime: Es la hora más reciente a la que se puede mover el período de mantenimiento.
  • maintenanceType: Es el tipo de mantenimiento que se realizará.
    • SCHEDULED: El mantenimiento recibirá un aviso con siete días de anticipación.
    • UNSCHEDULED: El mantenimiento representa las actualizaciones críticas para las que se proporciona menos aviso que para los eventos de mantenimiento programados.
  • canReschedule: Indica si puedes iniciar el mantenimiento de forma manual durante el período de notificación de esta VM.
    • TRUE: Puedes iniciar el mantenimiento de forma manual durante el período de notificación.
    • FALSE: No puedes iniciar el mantenimiento de esta VM de forma manual. Por lo general, esto se observa durante el período en el que la VM se encuentra en mantenimiento activo.
  • maintenanceStatus: Es el estado de la operación de mantenimiento actual.
    • ONGOING: La operación de mantenimiento está en curso
    • PENDING: La operación de mantenimiento aún no se inició, pero está programada.

Si no hay una notificación de mantenimiento, la respuesta es similar a la siguiente:

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

Comportamientos del estado de mantenimiento

Cuando administres eventos de mantenimiento, verifica los valores de canReschedule y maintenanceStatus. Cuando se combinan, estos campos indican qué acciones puedes realizar o no con respecto al inicio manual de un evento de mantenimiento:

  • canReschedule=True y maintenanceStatus=Pending: Puedes iniciar manualmente el evento de mantenimiento de la instancia antes de la hora de inicio programada.
  • canReschedule=False y maintenanceStatus=Ongoing: El mantenimiento está en curso y no se puede reprogramar.
  • canReschedule=False y maintenanceStatus=Pending: Tu instancia no admite eventos de mantenimiento activados de forma manual.

Cómo ver las notificaciones de mantenimiento

Para ver las notificaciones de mantenimiento, haz lo siguiente:

  • Cómo llamar a la API de Cloud TPU con Google Cloud CLI
  • Cómo consultar el servidor de metadatos en tu VM
  • Cómo verificar Cloud Logging

Verifica las TPUs para ver si hay una notificación de mantenimiento

gcloud

Usa el comando gcloud alpha compute tpus tpu-vm describe para ver las notificaciones de mantenimiento:

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

Si hay un evento de mantenimiento próximo, la respuesta contendrá una sección similar a la siguiente:

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"

En esta respuesta, se incluye lo siguiente:

  • El mantenimiento está programado para la fecha y hora que se muestran en windowStartTime.
  • canReschedule se establece en true y maintenanceStatus se establece en PENDING. Esta configuración indica que puedes iniciar manualmente el evento de mantenimiento programado antes de la fecha que se muestra en latestWindowStartTime.

Servidor de metadatos

Desde una VM de TPU, consulta el servidor de metadatos para ver el próximo evento de mantenimiento:

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

Si hay un evento de mantenimiento próximo, la respuesta contendrá una sección similar a la siguiente:

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

Puedes consultar el servidor de metadatos desde cualquier VM de TPU en la porción, ya que la notificación del próximo evento de mantenimiento es la misma para todas las VMs de una porción.

Para obtener más información sobre los metadatos de VM, consulta Acerca de los metadatos de VM en la documentación de Compute Engine.

Revisa Cloud Logging para ver si hay una notificación de mantenimiento

Cuando se programe una notificación en tu Cloud TPU, Cloud Logging contendrá un registro de eventos del sistema para el evento, con methodName:compute.instance.upcomingMaintenance. Para ver los registros de los próximos eventos de mantenimiento, haz lo siguiente:

  1. En el menú de navegación de la consola de Google Cloud, ve a la página Explorador de registros:

    Ir al Explorador de registros

  2. Usa la siguiente consulta de búsqueda para ver las TPUs que tengan programado un próximo evento de mantenimiento:

    "compute.instances.upcomingMaintenance"

    Cloud TPU registra los próximos eventos de mantenimiento en Cloud Logging según la instancia de VM individual, por ejemplo, t1v-n-5bdca789-w-0.

Ejemplos de registros de notificaciones de mantenimiento

Aparecerá una notificación de evento de mantenimiento en el Explorador de registros con valores similares a los siguientes:

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

El siguiente es un ejemplo de una entrada de registro completa para un próximo evento de mantenimiento:

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

Cuando comienza el evento de mantenimiento, aparece un nuevo evento informativo en los registros con valores similares a los siguientes:

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

Cuando finaliza el evento de mantenimiento, aparece un nuevo evento informativo en los registros de auditoría con valores similares a los siguientes:

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

¿Qué sigue?