모든 용량 모드의 TPU로 유지보수 이벤트 관리
모든 TPU 호스트에서 정기 유지보수가 수행됩니다. TPU 모든 용량 모드에서 예정된 유지보수 이벤트를 계획하고 원하는 시점에 모든 용량에서 유지보수 작업을 시작할 수 있습니다. 사용된 용량과 사용되지 않은 용량을 동시에 또는 따로 업데이트할 수 있습니다. VM, 하위 블록, 블록 또는 예약 수준에서 유지보수를 수행할 수도 있습니다. 이 세분화된 유지보수 제어를 사용하면 최적의 유지보수 순서를 만들고 비즈니스 영향을 최소화하도록 유지보수 작업을 예약할 수 있습니다.
TPU 모든 용량 모드는 '그룹화된 유지보수'만 지원합니다. 즉, 예약 내 모든 VM 인스턴스 유지보수 작업이 동시에 예약됩니다. 예약의 모든 TPU VM에는 같은 유지보수 기간이 있습니다. 하지만 유지보수 작업은 호스트, 하위 블록, 블록 또는 예약 수준에서 별도로 수행될 수 있습니다. 유지보수 알림은 약 90일 전에 전송됩니다. 유지보수는 90일에 한 번만 수행됩니다.
GKE에서 TPU Cluster Director를 사용하고 멀티 호스트 TPU 슬라이스 노드 풀을 사용하는 경우 해당 노드 풀의 호스트에 대한 대기 중인 유지보수를 수동으로 시작하기 전에 GKE 노드 풀을 삭제하는 것이 좋습니다. 원래 노드 풀의 모든 호스트에 유지보수가 실행되면 노드 풀을 다시 만들 수 있습니다.
다음은 TPU 호스트 유지보수 이벤트의 타임라인 예시입니다.
- 유지보수가 예약되어 있습니다. 호스트가 90일 이내에 업데이트된다는 알림이 전송됩니다.
- 90일 후에는 호스트를 수동으로 업데이트할 수 있습니다.
- 90일이 지나면 유지보수 작업이 예외 없이 실행됩니다.
- 이전 이벤트가 실행되기 전에 다른 유지보수 이벤트가 예약된 경우 두 번째 작업은 초기 유지보수 이벤트 실행 예약 후 90일이 지난 180일 후에 실행되도록 예약됩니다.
물리적 용량에 대한 유지보수 알림 설정
Compute Engine은 정기, 시작 또는 완료된 유지보수에 대한 Cloud Logging 이벤트를 전송합니다. 이러한 유지보수 이벤트는 로그에 유지되므로 로그 쿼리를 빌드하여 용량 유지보수 기록을 볼 수 있습니다. 로그 기반 알림 정책을 만들어 예약, 블록 또는 하위 블록의 향후 유지보수 이벤트에 대한 알림을 받을 수도 있습니다.
물리적 용량에 대한 유지보수 이벤트 알림을 만들려면 다음 안내를 따르세요.
- Google Cloud 콘솔에서 로그 탐색기로 이동합니다.
- 쿼리 표시가 사용 설정되어 있는지 확인합니다.
- 쿼리 창에서 다음 섹션에 나열된 형식으로 쿼리를 빌드합니다. 그에 따라 해당 파라미터 자리표시자를 바꾸고 쿼리를 실행합니다.
- 반환된 결과가 원하는 결과와 일치하는지 확인한 후 쿼리 결과 툴바의 작업 드롭다운에서 로그 알림 만들기를 선택하고 요청된 정보를 제공하여 알림을 만들 수 있습니다.
예정된 유지보수 쿼리
다음은 예정된 유지보수를 쿼리하는 쿼리 예시입니다.
protoPayload.methodName="compute.CAPACITY_COMPONENT.upcomingGroupMaintenance" severity>=DEFAULT protoPayload.resourceName="projects/shared-reservation-project/reservations/RESOURCE_NAME" protoPayload.status.message =~ "scheduled"
CAPACITY_COMPONENT 및 RESOURCE_NAME을 다음 값으로 바꿉니다.
| 다음에 대한 예정된 유지보수 알림 수신 | CAPACITY_COMPONENT |
RESOURCE_NAME |
|---|---|---|
| 모든 예약 | reservations |
RESOURCE_NAME 생략 |
| 특정 예약 | reservations |
YOUR_RESERVATION_NAME |
| 모든 예약에서 차단 | reservations.blocks |
RESOURCE_NAME 생략 |
| 특정 블록 | reservations.blocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID |
| 모든 예약의 하위 블록 | reservations.blocks.subblocks |
RESOURCE_NAME 생략 |
| 특정 하위 블록 | reservations.blocks.subblocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID |
유지보수 기간 시작 쿼리
protoPayload.methodName="compute.reservations.CAPACITY_COMPONENT.startGroupMaintenance" severity>=DEFAULT protoPayload.status.message =~ "started"
CAPACITY_COMPONENT를 다음 값 중 하나로 바꿉니다.
| 유지보수 기간 시작 알림 수신 | CAPACITY_COMPONENT |
|---|---|
| 예약의 블록 | reservations.blocks |
| 예약의 하위 블록 | reservations.blocks.subblocks |
완료된 유지보수 쿼리
다음은 완료된 유지보수를 쿼리하는 쿼리 예시입니다.
protoPayload.methodName="compute.reservations.CAPACITY_COMPONENT.completedGroupMaintenance" severity>=DEFAULT protoPayload.resourceName="projects/YOUR_RESERVATION_PROJECT/reservations/RESOURCE" protoPayload.status.message =~ "completed"
CAPACITY_COMPONENT 및 RESOURCE_NAME을 다음 값으로 바꿉니다.
| 완료된 유지보수 알림 수신 | CAPACITY_COMPONENT |
RESOURCE_NAME |
|---|---|---|
| 모든 예약 | reservations |
RESOURCE_NAME 생략 |
| 특정 예약 | reservations |
YOUR_RESERVATION_NAME |
| 모든 예약에서 차단 | reservations.blocks |
RESOURCE_NAME 생략 |
| 특정 블록 | reservations.blocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID |
| 모든 예약의 하위 블록 | reservations.blocks.subblocks |
RESOURCE_NAME 생략 |
| 특정 하위 블록 | reservations.blocks.subblocks |
YOUR_RESERVATION_NAME/reservationBlocks/YOUR_RESERVATION_BLOCK_ID/reservationSubBlocks/YOUR_RESERVATION_SUBBLOCK_ID |
물리적 용량 유지보수 상태 보기
Cloud Logging, API, CLI를 통해 용량 유지보수 상태를 확인할 수 있습니다. 유지보수 상태 정보는 예약, 블록, 하위 블록, 호스트 등 네 가지 수준으로 제공됩니다.
Cloud Logging
다음 예시 JSON은 이 예시 쿼리에 대한 응답으로 생성되었습니다.
{
"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
출력은 다음과 비슷합니다.
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'
출력의 다음 값은 유지보수 정보를 설명합니다.
reservationMaintenance.instanceMaintenanceOngoingCount: 업데이트되는 사용된 호스트 수reservationMaintenance.instanceMaintenancePendingCount: 유지보수가 대기 중인 사용된 호스트 수reservationMaintenance.maintenanceOngoingCount: 업데이트되는 미사용 호스트 수reservationMaintenance.maintenancePendingCount: 유지보수가 대기 중인 미사용 호스트 수reservationMaintenance.upcomingGroupMaintenance.maintenanceReasons: 유지보수 유형reservationMaintenance.upcomingGroupMaintenance.maintenanceStatus: 유지보수 작업 상태reservationMaintenance.upcomingGroupMaintenance.type: 유지보수 유형(계획된 유지보수의 경우SCHEDULED, 계획되지 않은 유지보수 또는 긴급 유지보수의 경우UNSCHEDULED)reservationMaintenance.upcomingGroupMaintenance.windowEndTime: 정기 유지보수 작업 기간 종료 시간reservationMaintenance.upcomingGroupMaintenance.windowStartTime: 정기 유지보수 작업 기간 시작 시간
TPU VM 유지보수 알림 설정
TPU VM 유지보수 이벤트 알림을 만들 수 있습니다.
- Google Cloud 콘솔에서 로그 탐색기로 이동합니다.
- 쿼리 표시 전환 버튼을 '사용'으로 설정합니다.
- 쿼리 창에서 다음 섹션에 나열된 형식으로 쿼리를 빌드합니다.
- 반환된 결과가 원하는 결과와 일치하는지 확인한 후 작업 드롭다운을 클릭하고 로그 알림 만들기를 선택한 후 로그 기반 알림 정책 만들기 창에서 정보를 작성하여 알림을 만들 수 있습니다.
VM 인스턴스 유지보수가 예약된 시점 쿼리
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
protoPayload.status.message =~ "scheduled"
VM 인스턴스 유지보수 기간이 시작된 시점 쿼리
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
protoPayload.status.message =~ "ongoing"
시작된 VM 인스턴스 유지보수 쿼리
protoPayload.methodName="compute.instances.blocks.terminateOnHostMaintenance" severity>=DEFAULT
VM 인스턴스 유지보수가 완료된 시점 쿼리
protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
protoPayload.status.message =~ "completed"
Cloud TPU VM 유지보수 상태 보기
Compute Engine 인스턴스 API 또는 게스트 운영체제 내에서 curl 명령어를 사용하여 Cloud TPU VM 유지보수 상태를 가져올 수 있습니다.
인스턴스 설명
gcloud
gcloud compute instances describe <var>INSTANCE</var> --zone <var>ZONE</var>
이 명령어는 다음과 같은 출력을 반환합니다.
…
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"
이 명령어는 다음과 같은 출력을 반환합니다.
{
"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"
}
Cloud Logging에서도 유지보수 알림을 확인할 수 있습니다.
다음은 대기 중인 계획된 유지보수의 로그 메시지 예시입니다. 쿼리 예시는 물리적 용량 유지보수 상태 보기를 참조하세요.
{
"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
},
}
다음 예시는 진행 중인 계획되지 않은 유지보수의 로그 메시지입니다. 쿼리 예시는 유지보수 기간 시작 시점 쿼리를 참조하세요.
{
"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
},
}
다음은 완료된 유지보수의 로그 메시지 예시입니다. 쿼리 예시는 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
},
}
대기 중인 물리적 용량 유지보수 수동 시작
유지보수 이벤트가 예약되면(maintenanceStatus가 PENDING으로 설정됨) canReschedule 속성이 True로 설정된 예약, 블록 또는 하위 블록의 유지보수를 수동으로 시작할 수 있습니다. 대기 중인 유지보수 이벤트를 수동으로 시작하면 예약, 블록 또는 하위 블록의 유지보수 상태에 따라 결과가 달라집니다. 다음 표에서는 각 상태에 대한 결과를 설명합니다.
| 유지보수 상태 | 설명 | 결과 |
|---|---|---|
| 예약됨 | Compute Engine에서 정기 유지보수를 예약했습니다. 예약된 시간 전에 유지보수를 수동으로 시작할 수 있습니다. | Google Cloud CLI 또는 REST API에서 maintenanceStatus 필드가 PENDING으로 설정됩니다. |
| 진행 중 | 유지보수가 진행 중입니다. 일정을 변경할 수 없습니다. | Google Cloud CLI 또는 REST API에서 maintenanceStatus 필드가 ONGOING으로 설정됩니다. |
| 완료 | 유지보수가 완료되었습니다. Compute Engine에서 VM의 모든 유지보수 알림을 삭제했습니다. | Google Cloud CLI 또는 REST API에는 maintenanceStatus 필드가 없습니다. |
전체 예약에서 유지보수 수동 시작
다음 명령어는 예약 유지보수를 시작합니다. --scope 파라미터를 사용하여 유지보수 작업 범위를 지정하는 다음 값 중 하나를 지정합니다.
- 모든 호스트:
--scope=all - 실행 중인 VM이 있는 호스트:
--scope=running - 사용하지 않거나 중지되었거나 일시중지된 VM:
--scope=unused
모든 예약 블록에서 유지보수를 시작하려면 다음 명령어를 실행합니다.
gcloud compute reservations perform-maintenance YOUR_RESERVATION \ --zone=YOUR_ZONE \ --scope=all
유지보수 이벤트 진행 상황을 확인하려면 다음 명령어를 실행합니다.
gcloud compute reservations describe YOUR_RESERVATION \ --project=YOUR_PROJECT \ --zone=YOUR_ZONE
출력은 다음과 비슷합니다.
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.
블록에서 유지보수 수동 시작
다음 명령어는 블록에서 유지보수를 시작합니다. --scope 파라미터를 사용하여 유지보수 작업 범위를 지정하는 다음 값 중 하나를 지정합니다.
- 모든 호스트:
--scope=all - 실행 중인 VM이 있는 호스트:
--scope=running - 사용하지 않거나 중지되었거나 일시중지된 VM:
--scope=unused
다음 명령어는 실행 중인 호스트에서 유지보수를 시작하는 방법을 보여줍니다.
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
출력은 다음과 비슷합니다.
ResourceStatus
upcomingGroupMaintenance:
"maintenanceType":"SCHEDULED"
…
"maintenanceGroupStatus":"PENDING" → "ONGOING"
"maintenancePending":0
"maintenanceOngoing":70 → 0
하위 블록에서 유지보수 수동 시작
하위 블록에서 유지보수를 시작할 때는 하위 블록이 가장 작은 유지보수 범위이므로 --scope 파라미터를 지정하지 않습니다.
다음 명령어는 블록의 모든 호스트에서 유지보수를 시작합니다.
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
다음 명령어는 유지보수 진행 상황을 확인합니다.
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
출력은 다음과 비슷합니다.
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
대기 중인 TPU VM 유지보수 수동 시작
호스트에서 VM 두 개 이상이 실행되는 경우 한 VM에서 유지보수를 시작하면 호스트의 모든 VM이 유지보수됩니다.
다음 예시에서는 VM이 두 개 있는 Trillium 호스트의 유지보수를 수동으로 트리거하는 방법을 보여줍니다.
gcloud compute instances perform-maintenance vm-1
vm-1 유지보수를 시작하면 vm-2 유지보수가 트리거됩니다.