실시간 이전

Compute Engine은 소프트웨어 또는 하드웨어 업데이트와 같은 호스트 시스템 이벤트가 발생하더라도 가상 머신 인스턴스가 계속 실행될 수 있게 해주는 라이브 이전 기능을 제공합니다. Compute Engine은 사용자가 VM을 재부팅할 필요 없이 동일 영역에서 실행 중인 인스턴스를 또 다른 호스트로 라이브 이전합니다. 이렇게 해서 Google은 사용자의 VM에 영향을 주지 않으면서도 인프라를 보호하고 안정적인 상태로 유지하는 데 반드시 필요한 유지관리를 수행할 수 있습니다.

라이브 이전은 다음 작업이 수행되는 동안 인스턴스를 실행 중인 상태로 유지합니다.

  • 일반적인 인프라 유지관리 및 업그레이드
  • 데이터 센터의 네트워크 및 전력망 유지관리
  • 메모리, CPU, 네트워크 인터페이스 카드, 디스크, 전원 등의 하드웨어 오류. 이 경우는 최선의 방식으로 수행됩니다. 하드웨어가 완전히 고장나거나 그 밖의 이유로 실시간 이전이 불가능한 경우, VM이 다운된 후 자동으로 다시 시작되고 hostError가 로깅됩니다.
  • 호스트 OS 및 BIOS 업그레이드
  • 즉각적인 대응이 필요한 보안 관련 업그레이드
  • 호스트 이미지 및 패키지의 저장용량에 대한 호스트 루트 파티션의 크기 변경을 포함한 시스템 구성 변경

실시간 이전은 VM 자체의 어떠한 특성 또는 속성도 변경하지 않습니다. 라이브 이전 프로세스는 실행 중인 VM을 하나의 호스트 머신에서 동일 영역에 있는 다른 호스트 머신으로 단순히 전송합니다. 내부 및 외부 IP 주소, 인스턴스 메타데이터, 블록 저장소 데이터 및 볼륨, OS 및 애플리케이션 상태, 네트워크 설정, 네트워크 연결 등을 포함하여 모든 VM 속성 및 특성이 변경되지 않은 상태로 유지됩니다.

라이브 이전 프로세스의 작동 방식

Google은 실행 중인 VM 인스턴스를 한 호스트에서 다른 호스트로 이전할 때, 게스트 OS 및 게스트 OS와 통신하는 모든 사용자에게 투명한 방식으로 소스에서 대상으로 인스턴스를 완전한 상태 그대로 이전합니다. 이러한 작업이 매끄럽게 진행될 수 있도록 하기 위해서는 많은 구성요소가 관련되어 있지만, 이러한 단계를 간단히 설명하면 다음과 같습니다.

라이브 이전 구성요소

이 프로세스는 VM을 현재 호스트 머신에서 내보내야 한다는 알림으로 시작됩니다. 이러한 알림은 새로운 BIOS 버전을 사용할 수 있음을 알리는 파일 변경, 하드웨어 작업 예약 유지관리 또는 임박한 하드웨어 오류로부터 발생하는 자동 신호로부터 시작될 수 있습니다.

Google의 클러스터 관리 소프트웨어는 이러한 이벤트를 상시적으로 감시하고 단일 고객이 한 번에 이전할 수 있는 VM 수 및 용량 사용률과 같이, 데이터 센터를 제어하는 정책에 따라 이벤트를 예약합니다.

이전할 VM이 선택된 다음에는 Google이 이전이 임박한 게스트에 알림을 제공합니다. 대기 기간이 지난 후 대상 호스트가 선택되고 해당 호스트에게 이전되는 '소스' VM을 받아들일 새로운 빈 '대상' VM을 설정하라는 요청이 전송됩니다. 소스와 대상 사이의 연결을 설정하기 위해서는 인증이 사용됩니다.

