인스턴스의 호스트 유지보수 정책 설정


이 문서에서는 호스트 이벤트가 발생할 때 인스턴스의 동작을 제어하기 위해 가상 머신 (VM) 또는 베어 메탈 인스턴스의 호스트 유지보수 정책을 설정하는 방법을 설명합니다.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

제한사항

  • 선점형 VM의 유지보수 동작은 변경할 수 없습니다. 유지보수 이벤트가 있으면 선점형 VM이 중지되고 마이그레이션되지 않습니다. 선점형 VM을 수동으로 다시 시작해야 합니다.
  • E2 머신 유형을 사용하여 VM을 만든 후에는 VM의 유지보수 동작을 MIGRATE에서 TERMINATE로 또는 다른 방법으로 변경할 수 없습니다.
  • TERMINATE로 설정되고 자동으로 다시 시작되는 c3-standard-192-metal 또는 x4-megamem-1920-metal와 같은 베어메탈 인스턴스의 유지보수 동작은 변경할 수 없습니다.

사용 가능한 호스트 유지보수 속성

컴퓨팅 인스턴스의 유지보수 동작, 다시 시작 동작, 호스트 오류 대기 동작을 구성할 수 있습니다. Compute Engine은 별도로 지정하지 않는 한 기본값으로 각 인스턴스를 구성합니다.

호스트 이벤트 중에 구성된 호스트 유지보수 정책에 따라 라이브 마이그레이션을 지원하지 않는 인스턴스가 종료되고 자동으로 다시 시작됩니다.

  • onHostMaintenance: 인스턴스를 다시 시작할 수 있는 유지보수 이벤트가 발생하는 경우의 동작을 결정합니다.

    • MIGRATE: 유지보수 이벤트가 있을 때 Compute Engine이 인스턴스를 라이브 마이그레이션합니다. 이는 대부분의 VM에서 기본값입니다.
    • TERMINATE: 라이브 마이그레이션을 사용하는 대신 인스턴스를 중지합니다. Z3, 베어 메탈 인스턴스, GPU 및 TPU와 같은 가속기가 있는 인스턴스의 기본 옵션입니다. 이러한 인스턴스 유형의 경우 onHostMaintenance의 설정을 변경할 수 없습니다.
  • automaticRestart: 인스턴스가 비정상 종료되거나 시스템에 의해 중지되는 경우의 동작을 결정합니다.

    • true (기본값): 인스턴스가 다운되거나 중지되는 경우 Compute Engine이 인스턴스를 다시 시작합니다.
    • false: 인스턴스가 비정상 종료되거나 중지되는 경우 Compute Engine은 인스턴스를 다시 시작하지 않습니다.
  • localSsdRecoveryTimeout: 로컬 SSD 복구 제한 시간을 설정합니다. 호스트 오류 후 Compute Engine에서 로컬 SSD 데이터를 복구하기 위해 기다리는 최대 시간(시간 단위)입니다. 이 설정은 로컬 SSD 디스크가 연결된 VM에만 적용됩니다. 로컬 SSD 디스크가 연결되지 않은 인스턴스에 이 설정을 구성하면 설정이 무시됩니다.

    • 설정되지 않음 (기본값): Compute Engine이 로컬 SSD 데이터를 복구하기 위해 최대 1시간 동안 기다립니다. Z3 VM의 경우 기본 대기 시간은 6시간입니다.
    • 0~168 사이의 정수: Compute Engine이 로컬 SSD 데이터를 복구하기 위해 대기하는 시간(시간)을 지정합니다. 최대 값은 7일에 해당합니다. 값이 0이면 Compute Engine이 로컬 SSD 데이터 복구를 기다리지 않고 즉시 인스턴스를 다시 시작한다는 의미입니다.
  • hostErrorTimeoutSeconds(미리보기): 인스턴스가 응답하지 않음을 감지하고 Compute Engine이 컴퓨팅 인스턴스를 다시 시작하거나 종료하기 위해 대기하는 최대 시간(초)을 설정합니다.

    • 설정되지 않음 (기본값): Compute Engine이 최대 5.5분(330초) 동안 대기한 후 응답하지 않는 인스턴스를 다시 시작합니다.
    • 90~330 사이의 정수: Compute Engine에서 응답하지 않는 컴퓨팅 인스턴스를 다시 시작하기 전에 대기하는 시간(초)을 30초 단위로 지정합니다.

인스턴스의 호스트 유지보수 정책 설정

처음 인스턴스를 만들 때 또는 인스턴스를 만든 후에 인스턴스의 호스트 유지보수 정책을 변경할 수 있습니다.

