가상 머신 (VM) 인스턴스 또는 베어메탈 인스턴스의 전체 기간 동안 인스턴스가 실행되는 호스트 머신에서 여러 호스트 이벤트가 발생할 수 있습니다. 호스트 이벤트에는 Compute Engine 인프라의 정기 유지보수 또는 드물지만 호스트 오류가 포함될 수 있습니다. 호스트 유지보수 정책을 구성하여 호스트 이벤트 중이나 후에 VM 및 베어메탈 인스턴스가 응답하는 방식을 선택할 수 있습니다.
기본적으로 대부분의 인스턴스는 호스트 이벤트 중에 라이브 마이그레이션되도록 설정되어 있습니다. 이 동작을 재정의하고 인스턴스를 종료하고 원하는 경우 다시 시작하도록 명시적으로 설정할 수 있습니다. 베어메탈 인스턴스 또는 GPU가 연결된 VM과 같이 일부 머신 유형은 실시간 이전을 지원하지 않습니다. 이러한 인스턴스는 호스트 이벤트 중에 종료됩니다. 자세한 내용은 유지보수 및 다시 시작 동작을 참고하세요.
호스트 이벤트 유형
호스트 이벤트에는 두 가지 유형이 있으며 다음 섹션에서 더 자세히 설명합니다.
인스턴스가 응답하지 않으면 인스턴스의 다시 시작 또는 종료가 트리거될 수도 있습니다.
유지보수 이벤트
유지보수 이벤트는 Compute Engine에서 VM을 호스트 서버 외부로 이동해야 하는 유지보수 또는 수리 활동을 실행해야 하는 경우입니다. 지원되는 인스턴스 유형에 라이브 마이그레이션 호스트 유지보수 정책을 사용 설정하면 Compute Engine에서 인스턴스를 새 호스트로 이동하며 애플리케이션이 최소한으로 중단됩니다.
유지보수 이벤트 중의 인스턴스 동작은 인스턴스의 테넌시와 머신 유형에 따라 다를 수 있습니다. 다음 표에는 예약된 유지보수 이벤트의 동작이 요약되어 있습니다.
호스트 테넌시 | 대략적인 유지보수 이벤트 빈도 |
라이브 마이그레이션이 지원됨 | 호스트 선택 |
---|---|---|---|
멀티 테넌트 (공유됨) | 2주마다 | 예 | Compute Engine |
단독 테넌트 | 4~6주 간격 | 호스트 유지보수 정책에 따라 다름 | 호스트 유지보수 정책에 따라 다름 |
X4 | 최소 90일 | 아니요 | Compute Engine |
C3 | 최소 30일 | 아니요 | Compute Engine |
또한 Compute Engine은 동일한 호스트에서 인스턴스를 유지하여 백그라운드에서 일부 가벼운 하이퍼바이저 업그레이드와 네트워크 업그레이드를 중단 없이 적용합니다.
호스트 오류
호스트 오류 (compute.instances.hostError
)는 컴퓨팅 인스턴스를 호스팅하는 실제 머신 또는 데이터 센터 인프라에서 하드웨어 또는 소프트웨어 문제가 발생하여 인스턴스가 비정상 종료되었음을 의미합니다. 총 하드웨어 오류 또는 기타 하드웨어 문제가 포함된 호스트 오류는 인스턴스의 라이브 마이그레이션을 방해할 수 있습니다.
인스턴스가 자동으로 다시 시작되도록 설정된 경우(기본 설정) Compute Engine은 일반적으로 오류가 감지된 시간부터 3분 내로 인스턴스를 다시 시작합니다. 문제에 따라 다시 시작하는 데 최대 5.5분이 걸릴 수 있습니다.
호스트 오류가 신호를 보내기 전에 컴퓨팅 인스턴스가 응답하지 않는 경우가 있습니다. 호스트 오류 복구 제한 시간 (미리보기)을 설정하여 Compute Engine이 인스턴스를 다시 시작하거나 종료하기 위해 대기하는 시간을 줄일 수 있습니다. 자세한 내용은 가용성 정책 설정을 참고하세요.
물리적인 하드웨어 및 소프트웨어 오류가 간혹 발생할 수 있지만 매우 드물게 발생합니다. 이와 같은 시스템 중단 이벤트로부터 애플리케이션과 서비스를 보호하기 위해 다음 리소스를 검토하세요.
Google은 또한 App Engine 및 App Engine 가변형 환경과 같은 관리형 서비스를 제공합니다.
호스트 유지보수 정책 개요
인스턴스의 호스트 유지보수 정책은 다음 호스트 이벤트 중의 인스턴스 동작 방식을 결정합니다.
- 유지보수 이벤트
- 호스트 오류 이벤트 또는 인스턴스가 응답하지 않음
호스트 유지보수 중에 인스턴스가 계속 실행되도록 구성하고, Compute Engine에서 인스턴스를 다른 호스트로 라이브 마이그레이션하거나, 대신 인스턴스를 중지하도록 선택할 수 있습니다.
다음 설정을 구성하여 인스턴스의 호스트 유지보수 정책을 변경할 수 있습니다.
- 유지보수 동작: 유지보수 이벤트가 있을 때 인스턴스를 라이브 마이그레이션할지 또는 중지할지 여부입니다.
- 다시 시작 동작: 인스턴스가 비정상 종료되거나 호스트 오류가 발생하거나 응답하지 않는 경우 Compute Engine이 인스턴스를 다시 시작할지 또는 종료할지 여부입니다.
- 호스트 오류 감지 시간: 인스턴스가 응답하지 않음을 감지한 후 Compute Engine이 인스턴스를 다시 시작하거나 종료하기 위해 대기하는 최대 시간입니다.
- 로컬 SSD 복구 시간: Compute Engine에서 호스트 오류 감지 후 로컬 SSD 디스크의 데이터를 복구하기 위해 시도하는 최대 시간입니다. 지정된 시간 안에 성공적으로 복구되지 않으면 로컬 SSD 데이터가 손실됩니다.
언제든지 인스턴스의 호스트 유지보수 정책을 업데이트하여 인스턴스의 동작 방식을 제어할 수 있습니다.
유지보수 및 다시 시작 동작
호스트 이벤트가 발생하면 컴퓨팅 인스턴스는 라이브 마이그레이션을 사용하거나 인스턴스가 종료될 수 있습니다. 인스턴스가 종료되면 인스턴스를 직접 다시 시작하거나 Compute Engine에서 자동으로 다시 시작하도록 선택할 수 있습니다.
다음 머신 시리즈는 라이브 마이그레이션을 지원하지 않으며 대신 호스트 이벤트 중에 종료됩니다.
- Z3 및 X4 인스턴스가 제자리에서 다시 시작됩니다.
- C3 베어메탈 인스턴스는 종료되고 다시 시작됩니다. 즉, 다른 호스트에서 다시 시작될 수 있습니다.
- GPU가 있는 인스턴스
- TPU가 있는 인스턴스
라이브 마이그레이션
기본적으로 대부분의 인스턴스 유형은 다음을 제외하고 라이브 마이그레이션으로 설정됩니다.
- GPU 및 TPU가 연결된 인스턴스
- C3 베어메탈 또는 X4 인스턴스
- Z3 인스턴스
라이브 마이그레이션 중에 Compute Engine은 인프라 유지보수 이벤트로부터 인스턴스를 자동으로 마이그레이션하며, 인스턴스는 마이그레이션이 진행되는 동안 실행 상태를 유지합니다. 인스턴스의 성능이 잠시 감소할 수는 있지만 일반적으로 대부분의 인스턴스에서 눈에 띄게 성능의 차이를 보이지 않습니다. 이는 지속적인 업타임이 요구되며 짧은 시간 동안의 성능 감소에 크게 영향을 받지 않는 인스턴스에 이상적입니다.
Compute Engine은 인스턴스를 마이그레이션할 때 시스템 이벤트를 보고하며, 이벤트는 영역 작업 목록 및 시스템 이벤트 로그에 게시됩니다. 특정 영역의 Compute Engine 작업을 확인하여 이 이벤트를 검토할 수 있습니다. 라이브 마이그레이션 이벤트의 작업 유형은 다음과 같습니다.
compute.instances.migrateOnHostMaintenance
종료 및 다시 시작
인스턴스를 라이브 마이그레이션하지 않으려는 경우 또는 인스턴스 유형이 라이브 마이그레이션을 지원하지 않는 경우 대신 호스트 이벤트가 발생할 때 Google Cloud에서 인스턴스를 중지하도록 허용할 수 있습니다. 이 구성을 사용하면 호스트 이벤트가 발생하면 Compute Engine에서 소프트 종료 신호를 보내 인스턴스를 종료합니다.
그런 다음 인스턴스가 완전히 종료될 때까지 60초 동안 기다린 후 인스턴스 상태를 TERMINATED
로 설정합니다. 60초 안에 완전히 꺼지지 않으면 인스턴스가 강제로 종료됩니다.
이 옵션은 인스턴스가 일정하게 최대 성능을 유지해야 하고, 전체 애플리케이션이 인스턴스 장애나 재부팅을 처리하도록 빌드되어 있는 경우에 적합합니다.
Compute Engine이 호스트 이벤트로 인해 인스턴스를 중지하면 시스템 이벤트를 보고하며, 이벤트는 영역 작업 목록 및 시스템 이벤트 로그에 게시됩니다. 특정 영역의 Compute Engine 작업을 확인하여 이 이벤트를 검토할 수 있습니다. 인스턴스 종료 이벤트의 작업 유형은 다음과 같습니다.
compute.instances.terminateOnHostMaintenance
자동으로 다시 시작
유지보수 이벤트가 있을 때 인스턴스가 중지되도록 구성되어 있거나 기본 하드웨어 문제로 인스턴스가 비정상 종료되는 경우 Compute Engine이 인스턴스를 자동으로 다시 시작할 수 있습니다. 인스턴스는 동일한 호스트 서버에서 다시 시작되거나 유지보수 이벤트에 참여하지 않는 동일한 영역의 다른 서버로 이동됩니다.
기본적으로 Compute Engine은 1시간 동안 연결된 로컬 SSD 디스크가 있는 인스턴스를 복구하려고 시도합니다. 시간 제한에 도달하면 Compute Engine은 동일한 영역의 다른 호스트 서버에서 인스턴스를 다시 시작하려고 시도합니다. Z3 및 X4 인스턴스의 기본 대기 시간은 다릅니다. 이러한 인스턴스 유형은 인스턴스 종료 후 동일한 호스트 서버에서 다시 시작됩니다.
자동 다시 시작을 구성하려면 호스트 유지보수 정책 필드 automaticRestart
를 true
로 설정합니다. 이 설정은 영역 중단으로 인해 인스턴스가 오프라인으로 전환되거나 게스트 OS 내에서 sudo shutdown
를 호출하는 등의 사용자 작업을 통해 인스턴스가 오프라인으로 전환된 경우에는 적용되지 않습니다.
Compute Engine은 인스턴스를 다시 시작할 때 시스템 이벤트를 보고하며, 이벤트는 영역 작업 목록에 게시됩니다. 특정 영역의 Compute Engine 작업을 확인하여 이 이벤트를 검토할 수 있습니다. 자동 다시 시작 이벤트의 작업 유형은 다음과 같습니다.
compute.instances.automaticRestart
인스턴스 종료 후 디스크 지속성
영구 디스크 및하이퍼디스크는 네트워크 연결 스토리지이므로 인스턴스가 다시 시작되면 Compute Engine에서 부팅 디스크와 모든 보조 디스크를 인스턴스에 다시 연결합니다. 이러한 디스크의 데이터는 라이브 마이그레이션 및 인스턴스 다시 시작을 통해 유지됩니다.
Compute Engine은 가능하면 호스트 이벤트 후 로컬 SSD 디스크의 데이터를 보존합니다. 그러나 Compute Engine은 로컬 SSD 데이터 지속성을 보장하지 않습니다.다음과 같은 경우 로컬 SSD 디스크가 보존됩니다.
- 라이브 마이그레이션을 위해 인스턴스를 구성하고 인스턴스가 호스트 유지보수 이벤트를 거치는 경우
- 호스트 오류가 발생하고 Compute Engine이 제한 시간 내에 인스턴스를 로컬 SSD 디스크에 다시 연결합니다.
- 종료 및 자동 다시 시작만 지원하는 로컬 SSD 디스크가 연결된 컴퓨팅 인스턴스는 유지보수 이벤트를 거칩니다. 인스턴스는 새 호스트로 이전하는 대신 로컬 SSD 데이터를 보존하면서 그대로 다시 시작됩니다.
다음과 같은 경우 로컬 SSD 디스크가 보존되지 않습니다.
- 게스트 운영체제를 종료하고 인스턴스를 강제로 중지합니다.
- 호스트 유지보수 이벤트에서 인스턴스가 중지되도록 구성했으며 인스턴스가 호스트 유지보수 이벤트를 거치는 경우
- 호스트 오류가 발생하고 제한 시간이 만료되기 전에 Compute Engine이 디스크를 인스턴스에 다시 연결할 수 없습니다. 이 경우 로컬 SSD 디스크를 복구하지 않고 인스턴스가 다시 시작됩니다. 인스턴스가 다시 시작되면 Compute Engine에서 다시 시작된 인스턴스에 빈 로컬 SSD 디스크를 연결합니다. 인스턴스에서 이러한 디스크를 사용하려면 먼저 디스크를 포맷하고 마운트해야 합니다. 원래 로컬 SSD 디스크의 데이터는 복구할 수 없습니다.
Google Cloud는 로컬 SSD 데이터를 그대로 유지하기 위해 최선을 다하고 있습니다. 하지만 시간 초과가 발생하는 경우와 같이 데이터를 복구할 수 없는 경우도 있습니다. 로컬 SSD 디스크가 보존되는 시점에 관한 자세한 내용은 로컬 SSD 데이터 지속성을 참고하세요.
로컬 SSD 복구 제한 시간
호스트 오류가 발생하면 Compute Engine은 인스턴스에 연결된 로컬 SSD 디스크를 복구하려고 시도합니다. 호스트 정책 localSsdRecoveryTimeout
설정을 사용하여 Compute Engine에서 데이터 복구를 시도하는 데 걸리는 시간을 제어할 수 있습니다.
기본적으로 Compute Engine은 데이터를 복구하는 데 1시간 정도 걸리지만 이 설정의 유효한 값은 0~168시간(1시간 단위)입니다. Z3 인스턴스의 기본값은 6입니다. 즉, Z3 인스턴스는 제한 시간에 도달하기 전에 6시간 동안 로컬 SSD 데이터를 복구하려고 시도합니다.
로컬 SSD 복구 제한 시간을 0으로 설정하면 Compute Engine에서 연결된 로컬 SSD 디스크를 복구하려고 시도하지 않습니다. 인스턴스는 최대한 빨리 다시 시작되며 로컬 SSD 데이터는 복구할 수 없습니다. 워크로드 재개가 로컬 SSD 데이터 복구보다 중요한 경우 이 구성을 사용하세요.
복구 제한 시간이 0으로 설정되지 않았지만 로컬 SSD 데이터가 복구되기 전에 시간 제한에 도달하면 Compute Engine에서 로컬 SSD 디스크 없이 인스턴스를 다시 시작합니다. Compute Engine에서 다시 시작된 인스턴스에 비어 있는 새 로컬 SSD 디스크를 연결합니다. 인스턴스에서 이러한 디스크를 사용하려면 먼저 디스크를 포맷하고 마운트해야 합니다.
Compute Engine에서 로컬 SSD 디스크를 복구하려고 시도하는 동안 인스턴스의 상태는 REPAIRING
입니다.
이 기간에는 인스턴스와 로컬 SSD 디스크를 사용할 수 없습니다.
로컬 SSD 복구 제한 시간을 최대값인 168로 설정하면 Compute Engine에서 로컬 SSD 디스크를 복구하려고 시도하는 동안 인스턴스가 최대 7일 동안 REPAIRING
상태로 유지됩니다.
로컬 SSD 디스크 복구 중지
Compute Engine이 복구 제한 시간 한도에 도달하기 전에 로컬 SSD 디스크 복구 프로세스를 중단할 수 있습니다. 이렇게 하려면 gcloud compute instances stop
명령어를 --discard-local-ssd=True
플래그와 함께 사용합니다.
이 명령어는 복구 프로세스를 중지하고, 컴퓨팅 인스턴스를 중지하며, 로컬 SSD 데이터를 삭제합니다. 그런 다음 인스턴스를 다시 시작할 수 있습니다. 자세한 내용은 로컬 SSD로 인스턴스 중지를 참고하세요.
로컬 SSD 복구 제한 시간을 설정하려면 인스턴스 호스트 유지보수 정책 설정을 참고하세요.
유지보수 예약
Google Cloud는 유지보수를 더 엄격하게 제어할 수 있는 기능을 제공합니다.
특정 머신 제품군을 사용하면 유지보수 환경설정을 지정하고 Cloud Logging, 인스턴스의 메타데이터 서버, gcloud CLI compute instances describe
명령어 또는 REST instances.describe
메서드를 통해 예정된 유지보수 이벤트에 대한 알림을 받을 수 있습니다. 알림을 받으면 일정된 유지보수를 원하는 시점에 시작할 수 있는 기간이 있습니다. 예약된 유지보수를 트리거하지 않으면 알림 기간(알림에 표시된 예약 시간)이 끝날 때 유지보수 이벤트가 발생합니다.
이러한 기능을 호스트 유지보수 정책과 함께 사용하여 워크로드에 맞는 유지보수 일정을 맞춤설정할 수 있습니다.
다음 단계
- 라이브 마이그레이션 자세히 알아보기
- 인스턴스 호스트 유지보수 정책 설정에 대해 자세히 알아보세요.
- 라이브 마이그레이션 알림 받기 자세히 알아보기
- 호스트 유지보수 시뮬레이션 자세히 알아보세요. + GPU 호스트 유지보수 이벤트 처리에 대해 자세히 알아보세요.
- 단독 테넌트 VM 수동 라이브 마이그레이션 자세히 알아보기