H4D VM 전반에서 호스트 이벤트 관리

이 문서에서는 H4D VM에서 사용할 수 있는 호스트 유지관리 기능을 사용하는 방법을 설명합니다. 가상 머신 (VM) 인스턴스의 예약된 유지보수를 모니터링하고, 계획하고, 실행하는 방법을 설명합니다. VM이 실행 중인지 여부와 관계없이 예약된 용량 블록의 유지보수를 관리하려면 예약 전반에서 호스트 이벤트 관리를 참고하세요.

VM에서 예정된 유지보수 호스트 이벤트를 선제적으로 관리하면 중단을 최소화하고 최적의 성능을 유지할 수 있습니다.

시작하기 전에

Select the tab for how you plan to use the samples on this page:

Console

When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

gcloud

In the Google Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

REST

로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

    Google Cloud CLI를 설치합니다. 설치 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.

    gcloud init

    외부 ID 프로바이더(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참조하세요.

필요한 역할

VM 전반에서 호스트 유지관리 이벤트를 관리하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 프로젝트에 대한 Compute 관리자(roles/compute.admin)
  • 시스템 이벤트 감사 로그에 대한 읽기 전용 액세스의 경우: 프로젝트에 대한 로그 뷰어 (roles/logging.viewer)

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 VM 전반에서 호스트 유지보수 이벤트를 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

VM 전반에서 호스트 유지보수 이벤트를 관리하려면 다음 권한이 필요합니다.

  • VM 세부정보 보기: 프로젝트에 대한 compute.instances.get 권한

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

개요

VM 유지보수를 최적화하려면 다음 단계를 완료하세요.

  1. 호스트 유지보수 이해하기 머신 시리즈에 따라 VM의 빈도 및 유지보수 동작을 알아봅니다. 이 정보는 워크로드 중단을 최소화하는 데 도움이 됩니다.

  2. 알림 설정 VM 유지보수가 예약, 시작 또는 완료될 때 알림을 받도록 로그 기반 알림을 만듭니다. 이 방법을 사용하면 활동을 사전 대응적으로 계획하고 예기치 않은 다운타임을 방지할 수 있습니다.

  3. VM 전반에서 유지보수 관리 VM에 유지보수가 예약되어 있는지 확인합니다. 필요한 경우 VM에서 유지보수를 수동으로 시작할 수 있습니다. 이 프로세스를 통해 호스트 이벤트에 대한 워크로드의 복원력을 높이고, 다운타임을 방지하고, 애플리케이션의 가용성을 극대화할 수 있습니다.

호스트 유지보수 이해하기

Compute Engine 인스턴스 수명 주기 동안 인스턴스가 실행되는 호스트 머신에서 여러 호스트 이벤트가 발생합니다. 호스트 이벤트에는 Compute Engine 인프라 정기 유지보수 또는 드물게 호스트 오류가 포함될 수 있습니다. 또한 Compute Engine은 백그라운드에서 하이퍼바이저와 네트워크에 중단 없는 경량 업그레이드를 적용합니다.

H4D 머신 시리즈는 호스트 유지보수와 관련된 다음 기능을 제공합니다.

머신 유형 예정된 일반 유지보수 이벤트 빈도 유지관리 동작 고급 알림 주문형 유지보수 유지보수 시뮬레이션
h4d-standard-192 최소 30일 종료 7일 아니요
h4d-highmem-192 최소 30일 종료 7일 아니요
h4d-highmem-192-lssd 최소 30일 로컬 SSD 데이터 지속성으로 종료 7일 아니요

이전 표에 표시된 유지보수 빈도는 대략적인 수치이며 보장되지 않습니다. Compute Engine에서 유지보수를 더 자주 수행할 수도 있습니다.

VM 알림 설정

로그 기반 알림 정책을 만들어 VM의 예약된, 시작된, 완료된 유지보수 이벤트에 대한 알림을 받을 수 있습니다.

VM의 유지보수 이벤트에 대한 알림을 만들려면 다음 절차를 완료하세요. 만들려는 각 알림에 대해 이 절차를 반복합니다.

  1. Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.

    로그 탐색기로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

  2. 쿼리 표시 전환 버튼을 클릭하여 사용 설정으로 전환합니다.

  3. 쿼리 창에서 다음 쿼리 중 하나를 빌드합니다. 이러한 쿼리는 로그 항목을 필터링하여 특정 유지보수 이벤트를 식별합니다. 여러 쿼리를 사용하려면 이 절차를 반복하여 각 쿼리에 대해 고유한 알림을 만드세요.

    • 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.instance.terminateOnHostMaintenance" severity>=DEFAULT
      
    • VM 유지보수가 완료되면 알림을 받으려면 다음 단계를 따르세요.

      protoPayload.methodName="compute.instances.upcomingMaintenance" severity>=DEFAULT
      protoPayload.status.message =~ "completed"
      
  4. 쿼리를 검사하려면 쿼리 실행을 클릭합니다. 쿼리가 유효하면 쿼리 결과 창에 쿼리와 일치하는 로그 항목이 표시됩니다.

  5. 쿼리 결과 툴바에서 작업 목록을 클릭한 후 로그 알림 만들기를 선택합니다. 로그 기반 알림 정책 만들기 창이 표시됩니다.

  6. 알림 세부정보 섹션에서 다음을 수행합니다.

    1. 알림 정책 이름 필드에 정책 이름을 입력합니다.

    2. 정책 심각도 수준 목록에서 경고 (또는 그 이상의 심각도)를 선택합니다.

    3. 다음을 클릭합니다.

  7. 알림에 포함할 로그 선택 섹션에서 다음을 클릭합니다.

  8. 알림 빈도 및 자동 종료 기간 설정 섹션에서 다음을 지정합니다.

    1. 알림 간 시간 목록에서 알림을 받을 빈도를 선택합니다.

    2. 사고 자동 종료 기간 목록에서 Cloud Logging이 알림 전송을 중지하고 사고를 자동으로 종료하는 기간을 선택합니다.

    3. 다음을 클릭합니다.

  9. 알림 수신 대상 섹션에서 로깅이 알림을 보낼 알림 채널을 지정합니다.

  10. 저장을 클릭합니다.

로그 탐색기에서 유지보수 이벤트 알림의 예를 보려면 Compute Engine 문서의 유지보수 알림 예시를 참고하세요.

VM 전반에서 유지보수 관리

다음 중 하나 이상을 수행하여 VM의 유지보수를 확인하고 제어할 수 있습니다.

VM의 유지보수 상태 보기

인스턴스의 메타데이터에서 upcomingMaintenance 필드의 값을 확인하여 VM의 상태와 예정된 유지보수 시간을 확인할 수 있습니다. VM에 upcomingMaintenance 필드가 포함되어 있지 않으면 VM에 예약된 호스트 유지보수 이벤트가 없습니다. upcomingMaintenance의 필드에 대한 자세한 내용은 Compute Engine 문서의 유지보수 상태 정의를 참고하세요.

또한 VM에 유지보수가 예약된 경우 upcomingGroupMaintenance 필드에 maintenanceReasons 필드가 포함됩니다. 이 필드는 다음 표에 설명된 대로 VM의 유지보수가 예약된 이유를 설명합니다.

유지보수 유형 유지보수 이유 VM 상태
정기 유지보수를 위한 계획된 유지보수
  • PLANNED_UPDATE: 예정된 인프라 유지관리
  • PLANNED_NETWORK_UPDATE: 계획된 네트워크 유지관리
실행 중, 중지됨 또는 일시중지된 VM에 적용됩니다.
예정되지 않은 긴급 유지관리
  • FAILURE_DISK: VM에 연결된 디스크의 오류로 인해 예정된 계획되지 않은 유지보수입니다.
  • FAILURE_INFRA: 인프라 오류로 인해 예정되지 않은 유지보수가 예약되었습니다.
  • FAILURE_INTERFACE: NIC 오류로 인해 예정되지 않은 유지보수가 예약되었습니다.
  • FAILURE_MEMORY: VM 메모리 오류로 인해 예정된 계획되지 않은 유지보수입니다.
  • FAILURE_NETWORK: 네트워크 오류로 인해 예정되지 않은 유지보수가 예약되었습니다.
실행 중인 VM에만 적용됩니다.

VM에서 maintenanceReasons 필드를 보려면 gcloud CLI 또는 REST API를 사용해야 합니다. 여러 VM의 유지보수 상태를 동시에 보려면 Google Cloud 콘솔 또는 REST API를 사용해야 합니다. 그렇지 않으면 다음 옵션 중 하나를 선택합니다.

콘솔

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 유지보수 상태 열에 VM의 유지보수 상태가 표시됩니다. VM 인스턴스 표에 이 열이 표시되지 않으면 view_column 열 표시 옵션을 클릭하고 유지보수 상태 체크박스를 선택한 후 확인을 클릭합니다.

gcloud

VM의 유지보수 상태를 보려면 --flatten=resourceStatus.upcomingMaintenance 플래그와 함께 gcloud compute instances describe 명령어를 사용합니다.

gcloud compute instances describe VM_NAME \
    --flatten=resourceStatus.upcomingMaintenance \
    --zone=ZONE

다음을 바꿉니다.

  • VM_NAME: VM 이름입니다.

  • ZONE: VM이 있는 영역입니다.

출력은 다음 중 하나와 비슷합니다.

  • VM에 호스트 유지보수 이벤트가 예약된 경우 출력은 다음과 유사합니다.

    ---
    canReschedule: true
    latestWindowStartTime: '2025-11-01T19:00:00Z'
    maintenanceReasons:
    - 'PLANNED_UPDATE'
    - 'PLANNED_NETWORK_UPDATE'
    maintenanceStatus: 'PENDING'
    type: 'SCHEDULED'
    windowEndTime: '2025-11-01T22:00:00Z'
    windowStartTime: '2025-11-01T19:00:00Z'
    
  • VM에 호스트 유지보수 이벤트가 예약되어 있지 않으면 출력은 다음과 비슷합니다.

    ---
    null
    

REST

VM의 유지보수 상태를 보려면 다음 GET 요청 중 하나를 실행하세요. 요청을 할 때는 VM의 이름, 머신 유형, 예정된 유지보수만 표시하도록 fields 쿼리 매개변수를 포함해야 합니다. 특정 머신 유형으로만 VM을 필터링하려면 filter 쿼리 매개변수도 포함해야 합니다.

  • 모든 영역의 VM을 보려면 instances.aggregatedList 메서드를 사용합니다.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    
  • 특정 영역의 VM을 보려면 instances.list 메서드를 사용합니다.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.upcomingMaintenance&filter=machineType%3AMACHINE_TYPE
    

다음을 바꿉니다.

  • PROJECT_ID: VM을 만든 프로젝트의 ID입니다.

  • ZONE: VM이 있는 영역입니다.

  • MACHINE_TYPE: VM을 필터링할 머신 유형입니다.

VM에 호스트 유지보수 이벤트가 예정된 경우 VM에는 upcomingMaintenance 필드가 포함됩니다.

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west4-b/machineTypes/h4d-highmem-192-lssd",
      "resourceStatus": {
        "upcomingMaintenance": {
          "canReschedule": true,
          "latestWindowStartTime": "2024-11-01T19:00:00Z",
          "maintenanceStatus": "PENDING",
          "maintenanceReasons": [
            "PLANNED_UPDATE",
            "PLANNED_NETWORK_UPDATE"
          ],
          "type": "SCHEDULED",
          "windowEndTime": "2024-11-01T22:00:00Z",
          "windowStartTime": "2024-11-01T19:00:00Z"
        }
      }
    },
    ...
  ]
}