인스턴스 생성 중 호스트 유지보수 정책 설정

이 섹션의 정보는 인스턴스를 만들 때 호스트 유지보수 정책을 설정하는 방법을 중점적으로 설명합니다. 인스턴스 만들기 예시는 Compute Engine 인스턴스 만들기 및 시작을 참고하세요.

Google Cloud 콘솔, gcloud CLI 또는 REST를 사용하여 생성 시 컴퓨팅 인스턴스의 호스트 유지보수 정책을 설정할 수 있습니다.

콘솔

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

    인스턴스 만들기로 이동

  2. 인스턴스 이름을 지정합니다.

  3. 인스턴스의 리전영역을 선택합니다.

  4. 머신 구성 섹션에서 다음을 수행합니다.

    1. 인스턴스의 머신 유형 세부정보를 지정합니다.
    2. VM 프로비저닝 모델 고급 설정 메뉴를 펼칩니다.
    3. 호스트 유지보수 시 메뉴에서 다음 단계 중 하나를 선택합니다.
      1. 유지보수 이벤트 중에 VM을 마이그레이션하려면 VM 인스턴스 마이그레이션을 선택합니다.
      2. 유지보수 이벤트 중에 인스턴스를 중지하려면 VM 인스턴스 종료를 선택합니다.
  5. 인스턴스를 만들려면 만들기를 클릭합니다.

gcloud

새 인스턴스의 호스트 유지보수 정책을 설정하려면 gcloud compute instances create 명령어를 사용합니다.

--host-error-timeout-seconds 속성(미리보기)을 설정하려면 gcloud beta compute instances create 명령어를 사용해야 합니다.

다음 명령어를 사용하여 새 인스턴스의 호스트 유지보수 정책을 설정할 수 있습니다. 플래그를 생략하면 플래그의 기본값이 사용됩니다.

  gcloud compute instances create INSTANCE_NAME \
      --zone=ZONE \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT \
      --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT

다음을 바꿉니다.

  • INSTANCE_NAME: 인스턴스의 이름
  • ZONE: 인스턴스가 있는 영역입니다.
  • MAINTENANCE_BEHAVIOR: 인스턴스의 유지보수 이벤트 동작입니다(TERMINATE 또는 MIGRATE). 대부분의 머신 유형의 경우 이 속성을 생략하면 기본적으로 VM이 마이그레이션됩니다. Z3 및 베어메탈 인스턴스가 종료됩니다.
  • RESTART_ON_FAILURE_BEHAVIOR: 종료되거나 응답하지 않는 인스턴스의 동작을 다시 시작합니다(restart-on-failure(기본값) 또는 no-restart-on-failure로 설정).
  • SSD_RECOVERY_TIMEOUT: 종료되거나 응답하지 않는 인스턴스에 연결된 로컬 SSD 디스크를 복구하는 데 걸리는 시간입니다. 유효한 값은 0시간~168시간(1시간 단위)입니다.
  • ERROR_DETECTION_TIMEOUT: Compute Engine이 응답하지 않는 인스턴스를 다시 시작하기 전에 대기하는 시간(초)이며, 90~330초(5.5분)의 값(30초 단위)입니다.

REST

REST를 사용하여 새 인스턴스의 호스트 유지보수 정책을 설정하려면 instances.insert 메서드를 사용합니다.

