Administra eventos de mantenimiento con TPU en el modo All Capacity

Todos los hosts de TPU se someten a mantenimiento habitual. Con el modo All Capacity de TPU, puedes planificar los próximos eventos de mantenimiento. Además, puedes iniciar las operaciones de mantenimiento cuando lo desees en toda tu capacidad. Puedes actualizar la capacidad que usas y la que no usas, de forma simultánea o por separado. También puedes realizar el mantenimiento a nivel de la VM, el subbloque, el bloque o la reserva. Este control de mantenimiento detallado te permite crear una secuencia de mantenimiento óptima y programar operaciones de mantenimiento para minimizar el impacto en la empresa.

El modo All Capacity de TPU solo admite el "mantenimiento agrupado", lo que significa que las operaciones de mantenimiento para todas las instancias de VM de una reserva se programan al mismo tiempo. Todas las VMs de TPU de una reserva tienen el mismo período de mantenimiento. Sin embargo, estas operaciones se pueden llevar a cabo por separado a nivel del host, el subbloque, el bloque o la reserva. Las notificaciones de mantenimiento se envían con aproximadamente 90 días de anticipación. No se realizarán con una frecuencia mayor que una vez cada 90 días.

Si usas TPU Cluster Director en GKE y grupos de nodos de porción de TPU de varios hosts, te recomendamos que borres el grupo de nodos de GKE antes de iniciar de forma manual el mantenimiento pendiente para cualquier host de ese grupo de nodos. Una vez que se haya ejecutado el mantenimiento para todos los hosts del grupo de nodos original, puedes volver a crear el grupo de nodos.

A continuación, se muestra un ejemplo de la cronología de un evento de mantenimiento del host de TPU:

  1. Se programó el mantenimiento. Se te enviará una notificación para informarte que el host se actualizará en un plazo de 90 días.
  2. Puedes elegir actualizar el host de forma manual en un plazo de 90 días.
  3. Después de 90 días, la operación de mantenimiento se ejecuta sin excepción.
  4. Si se programa otro evento de mantenimiento antes de que se ejecute el anterior, la segunda operación se programará para ejecutarse después de 180 días, es decir, 90 días después de que se programe el evento de mantenimiento inicial.

Configura alertas de notificación de mantenimiento para la capacidad física

Compute Engine te envía eventos de Cloud Logging para el mantenimiento programado, iniciado o completado. Estos eventos de mantenimiento permanecen en tus registros para que puedas crear consultas de registros y obtener una vista histórica del mantenimiento de tu capacidad. También puedes recibir notificaciones sobre futuros eventos de mantenimiento de una reserva, un bloque o un subbloque. Para ello, crea políticas de alertas basadas en registros.

Sigue estos pasos para crear una alerta sobre los eventos de mantenimiento de tu capacidad física:

  1. En la consola de Google Cloud , accede a la página Explorador de registros.
  2. Asegúrate de que la opción Mostrar consulta esté activada.
  3. En el panel de consultas, crea una consulta con el formato que se indica en las siguientes secciones. Reemplaza el marcador de posición del parámetro correspondiente y ejecuta la consulta.
  4. Una vez que verifiques que los resultados que se devuelven coinciden con lo que deseas, podrás crear alertas. Para ello, selecciona Crear una alerta de registro en el menú desplegable Acciones de la barra de herramientas Resultados de la consulta y proporciona la información solicitada.

Consulta sobre el próximo mantenimiento

A continuación, se muestra un ejemplo para consultar sobre el próximo mantenimiento:

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

Reemplaza CAPACITY_COMPONENT y RESOURCE_NAME por los siguientes valores:

Recibe notificaciones sobre el próximo mantenimiento de CAPACITY_COMPONENT RESOURCE_NAME
Todas las reservas reservations Omite RESOURCE_NAME
Una reserva específica reservations YOUR_RESERVATION_NAME
Bloques en todas las reservas reservations.blocks Omite RESOURCE_NAME
Un bloque específico reservations.blocks YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID
Subbloques en todas las reservas reservations.blocks.subblocks Omite RESOURCE_NAME
Un subbloque específico reservations.blocks.subblocks YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID

Consulta para la apertura del período de mantenimiento

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

Reemplaza CAPACITY_COMPONENT por uno de los siguientes valores:

Recibe notificaciones sobre la apertura de un período de mantenimiento para CAPACITY_COMPONENT
Bloques en una reserva reservations.blocks
Subbloques en una reserva reservations.blocks.subblocks

Consulta sobre el mantenimiento completado

A continuación, se muestra un ejemplo para consultar sobre el mantenimiento completado:

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

Reemplaza CAPACITY_COMPONENT y RESOURCE_NAME por los siguientes valores:

Recibe notificaciones sobre el mantenimiento completado de CAPACITY_COMPONENT RESOURCE_NAME
Todas las reservas reservations Omite RESOURCE_NAME
Una reserva específica reservations YOUR_RESERVATION_NAME
Bloques en todas las reservas reservations.blocks Omite RESOURCE_NAME
Un bloque específico reservations.blocks YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID
Subbloques en todas las reservas reservations.blocks.subblocks Omite RESOURCE_NAME
Un subbloque específico reservations.blocks.subblocks YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID

Consulta el estado de mantenimiento de la capacidad física

Puedes consultar el estado de mantenimiento de tu capacidad con Cloud Logging, las APIs y la CLI. La información sobre el estado de mantenimiento se proporciona en cuatro niveles: reserva, bloque, subbloque y host.

Cloud Logging

El siguiente ejemplo de JSON se generó en respuesta a esta consulta de ejemplo:

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

El resultado es similar a lo siguiente:

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'

Los siguientes valores del resultado describen la información de mantenimiento:

  • reservationMaintenance.instanceMaintenanceOngoingCount: Es la cantidad de hosts usados que se actualizan.
  • reservationMaintenance.instanceMaintenancePendingCount: Es la cantidad de hosts en uso que están pendientes de mantenimiento.
  • reservationMaintenance.maintenanceOngoingCount: Es la cantidad de hosts sin usar que se actualizan.
  • reservationMaintenance.maintenancePendingCount: Es la cantidad de hosts sin usar que están pendientes de mantenimiento.
  • reservationMaintenance.upcomingGroupMaintenance.maintenanceReasons: Es el tipo de mantenimiento.
  • reservationMaintenance.upcomingGroupMaintenance.maintenanceStatus: Es el estado de la operación de mantenimiento.
  • reservationMaintenance.upcomingGroupMaintenance.type: Es el tipo de mantenimiento (SCHEDULED para mantenimiento planificado o UNSCHEDULED para mantenimiento no planificado o de emergencia).
  • reservationMaintenance.upcomingGroupMaintenance.windowEndTime: Es el final programado del período para la operación de mantenimiento.
  • reservationMaintenance.upcomingGroupMaintenance.windowStartTime: Es el inicio programado del período para la operación de mantenimiento.

Configura alertas de notificación de mantenimiento para VMs de TPU

Puedes crear alertas para los eventos de mantenimiento en tus VMs de TPU:

  1. En la consola de Google Cloud , accede a la página Explorador de registros:
  2. Establece el botón de activación Mostrar consulta en la posición "activado".
  3. En el panel de consultas, crea una consulta con el formato que se indica en las siguientes secciones.
  4. Una vez que verifiques que los resultados que se devuelven coinciden con lo que deseas, podrás crear una alerta. Para ello, haz clic en el menú desplegable Acciones, selecciona Crear una alerta de registro y completa la información del panel Crear política de alertas basadas en registros.

Consulta cuándo se programó el mantenimiento de una instancia de VM

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

Consulta cuándo se abrió el período de mantenimiento para una instancia de VM

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

Consulta cuándo se inició el mantenimiento de las instancias de VM

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

Consulta cuándo se completó el mantenimiento de una instancia de VM

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

Consulta el estado de mantenimiento de una VM de Cloud TPU

Puedes recuperar el estado de mantenimiento de una VM de Cloud TPU con la API de instancias de Compute Engine o con un comando curl desde el sistema operativo invitado.

Describe una instancia

gcloud

gcloud compute instances describe <var>INSTANCE</var> --zone <var>ZONE</var>

Este comando devuelve un resultado como el siguiente:

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

Este comando devuelve un resultado como el siguiente:

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

También puedes encontrar notificaciones de mantenimiento en Cloud Logging.