원하는 경우 VM 목록의 범위를 더 좁히려면 filter 쿼리 매개변수를 다른 필터 표현식으로 설정합니다.

메타데이터 서버

VM의 유지보수 상태를 보려면 다음을 수행합니다.

  1. 아직 연결하지 않았다면 Linux 또는 Windows VM에 연결합니다.

  2. 다음과 같이 메타데이터 서버를 쿼리합니다.

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

    VM에 호스트 유지보수 이벤트가 예약된 경우 출력은 다음과 유사합니다.

    "Upcoming maintenance": {
      "can_reschedule": "true",
      "latest_window_start_time": "2024-12-01T19:00:01Z",
      "maintenance_reasons": [
        "PLANNED_UPDATE",
        "PLANNED_NETWORK_UPDATE"
      ],
      "maintenance_status": "PENDING",
      "type": "SCHEDULED",
      "window_end_time": "2024-12-01T21:00:01Z",
      "window_start_time": "2024-12-01T19:00:01Z"
    }
    

    호스트 유지보수 이벤트가 예약되어 있지 않으면 출력은 다음과 비슷합니다.

    { }
    

VM에서 유지보수 수동으로 시작

예약된 시간을 기다리지 않고 VM의 유지보수를 수동으로 시작할 수 있습니다.