다음 명령어를 사용하여 새 인스턴스의 호스트 유지보수 정책을 설정할 수 있습니다. 필드를 생략하면 필드의 기본값이 사용됩니다.

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

      {
        "name": "INSTANCE_NAME",

        "scheduling": {
          "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
          "automaticRestart": "RESTART_POLICY,
          "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        }
      }

다음을 바꿉니다.

  • PROJECT_ID: 인스턴스의 프로젝트입니다.
  • ZONE: 인스턴스를 만들 영역입니다.
  • INSTANCE_NAME: 인스턴스의 이름
  • MAINTENANCE_BEHAVIOR: 인스턴스의 유지보수 이벤트 동작입니다(TERMINATE 또는 MIGRATE). 대부분의 머신 유형의 경우 이 필드를 생략하면 기본적으로 VM이 마이그레이션됩니다. Z3 및 베어메탈 인스턴스가 종료됩니다.
  • RESTART_POLICY: 유지보수 이벤트 또는 호스트 오류 후 인스턴스가 자동으로 다시 시작되는지 여부입니다(true(기본값) 또는 false).
  • SSD_RECOVERY_TIMEOUT: Compute Engine이 응답하지 않거나 종료된 인스턴스에 연결된 로컬 SSD 디스크를 복구하는 데 걸린 시간입니다. 유효한 값은 0시간~168시간(1시간 단위)입니다. Z3의 기본값은 6시간이고 다른 모든 VM의 기본값은 1시간입니다.

호스트 오류 감지 제한 시간 설정

Compute Engine이 응답하지 않는 인스턴스를 다시 시작하거나 종료하기 위해 대기하는 최대 시간을 설정하려면 베타 instances.insert 메서드를 사용합니다. 이 옵션은 미리보기에 있기 때문입니다.

요청 본문의 scheduling 객체에 hostErrorTimeoutSeconds 속성을 추가합니다. 여기서 HOST_ERROR_TIMEOUT는 Compute Engine이 응답하지 않는 인스턴스를 다시 시작하거나 종료하기 전에 대기하는 시간(초)입니다. 유효한 값은 90~330(5.5분)이며 30초 단위로 증가합니다.


   POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances

   {
      "name": "INSTANCE_NAME",

      "scheduling": {
        "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
        "automaticRestart": "RESTART_POLICY,
        "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
        "hostErrorTimeoutSeconds": HOST_ERROR_TIMEOUT,
      }
    }

기존 인스턴스의 호스트 유지보수 정책 업데이트

콘솔

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

    VM 인스턴스로 이동

  2. 설정을 변경할 인스턴스의 이름을 클릭합니다. 인스턴스 세부정보 페이지가 표시됩니다.

  3. 세부정보 탭을 선택한 상태에서 다음 단계를 완료합니다.

    1. 페이지 상단에서 수정 버튼을 클릭합니다.
    2. 관리 섹션으로 이동합니다. 가용성 정책 섹션에서 호스트 유지보수 옵션을 변경할 수 있습니다.
    3. 저장을 클릭합니다.

gcloud

gcloud compute instances set-scheduling 명령어를 사용하여 기존 인스턴스의 호스트 유지보수 정책을 업데이트합니다. 이전 섹션의 인스턴스 만들기 명령어와 동일한 매개변수를 사용합니다.

Compute Engine이 응답하지 않는 인스턴스를 다시 시작하거나 종료하기 위해 대기하는 최대 시간을 업데이트하려면(미리보기) gcloud beta compute instances set-scheduling 명령어를 사용하고 --host-error-timeout-seconds=NUMBER_OF_SECONDS를 포함합니다.

    gcloud compute instances set-scheduling INSTANCE_NAME \
      --maintenance-policy=MAINTENANCE_BEHAVIOR \
      --RESTART_ON_FAILURE_BEHAVIOR \
      --local-ssd-recovery-timeout=SSD_RECOVERY_TIMEOUT

다음을 바꿉니다.

  • NUMBER_OF_SECONDS: Compute Engine이 응답하지 않는 VM을 다시 시작하거나 종료하기 전에 대기하는 시간(초)이며, 90~330(5.5분)의 값(30초 단위)입니다.
    • INSTANCE_NAME: 인스턴스의 이름
    • MAINTENANCE_BEHAVIOR: 인스턴스의 유지보수 이벤트 동작입니다(TERMINATE 또는 MIGRATE). 대부분의 머신 유형의 경우 이 속성을 생략하면 기본적으로 VM이 마이그레이션됩니다. Z3 및 베어메탈 인스턴스가 종료됩니다.
    • RESTART_ON_FAILURE_BEHAVIOR: 종료되거나 응답하지 않는 인스턴스의 동작을 다시 시작합니다(restart-on-failure(기본값) 또는 no-restart-on-failure로 설정).
    • SSD_RECOVERY_TIMEOUT: 종료되거나 응답하지 않는 인스턴스에 연결된 로컬 SSD 디스크를 복구하는 데 걸리는 시간입니다. 유효한 값은 0시간~168시간(1시간 단위)입니다.
    • NUMBER_OF_SECONDS: Compute Engine이 응답하지 않는 인스턴스를 다시 시작하기 전에 대기하는 시간(초)이며, 90~330초(5.5분)의 값(30초 단위)입니다.

REST

instances.setScheduling 메서드에 대한 POST 요청을 사용하여 기존 인스턴스의 호스트 유지보수 정책을 업데이트합니다.

    POST https://compute.googleapis.com/compute/v1projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

    {
      "onHostMaintenance": "MAINTENANCE_BEHAVIOR",
      "automaticRestart": RESTART_POLICY,
      "localSsdRecoveryTimeout": SSD_RECOVERY_TIMEOUT
    }

다음을 바꿉니다.

  • PROJECT_ID: 인스턴스의 프로젝트입니다.
  • ZONE: 인스턴스가 있는 영역입니다.
  • INSTANCE_NAME: 인스턴스의 이름
  • MAINTENANCE_BEHAVIOR: 이 인스턴스의 유지보수 이벤트 동작입니다(TERMINATE 또는 MIGRATE).
  • RESTART_POLICY: 인스턴스가 자동으로 다시 시작되는지 여부입니다(true 또는 false).
    • SSD_RECOVERY_TIMEOUT: 인스턴스에 연결된 로컬 SSD 디스크를 복구하는 데 걸리는 시간입니다. 유효한 값은 0시간~168시간(1시간 단위)입니다.

호스트 오류 감지 제한 시간 업데이트

Compute Engine이 응답하지 않는 VM을 다시 시작하거나 종료하기 위해 대기하는 최대 시간을 업데이트하려면 베타 instances.setScheduling 메서드를 사용해야 합니다. 이 기능은 미리보기에서 사용할 수 있기 때문입니다.

요청 본문에 hostErrorTimeoutSeconds 속성을 추가합니다. 여기서 HOST_ERROR_TIMEOUT은 Compute Engine에서 응답하지 않는 인스턴스를 다시 시작하거나 종료하기 전에 대기하는 시간(초)입니다. 유효한 값은 90~330(5.5분)이며 30초 단위로 증가합니다.

  POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling

  {
    ...
    "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS
  }

인스턴스의 호스트 유지보수 정책 설정 보기

콘솔

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 설정을 확인하려는 인스턴스의 이름을 클릭합니다. 인스턴스 세부정보 페이지가 열립니다.

  3. 관리 섹션으로 이동합니다. 가용성 정책 하위 섹션에는 다음에 대한 현재 설정이 표시됩니다.

    • 호스트 유지보수 시
    • 자동으로 다시 시작
    • 호스트 오류 제한 시간

gcloud

gcloud compute instances describe 명령어를 사용하여 인스턴스의 호스트 유지보수 옵션 설정을 확인합니다.

hostErrorTimeoutSeconds 설정의 현재 값(미리보기)을 보려면 gcloud beta compute instances describe 명령어를 사용합니다.

 gcloud compute instances describe INSTANCE_NAME \
 --zone ZONE --format="yaml(scheduling)"

다음을 바꿉니다.

  • INSTANCE_NAME: 인스턴스 이름입니다.
  • ZONE: 인스턴스가 있는 영역입니다.

출력에는 호스트 유지보수 정책의 현재 설정이 포함됩니다. 예를 들면 다음과 같습니다.

scheduling:
  automaticRestart: true
  hostErrorTimeoutSeconds: 120
  localSsdRecoveryTimeout:
    nanos: 0
    seconds: '10800'
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD

REST

인스턴스의 호스트 유지보수 설정을 보려면 instances.get 메서드를 사용합니다.

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

다음을 바꿉니다.

  • PROJECT_ID: 인스턴스가 있는 프로젝트입니다.
  • ZONE: 인스턴스가 있는 영역입니다.
  • INSTANCE_NAME: 인스턴스의 이름

출력에서 scheduling 객체에는 인스턴스의 호스트 유지보수 정책 설정이 포함됩니다. 예를 들면 다음과 같습니다.

{
...
  "scheduling": {
      "onHostMaintenance": "MIGRATE",
      "automaticRestart": true,
      "preemptible": false,
      "provisioningModel": "STANDARD",
      "localSsdRecoveryTimeout": {
        "seconds": "10800",
        "nanos": 0
      }
    },
...
}

호스트 오류 제한 시간 설정 보기

베타 instances.get 메서드를 사용하여 GET 요청을 생성하여 현재 hostErrorTimeoutSeconds 설정을 확인합니다.

 GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

다음을 바꿉니다.

  • PROJECT_ID: 인스턴스의 프로젝트입니다.
  • ZONE: 인스턴스가 있는 영역입니다.
  • INSTANCE_NAME: 인스턴스의 이름

출력에서 scheduling 객체에는 인스턴스의 호스트 오류 감지 제한 시간이 포함됩니다. 예를 들면 다음과 같습니다.

{
...
  "scheduling": {
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true,
    "preemptible": false,
    "provisioningModel": "STANDARD",
    "hostErrorTimeoutSeconds": 120,
    "localSsdRecoveryTimeout": {
      "seconds": "10800",
      "nanos": 0
    }
  },
...
}

다음 단계