[TIL 230211] 가상머신 라이브 마이그레이션

도한·2023년 2월 11일
1

Today I Learned

목록 보기
1/1
post-thumbnail

🎞️ 라이브 마이그레이션?

라이브 마이그레이션(Live Migration)은 한 대의 물리 호스트에서 실행되고 있는 가상머신을 다운타임 등의 악영향 없이 다른 호스트로 이동하는 과정을 의미합니다.

라이브 마이그레이션은 가상화의 주요단계로서 현재 운영체제를 사용하여 가상머신의 전체를 이동할 수 있으므로 로드 벨런싱 및 시스템 유지보수 등 호스트 이동이 필요한 모든 경우에 수행됩니다.

이를 지원하는 유명한 가상화 소프트웨어로는 VMware vMotion, 마이크로소프트 Hyper-V, 오라클 Logical Domains(LDoms) 등이 있습니다.

🤔 어떤 경우에 사용할까?

라이브 마이그레이션은 일반적으로 현재 호스트 시스템에서 유지보수나 업데이트가 필요한 경우 혹은 가상머신을 다른 호스트로 전환해야할 때 수행됩니다.

운영체제 실행 중에 가상머신의 메모리와 네트워크 연결 그리고 저장장치의 정보들이 전송됩니다.

라이브 마이그레이션을 통해 하드웨어와 소프트웨어를 명확하게 분리, 관리할 수 있으며, 데이터 센터 및 클러스터의 사용자와 운영자 간에 문제가 분리됩니다.

이러한 이유로 라이브 마이그레이션의 경우 클러스터 관리자에게 유용합니다.

❗ 라이브 마이그레이션의 장점?

라이브 마이그레이션을 사용하면 클러스터의 관리자들은 다양한 하드웨어들을 하나의 일관된 관리 도메인으로 통합할 수 있으며, 유지보수를 위해 특정 물리 머신을 서비스에서 삭제하거나 기존 호스트에 문제가 생겼을 경우 쉽게 해결 및 관리할 수 있습니다.

OS 인스턴스(애플리케이션 포함)를 하나 이상의 대체 호스트로 이동하여 기존 인스턴스를 삭제하거나, 기존 호스트에 문제가 있을 경우 클러스터 내의 시스템 간에 OS 인스턴스를 재배치하여 해결할 수 있습니다. 과제할 때 파일 삭제 될까봐 수정할 때는 복사해놓고 하는 거랑 같음

뿐만아니라, OS 전체 시스템과 모든 애플리케이션을 하나의 유닛으로 마이그레이션함으로써 프로세스 수준의 마이그레이션 접근 방식과 관한 어려움을 해결할 수 있으며, 마이그레이션된 프로세스를 대신하여 서비스 메모리에 접근하거나 시스템콜을 사용할 수 있고 이를 위해 네트워크에 엑세스 할 수 있어야 한다는 종족성에 관한 문제또한 해결됩니다.

이처럼 라이브 마이그레이션은 보다 효율적으로 로드 밸런싱을 지원하며 관리자가 백그라운드에서 보안 업데이트와 같은 유지 보수 작업을 관리하는 동안에도 애플리케이션이 계속 실행되게 할 수도 있습니다.

심지어 cpu, 네트워크인터페이스 카드, 메모리등의 하드웨어가 동작을 정지해도 계속 실행됩니다.

🗃️ 라이브 마이그레이션의 과정은?

라이브 마이그레이션은 메모리에 있는 데이터를 대상으로하는 물리적 시스템으로 전송하는 것으로 시작됩니다.

모든 데이터가 전송되면 대상으로 하는 호스트에 CPU, 메모리 및 스토리지로 구성된 운영 리소스의 상태(operational resource state)가 복사됩니다.

그 후, 대상으로하는 호스트에 기존의 가상머신에서 설치되어 있던 애플리케이션이 설치됩니다.

이 과정을 통해 다운타임이 최소화됩니다. 다운타임을 완전히 회피하는 것은 불가능하지만, Pre-Paging 과 메모리의 확률밀도함수를 사용하여 다운타임을 더욱 줄일 수 있습니다.

아래는 과정별 설명입니다.
라이브 마이그레이션은 단계별로 수행됩니다.

0: 이행 전 또는 준비

마이그레이션 전에 대상 호스트(호스트 A)가 미리 선택되며, 가상머신이 클라이언트 측에서 활성화됩니다. 하이퍼바이저는 소스 파일에서 대상 파일로 메모리 페이지도 복제합니다.

1: 예약

마이그레이션 요청이 호스트 A에서 호스트 B로 전달됩니다.이 요청을 초기화하면 호스트 B는 필요한 크기의 VM 컨테이너를 예약합니다. 그러나, 리소스를 보호할 수 없는 경우 VM은 영향을 받지 않고 호스트 A에서 계속 실행됩니다.

2: 반복(반복) Pre-copy

Pre-copy 마이그레이션은 반복적인 푸시 단계, 중지/복사 단계를 결합하여 이루어 집니다. 이렇게 되면 호스트 A의 모든 페이지가 호스트 B로 전송되며 이후의 반복에서는, 전송 프로세스 중에 변경 또는 사라진 페이지만 고려되게 됩니다.

3: 정지 및 복사

실행 중인 OS 인스턴스가 호스트 A에서 일시 중단되고 네트워크 트래픽이 호스트 B로 리디렉션됩니다. CPU 상태 및 기타 불일치한 메모리 페이지는 호스트 B로 전송됩니다. 마지막으로 두 호스트 모두에 일시 중단된 VM 복사본이 생성되며, A의 복사본은 기본 복사본으로 간주됩니다. 이렇게 되면 장애가 발생할 경우 A에서 마이그레이션을 재개할 수 있습니다.

4: 약속

그 후, 호스트 B는, 호스트 A에게 OS 이미지를 수신했다고 통지합니다. 호스트 A는 이 메시지를 확인하며, 이것이 라이브 마이그레이션의 커밋입니다. 이제 호스트 B가 기본 호스트가 되고 호스트 A는 기존 VM이므로 삭제할 수 있습니다.

5: 액티베이션

마이그레이션 된 VM이 현재 기본 호스트인 B에서 활성화됩니다. 디바이스 드라이버가 새로운 머신에 재접속하여 바뀐 IP 주소가 마이그레이션 후의 코드로 변경됩니다. 이제 호스트 B에서 정상적인 작업이 재개됩니다.

라이브 이행 요건


라이브 마이그레이션은 일관된 VM 이미지를 하나 이상의 호스트에 유지해야합니다. 단, 마이그레이션 프로세스의 성공 여부는 다음 두 가지 주요 요건에 달려 있습니다.

  1. 기존 호스트는 안정 상태를 유지합니다.

    마이그레이션 프로세스 전체에서 커밋 단계까지 기존 호스트는 중단 없이 안정되어 있어야 합니다.

  2. 가상머신의 일시정지 및 재개:
    악영향 없이 물리 호스트에서 VM을 일시정지 및 재개할 수 있어야 합니다.


📖 레퍼런스


Copyright 2023. Dohan all rights reserved.

profile
IT와 개발을 좋아하는 학생이자 굇수를 꿈꾸는

0개의 댓글