A continuación, se muestra un ejemplo de un mensaje de registro de un mantenimiento planificado pendiente. Para ver un ejemplo de consulta, visita Consulta el estado de mantenimiento de la capacidad 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
  },
}

El siguiente ejemplo es un mensaje de registro de un mantenimiento no planificado en curso. Si deseas ver un ejemplo de consulta, visita Consulta cuándo está abierto un período de mantenimiento.

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

El siguiente ejemplo es un mensaje de registro para el mantenimiento completado. Para ver un ejemplo de consulta, visita Consulta cuándo se completó el mantenimiento de una instancia de 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
  },
}

Inicia el mantenimiento pendiente de la capacidad física de forma manual

Una vez que se programa un evento de mantenimiento (maintenanceStatus se establece en PENDING), puedes iniciar de forma manual el mantenimiento de tus reservas, bloques o subbloques que tengan la propiedad canReschedule establecida en True. Cuando inicias de forma manual un evento de mantenimiento pendiente, lo que sucede depende del estado de mantenimiento de tu reserva, bloques o subbloques. En la siguiente tabla, se describe lo que sucede en cada caso:

Estado de mantenimiento Descripción Lo que se muestra
Programado Compute Engine tiene un mantenimiento programado para la reserva. Puedes iniciar el mantenimiento de forma manual antes de la hora programada. En Google Cloud CLI o la API de REST, el campo maintenanceStatus se establece en PENDING.
En curso El mantenimiento está en curso. No puedes reprogramarlo. En Google Cloud CLI o la API de REST, el campo maintenanceStatus se establece en ONGOING.
Completo Se completó el mantenimiento. Compute Engine quitó todas las notificaciones de mantenimiento de la VM. En Google Cloud CLI o la API de REST, no existe el campo maintenanceStatus.

Inicia el mantenimiento de toda la reserva de forma manual

El siguiente comando inicia el mantenimiento de una reserva. Usa el parámetro --scope para especificar uno de los siguientes valores que indican el alcance de la operación de mantenimiento:

  • Todos los hosts: --scope=all
  • Hosts con VMs en ejecución: --scope=running
  • VMs sin usar, detenidas o suspendidas: --scope=unused

Para iniciar el mantenimiento en todos los bloques de una reserva, ejecuta el siguiente comando:

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

Para comprobar el progreso de un evento de mantenimiento, ejecuta el siguiente comando:

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

El resultado es similar a lo siguiente:

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.

Inicia el mantenimiento de un bloque de forma manual

El siguiente comando inicia el mantenimiento en un bloque. Usa el parámetro --scope para especificar uno de los siguientes valores que indican el alcance de la operación de mantenimiento:

  • Todos los hosts: --scope=all
  • Hosts con VMs en ejecución: --scope=running
  • VMs sin usar, detenidas o suspendidas: --scope=unused

En el siguiente comando, se muestra cómo iniciar el mantenimiento en los hosts en ejecución:

gcloud compute reservations perform-maintenance YOUR_RESERVATION
    --scope=RUNNING \
    --project=YOUR_PROJECT \
    --zone=YOUR_ZONE
En el siguiente comando, se muestra cómo comprobar el progreso del mantenimiento de un bloque:
gcloud compute reservations blocks describe YOUR_RESERVATION --block-name=YOUR_BLOCK_NAME  \
 --project=YOUR_PROJECT \
  --zone=YOUR_ZONE

El resultado es similar a lo siguiente:

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

Inicia el mantenimiento en un subbloque de forma manual

Cuando inicias el mantenimiento en un subbloque, no especificas el parámetro --scope porque un subbloque es el alcance de mantenimiento más pequeño.

El siguiente comando inicia el mantenimiento en todos los hosts de un bloque:

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

El siguiente comando comprueba el progreso del mantenimiento:

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

El resultado es similar a lo siguiente:

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

Inicia de forma manual el mantenimiento pendiente de una VM de TPU

Si un host ejecuta más de una VM, iniciar el mantenimiento en solo una activa el mantenimiento de todas las VMs del host.

En el siguiente ejemplo, se muestra cómo activar de forma manual el mantenimiento de un host de Trillium que tiene dos VMs:

gcloud compute instances perform-maintenance vm-1

El inicio del mantenimiento de vm-1 activará el mantenimiento de vm-2.