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:
- Se programó el mantenimiento. Se te enviará una notificación para informarte que el host se actualizará en un plazo de 90 días.
- Puedes elegir actualizar el host de forma manual en un plazo de 90 días.
- Después de 90 días, la operación de mantenimiento se ejecuta sin excepción.
- 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:
- En la consola de Google Cloud , accede a la página Explorador de registros.
- Asegúrate de que la opción Mostrar consulta esté activada.
- 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.
- 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 (SCHEDULEDpara mantenimiento planificado oUNSCHEDULEDpara 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:
- En la consola de Google Cloud , accede a la página Explorador de registros:
- Establece el botón de activación Mostrar consulta en la posición "activado".
- En el panel de consultas, crea una consulta con el formato que se indica en las siguientes secciones.
- 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
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.