VM 이전은 세 단계로 이루어집니다.

  • 이전 전 브라운아웃 단계에는 VM이 계속 소스에서 실행되며, 대부분의 상태가 소스에서 대상으로 전송됩니다. 예를 들어 Google은 모든 게스트 메모리를 대상으로 복사하고, 소스에서 변경된 페이지를 추적합니다. 게스트 메모리의 크기 및 페이지가 변경되는 속도에 따라 사전 이전 브라운아웃 단계에 소요되는 시간이 달라집니다.

  • 블랙아웃 단계는 VM이 어디에서도 실행되지 않는 매우 짧은 순간입니다. 이 단계에서는 VM이 일시 중지되고, 대상에서 VM 실행을 시작하기 위해 필요한 모든 나머지 상태가 전송됩니다. 사전 이전 브라운아웃 단계에서 상태 전송이 수확 체감 지점에 도달하면 VM이 블랙아웃 단계에 진입합니다. 전송되는 메모리의 바이트 수와 게스트 VM이 변경되는 속도를 비교하는 알고리즘이 사용됩니다.

  • 이전 후 브라운아웃 단계에는 VM이 대상 VM에서 실행됩니다. 소스 VM도 존재하며, 대상 VM에 지원 기능을 제공할 수 있습니다. 예를 들어 네트워크 패브릭에 대상 VM의 새로운 위치가 적용될 때까지, 소스 VM이 대상 VM으로의 그리고 대상 VM으로부터의 패킷 전송을 위한 서비스를 제공합니다.

마지막으로 이전이 완료되고 시스템이 소스 VM을 삭제합니다. 이렇게 수행된 이전 작업은 해당 VM 로그에서 확인할 수 있습니다. 라이브 이전은 Google 플랫폼에서 매우 중요한 구성요소이므로, Google은 매우 까다로운 기준에 따라 라이브 이전을 지속적으로 테스트하고 있습니다. 테스트 중에는 이전 알고리즘의 모든 관련 지점에서 오류를 유발시키기 위한 오류 주입 기술이 사용됩니다. 각 구성요소에 대해서는 활성 및 비활성 오류가 모두 생성됩니다. 이러한 복잡한 다단계 프로세스를 만들기 위해서는 인프라 전반의 세부적인 통합과 강력한 예약, 조정, 자동화 프로세스가 필요합니다.

라이브 이전과 GPU

GPU가 연결된 인스턴스는 라이브 이전할 수 없습니다. 이러한 인스턴스는 종료 후 다시 시작(선택 사항)되도록 설정해야 합니다. Compute Engine은 GPU가 연결된 VM 인스턴스가 종료되기 60분 전에 알림을 제공합니다. 이러한 유지관리 이벤트 알림에 대해 자세히 알아보려면 라이브 이전 알림 얻기를 읽어보세요.

GPU와 관련된 호스트 유지관리 처리에 대해 자세히 알아보려면 GPU 문서에서 호스트 유지관리 처리를 읽어보세요.

라이브 이전 및 로컬 SSD

Compute Engine은 또한 로컬 SSD가 연결된 인스턴스를 라이브 이전할 수 있습니다. 이를 위해서는 계획된 유지관리가 수행되기 전 해당 로컬 SSD와 함께 VM을 새 머신으로 미리 이동합니다.

선점형 인스턴스를 위한 실시간 이전

선점형 인스턴스는 실시간 이전을 수행하도록 구성할 수 없습니다. 선점형 인스턴스의 유지관리 동작은 기본적으로 항상 TERMINATE로 설정되며, 이 옵션을 변경할 수 없습니다. 또한 선점형 인스턴스에는 자동 재시작 옵션을 설정할 수 없지만, 선점 후 선점형 인스턴스를 수동으로 다시 시작할 수는 있습니다.

인스턴스를 더 이상 선점할 수 없게 변경해야 하는 경우에는 선점형 인스턴스에서 부팅 디스크를 분리하여 선점형으로 구성되지 않은 새 인스턴스에 연결합니다. 부팅 디스크의 스냅샷을 만들어 선점 기능 없이 새 인스턴스를 만드는 데 사용할 수도 있습니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서