VM의 유지보수 상태에 따라 다음이 발생합니다.

유지보수 상태 설명 표시되는 내용
예약됨 Compute Engine에 VM 유지보수가 예약되어 있습니다. 예약된 시간 전에 유지보수를 수동으로 시작할 수 있습니다.
  • Google Cloud 콘솔에서 유지보수 상태가 실행 준비됨 - DATE에서 실행됨으로 표시됩니다.
  • gcloud CLI 또는 REST API에서 Compute Engine은 maintenanceStatus 필드를 PENDING으로 설정합니다.
진행 중 유지보수가 진행 중입니다. 일정을 변경할 수 없습니다.
  • Google Cloud 콘솔에서 유지보수 상태가 Running으로 표시됩니다.
  • gcloud CLI 또는 REST API에서 Compute Engine은 maintenanceStatus 필드를 ONGOING으로 설정합니다.
완료 유지보수가 완료되었습니다. Compute Engine에서 VM의 모든 유지관리 알림을 삭제했습니다.
  • Google Cloud 콘솔에서 유지보수 상태가 최신으로 표시됩니다.
  • gcloud CLI 또는 REST API에서 Compute Engine은 maintenanceStatus 필드를 COMPLETE으로 설정합니다.

여러 VM의 유지보수를 동시에 시작하거나 개별 VM의 유지보수를 시작할 수 있습니다. 여러 VM의 경우 Google Cloud 콘솔을 사용하고 동일 영역에 있는 VM의 경우 gcloud CLI를 사용합니다. 개별 VM의 경우 다음 옵션을 선택합니다.

콘솔

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 유지보수를 시작할 VM의 행을 선택합니다.

  3. 유지보수 실행을 클릭합니다.

  4. 확인하려면 유지관리 실행을 클릭합니다.

gcloud

동일한 영역 내에서 하나 이상의 VM의 유지보수를 수동으로 시작하려면 gcloud compute instances perform-maintenance 명령어를 사용합니다.

gcloud compute instances perform-maintenance VM_NAMES \
    --zone=ZONE

다음을 바꿉니다.

  • VM_NAMES: 공백으로 구분된 VM 이름 목록입니다(예: vm-01 vm-02 vm-03).

  • ZONE: VM이 있는 영역입니다.

REST

VM의 유지보수를 수동으로 시작하려면 instances.performMaintenance 메서드POST 요청을 수행합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/performMaintenance

다음을 바꿉니다.

  • PROJECT_ID: VM을 만든 프로젝트의 ID입니다.

  • ZONE: VM이 있는 영역입니다.

  • VM_NAME: VM 이름입니다.