IT 이야기/GCP

GCP 유지보수 (Maintenance) 이벤트

클톡(CloudTalk) 2022. 4. 22. 03:05

유지보수 (Maintenance)

유지보수 이벤트는 Compute Engine에서 VM을 중지하여 하드웨어 또는 소프트웨어 업데이트를 수행하는 경우입니다. 라이브 마이그레이션 가용성 정책을 사용 설정하면 Compute Engine에서 VM을 새 호스트로 이동하며 애플리케이션이 중단되지 않습니다.

Public Cloud 유지보수(Maintenance) 정보

Compute Engine 유지보수 이벤트에는 하드웨어 및 소프트웨어 업데이트가 수반됩니다. 이러한 유지보수 이벤트 중 일부에서는 Google이 유지보수할 호스트에서 VM을 이전해야 하며 Compute Engine은 이러한 인스턴스의 예약된 동작을 관리합니다.

재부팅이 필요한 유지보수 (Instance 중지 → 시작)

CSP 작업자 재부팅이 필요한 유지보수 셀프 서비스 기간 비고
GCP 고객 1시간 GPU Instance 대상
(1시간 이후 자동으로 중지 → 시작)
AWS 고객 4주  
Azure 고객 4주  

유지보수 (소프트웨어 업데이트)

CSP 작업자 라이브 마이그레이션 다운 타임 비고
GCP GCP 없음 GPU Instance 제외
가용성 정책 설정 (onHostMaintenance: MIGRATE)
AWS AWS × ×  
Azure Azure 5초 이하 G, M, N, H 시리즈 제외

유지보수 (하드웨어 업데이트 및 Host Error)

CSP 작업자 유지보수 다운 타임 비고
GCP GCP VM 다시 시작 및 VM 비정상 종료시 중지 상태 유지 설정 가능
AWS AWS  
Azure Azure  

유지보수 관리에 대해서는 체계적인 계획 및 도입 전 테스트가 필요합니다, 일반적인 웹사이트는 고려해야할 부분이 다소 없지만, Handshaking 서비스 및 DBMS 서비스에 대한 유지보수 유형에 따른 조치 방안 계획이 필요합니다. 가장 중요한 인프라 담당자가 조치할 수 있는 시간적 여유 및 유지보수 기능에 대해서 검증을 확인하고, 가능한 유지보수 상황을 가정한 서비스 아키텍처 설계가 필요합니다.

재부팅이 필요한 유지보수

인스턴스를 라이브 마이그레이션하지 않으려면 인스턴스를 중지하고 원하는 경우 다시 시작하도록 선택할 수 있습니다. 이 옵션을 사용하면 Compute Engine은 인스턴스에 종료 신호를 보내고 인스턴스가 완전히 종료될 때까지 잠시 기다렸다가 인스턴스를 중지하고 유지보수 이벤트 이후에 인스턴스를 다시 시작합니다.

클톡! 경험톡!

1. GPU가 연결된 인스턴스는 라이브 이전할 수 없습니다. 이러한 인스턴스는 중지 후 원하는 경우 다시 시작되도록 설정해야 합니다. Compute Engine은 GPU가 연결된 VM 인스턴스가 중지되기 60분 전에 알림을 제공합니다, 일반적인 인스턴스의 경우에는 중지 60초 전에 알림을 전송합니다.
2. terminate(재부팅)로 설정된 GPU가 없는 가상 머신 인스턴스에서는 전원 버튼 누름이 발생하고서야 Maintenance 이벤트가 발생했음을 알 수 있으며 이 속성을 통해 Maintenance 이벤트를 미리 알 수 없습니다.
3. Google Compute Engine 생성 시에 E2 Type은 terminate를 지원하지 않는 것을 확인했습니다.
4. "e2 instances do not support onHostMaintenance=TERMINATE unless they are preemptible."

라이브 마이그레이션

Google Compute Engine은 소프트웨어 또는 하드웨어 업데이트와 같이 호스트가 다운 타임을 겪는 경우에도 인스턴스를 계속 실행하는 '라이브 마이그레이션'이라는 정말 독특한 기술을 제공합니다, 기본적으로 표준 인스턴스는 라이브 마이그레이션하도록 설정되어 있습니다.

라이브 마이그레이션 프로세스의 작동 방식

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

아래의 참조 링크에서 라이브 마이그레이션에 대한 내용은 꼭! 한번 확인해 주시기 바랍니다, 블랙아웃 단계에서 1초 정도의 순간 Compute Engine 리소스 증가 및 N/W 패킷 처리 속도가 늦어질 수 있습니다. 그 영향 범위가 실사용자에게는 체감이 되지않지만, 사용자의 서비스 환경에 따라 다르기 때문에 사용자 서비스에 강제로 부하를 줘서 환경을 만들고, 강제 라이브 마이그레이션 옵션을 통해  도입 이전에 테스트를 해보시는 것을 권장 드립니다, 이후 라이브 마이그레이션 주제는 별도로 포스팅할 예정입니다.

  • 고려사항: GPU/TPU/선점형(Spot) 인스턴스는 라이브 마이그레이션을 구성 할 수 없습니다.

클톡! 경험톡!

1. 마지막 유지보수 이벤트 이후로 maintenance-event 속성을 한 번 이상 쿼리한 경우 라이브 알람(경고)를 제공합니다.
2. Compute Engine은 다음과 같은 경우에만 60초 경고를 제공합니다.
   - 인스턴스의 가용성 옵션(라이브 마이그레이션)을 설정한 경우
3. 라이브 마이그레이션의 경우 DBMS 서비스를 하고있을 경우에도, 강제 라이브 마이그레이션을 진행 시켰을때 데이터에 대한 무결성이 나타나지 않았습니다.
4. 라이브 마이그레이션이 이루어지는 1초내 시간동안은 리소스의 사용량이 평균 대비 높고, N/W에 대한 패킷처리량이 줄어드는 현상을 보이고, 최대 1초내  프레임이 순간 높아지는 범위를 확인했으나 높아진 범위가 내부 기준에 어느정도 충족하여 실제 라이브환경에 도입하였으며 라이브 마이그레이션 발생시 실제 사용자가 MMORPG 환경에서도 체감하기 힘듭니다.

참조

예약된 EC2 유지 관리 작업 파악 및 준비

Setting instance availability policies | Compute Engine Documentation

유지 관리 및 업데이트 - Azure Virtual Machines

Handling GPU host maintenance events | Compute Engine Documentation

Live Migration | Compute Engine Documentation | Google Cloud

Storing and retrieving instance metadata