6.13. 호스트 간 가상 머신 마이그레이션

실시간 마이그레이션을 사용하면 실행 중인 가상 머신을 서비스 중단 없이 물리적 호스트 간에 이동할 수 있습니다. 가상 머신은 새로운 물리적 호스트로 이동하는 동안 계속해서 작동하며 사용자 애플리케이션도 계속해서 실행됩니다. 백그라운드 작업으로 가상 머신의 RAM이 소스 호스트에서 대상 호스트로 복사됩니다. 스토리지 및 네트워크 연결 상태는 변경되지 않습니다.

6.13.1. 실시간 마이그레이션 전제 조건

실시간 마이그레이션을 사용하여 가상 머신의 매끄러운 이동을 통해 일반적인 유지관리 작업을 지원할 수 있습니다. 실시간 마이그레이션을 사용하기 훨씬 전에 사용자의 Red Hat Virtualization 환경이 실시간 마이그레이션을 지원하도록 설정이 올바르게 되어 있는지 확인합니다.
가상 머신의 성공적인 실시간 마이그레이션을 위해 최소한 다음과 같은 것이 필요합니다:
  • 소스 및 대상 호스트 모두 같은 클러스터에 속해 있어야 두 호스트 간의 CPU 호환성이 보장됩니다.

    참고

    서로 다른 클러스터에 있는 가상 머신을 실시간으로 마이그레이션하는 것은 권장되지 않습니다. 현재 유일하게 지원되는 사용 사례는 https://access.redhat.com/articles/1390733에 기록되어 있습니다.
  • 소스 및 대상 호스트 모두 상태가 Up이어야 합니다.
  • 소스 및 대상 호스트 모두 같은 가상 네트워크 및 VLAN에 액세스할 수 있어야 합니다.
  • 소스 및 대상 호스트 모두 가상 머신이 속해 있는 데이터 스토리지 도메인에 액세스할 수 있어야 합니다.
  • 가상 머신의 요구 사항을 지원할 수 있을 만큼 대상 호스트의 CPU 용량이 충분해야 합니다.
  • 가상 머신의 요구 사항을 지원할 수 있을 만큼 대상 호스트의 RAM 용량이 충분해야 합니다.
  • 마이그레이션하는 가상 머신에 cache!=none 사용자 정의 속성이 없어야 합니다.
또한, 최상의 성능을 위해 스토리지 및 관리 네트워크를 분리해서 네트워크의 포화를 방지하는 것이 좋습니다. 가상 머신 마이그레이션 시 호스트 간에 방대한 양의 데이터를 이동하게 됩니다.
관리 네트워크를 사용해서 실시간 마이그레이션이 이루어집니다. 실시간 마이그레이션을 한 번 할 때마다 최대 전송 속도는 30 MBps로 제한되며 동시 마이그레이션 가능 개수도 기본적으로 제한되어 있습니다. 이러한 조치에도 불구하고 동시 마이그레이션으로 인해 관리 네트워크가 잠재적으로 포화 상태가 될 수 있습니다. 네트워크 포화 리스크를 최소화하기 위해 스토리지, 디스플레이, 가상 머신 데이터 등 각각에 대한 논리 네트워크를 따로 생성하는 것이 좋습니다.

6.13.2. 실시간 마이그레이션 최적화

실시간 가상 머신 마이그레이션은 리소스를 많이 사용하는 작업입니다. 다음의 두 가지 옵션을 사용자 환경에 있는 각각의 가상 머신에 대해 클러스터 수준 또는 개별 가상 머신 수준에서 설정하여 실시간 마이그레이션을 최적화할 수 있습니다.
마이그레이션 자동 통합 옵션을 통해 가상 머신의 라이브 마이그레이션 중 자동 컨버전스를 사용하는지 여부를 설정합니다. 워크로드가 큰 대형 가상 머신은 라이브 마이그레이션 중 전송 속도 보다 더 빠르게 더티 메모리 상태가 되어 마이그레이션을 컨버전스하지 못하게 합니다. QEMU의 자동 컨버전스 기능을 통해 가상 머신 마이그레이션 컨버전스를 강제할 수 있습니다. QEMU는 자동으로 컨버전스되지 않음을 감지하고 가상 머신에 있는 vCPU의 스로틀을 감소시킵니다.
마이그레이션 압축 활성화 옵션을 통해 가상 머신의 실시간 마이그레이션 중 마이그레이션 압축을 사용하도록 설정할 수 있습니다. 이 기능은 Xor Binary Zero Run-Length-Encoding을 사용하여 가상 머신 다운 타임 및 메모리를 많이 쓰는 작업을 실행하는 가상 머신이나 스파스 메모리 업데이트 패턴이 있는 애플리케이션의 총 실시간 마이그레이션 시간을 단축할 수 있습니다.
두 옵션 모두 전역에서 비활성화되어 있습니다.

절차 6.27. 가상 머신 마이그레이션 시 자동 통합 및 마이그레이션 압축 설정

  1. 글로벌 수준에서 최적화 설정을 지정합니다:
    1. 글로벌 수준에서 자동 통합을 활성화합니다:
      # engine-config -s DefaultAutoConvergence=True
    2. 글로벌 수준에서 마이그레이션 압축을 활성화합니다:
      # engine-config -s DefaultMigrationCompression=True
    3. 변경 사항을 적용하기 위해 ovirt-engine 서비스를 다시 시작합니다:
      # systemctl restart ovirt-engine.service
  2. 클러스터 수준에서 최적화 설정을 지정합니다.
    1. 클러스터를 선택합니다.
    2. 편집을 클릭합니다.
    3. 스케줄링 정책 탭을 클릭합니다.
    4. 마이그레이션 자동 통합 목록에서 글로벌 설정에서 가져오기, 자동 통합, 또는 자동 통합 해제를 선택합니다.
    5. 마이그레이션 압축 활성화 목록에서 글로벌 설정에서 가져오기, 압축, 또는 압축 해제를 선택합니다.
  3. 가상 머신 수준에서 최적화 설정을 지정합니다:
    1. 가상 머신을 선택합니다.
    2. 편집을 클릭합니다.
    3. 호스트 탭을 클릭합니다.
    4. 마이그레이션 자동 통합 목록에서 클러스터 설정에서 가져오기, 자동 통합, 또는 자동 통합 해제를 선택합니다.
    5. 마이그레이션 압축 활성화 목록에서 클러스터 설정에서 가져오기, 압축, 또는 압축 해제를 선택합니다.

6.13.3. 가상 머신 자동 마이그레이션

어떤 호스트가 유지관리 모드로 전환되면 Red Hat Virtualization Manager는 그 호스트에서 실행 중인 모든 가상 머신의 실시간 마이그레이션을 자동으로 시작합니다. 가상 머신 마이그레이션 중 각 가상 머신의 대상 호스트를 확인해서 클러스터에 걸쳐 로드를 분산합니다.
Manager는 스케줄링 정책에 맞춰 로드 밸런싱 또는 절전 수준을 유지하기 위해 가상 머신의 실시간 마이그레이션을 자동으로 시작합니다. 기본적으로 스케줄링 정책이 정의되어 있지는 않지만 사용자 환경에 가장 적합한 스케줄링 정책을 지정하는 것이 좋습니다. 필요한 경우 특정 가상 머신의 자동 또는 수동 실시간 마이그레이션까지도 비활성화할 수 있습니다.

6.13.4. 가상 머신의 자동 마이그레이션 방지

Red Hat Virtualization Manager에서 가상 머신의 자동 마이그레이션을 비활성화할 수 있습니다. 또한 가상 머신이 특정 호스트에서만 실행되도록 설정해서 가상 머신의 수동 마이그레이션을 비활성화할 수 있습니다.
Red Hat High Availability 또는 Cluster Suite 등의 애플리케이션 고가용성 제품을 사용하는 경우, 자동 마이그레이션을 비활성화하고 가상 머신이 특정 호스트에서 실행되도록 하는 것이 유용합니다.

절차 6.28. 가상 머신의 자동 마이그레이션 방지

  1. 가상 머신 탭을 클릭하고 가상 머신을 선택합니다.
  2. 편집을 클릭합니다.
    가상 머신 편집 창

    그림 6.19. 가상 머신 편집 창

  3. 호스트 탭을 클릭합니다.
  4. 실행 호스트 라디오 버튼을 사용하여 가상 머신이 클러스터 내의 호스트 또는 특정 호스트에서 실행되는지 지정합니다. 해당 사항이 있는 경우 목록에서 특정 호스트 또는 호스트 그룹을 선택합니다.

    주의

    가상 머신을 특정 호스트에 명시적으로 할당하고 마이그레이션을 비활성화하면 Red Hat Virtualization 고가용성 기능을 사용할 수 없으며 그 반대의 경우도 마찬가지입니다. 하나의 특정 호스트에 할당된 가상 머신은 Red Hat High Availability 등의 제삼자 고가용성 제품을 사용하는 경우에만 고가용성 기능을 제공할 수 있습니다. 이러한 제한 사항은 여러 특정 호스트에 할당된 가상 머신의 경우에는 해당되지 않습니다.

    중요

    가상 머신에 직접 연결된 호스트 장치가 있고 다른 호스트가 지정된 경우 이전 호스트는 가상 머신에서 자동으로 제거됩니다.
  5. 마이그레이션 옵션 드롭 다운 목록에서 수동 마이그레이션만 허용 또는 마이그레이션을 허용하지 않음을 선택합니다.
  6. 옵션으로 사용자 정의 마이그레이션 다운 타임 사용 체크 상자를 선택하고 해당 값을 밀리초 단위로 입력합니다.
  7. OK를 클릭합니다.

6.13.5. 가상 머신 수동 마이그레이션

실행 중인 가상 머신은 지정된 호스트 클러스터 내의 아무 호스트에나 실시간 마이그레이션될 수 있습니다. 가상 머신의 실시간 마이그레이션으로 인해 서비스가 중단되지는 않습니다. 특정 호스트의 로드가 너무 높은 경우 다른 호스트로 가상 머신을 마이그레이션하는 것이 특히 유용할 것입니다. 실시간 마이그레이션 전제 조건은 6.13.1절. “실시간 마이그레이션 전제 조건”에서 참조하십시오.

참고

호스트를 유지관리 모드로 전환 시 그 호스트에서 실행 중인 가상 머신은 같은 클러스터 내의 다른 호스트로 자동 마이그레이션됩니다. 이 가상 머신을 수동으로 마이그레이션하지 않아도 됩니다.

참고

서로 다른 클러스터에 있는 가상 머신을 실시간으로 마이그레이션하는 것은 권장되지 않습니다. 현재 유일하게 지원되는 사용 사례는 https://access.redhat.com/articles/1390733에 기록되어 있습니다.

절차 6.29. 가상 머신 수동 마이그레이션

  1. 가상 머신 탭을 클릭하고 실행 중인 가상 머신을 선택합니다.
  2. 마이그레이션을 클릭합니다.
  3. 라디오 버튼을 사용하여 호스트 자동 선택을 선택하거나 대상 호스트 선택을 선택하고 드롭 다운 목록에서 호스트를 지정합니다.

    참고

    호스트 자동 선택 옵션을 선택하는 경우, 시스템에서는 스케줄링 정책에 설정된 로드 밸런싱 및 전원 관리 규칙에 따라 가상 머신을 마이그레이션할 호스트를 결정합니다.
  4. OK를 클릭합니다.
마이그레이션 중 진행 상황은 마이그레이션 진행 상황 표시줄에 표시됩니다. 마이그레이션 완료 후 호스트란이 업데이트되어서 가상 머신이 마이그레이션된 호스트가 표시됩니다.

6.13.6. 마이그레이션 우선 순위 설정

Red Hat Virtualization Manager는 특정 호스트에서 동시에 여러 가상 머신을 마이그레이션하는 요청이 있으면 대기열을 만듭니다. 로드 밸런싱 프로세스는 매분 실행됩니다. 이미 마이그레이션에 관련되어 있는 호스트는 해당 마이그레이션이 완료되기 전까지 마이그레이션 주기에 포함되지 않습니다. 대기열에 마이그레이션 요청에 있고 이를 실행할 수 있는 사용 가능한 호스트가 클러스터 내에 있는 경우 해당 클러스터에 대한 로드 밸런싱 정책에 따라 마이그레이션이 트리거됩니다.
각 가상 머신의 우선 순위를 설정해서 마이그레이션 대기열 순서를 바꿀 수 있습니다. 예를 들어, 업무에 핵심적인 가상 머신을 다른 가상 머신보다 먼저 마이그레이션하도록 설정할 수 있습니다. 우선 순위에 따라 마이그레이션 순서가 정해지므로 우선 순위가 가장 높은 가상 머신부터 마이그레이션됩니다.

절차 6.30. 마이그레이션 우선 순위 설정

  1. 가상 머신 탭을 클릭하고 가상 머신을 선택합니다.
  2. 편집을 클릭합니다.
  3. 고가용성 탭을 선택합니다.
  4. 우선 순위 드롭 다운 목록에서 낮음, 중간, 또는 높음을 선택합니다.
  5. OK를 클릭합니다.

6.13.7. 진행 중인 가상 머신 마이그레이션 취소

가상 머신 마이그레이션이 예상보다 오래 걸리고 있습니다. 사용자 환경을 변경하기 전에 가상 머신이 모두 어디에서 실행 중인지 확인하는 것이 좋습니다.

절차 6.31. 진행 중인 가상 머신 마이그레이션 취소

  1. 마이그레이션 중인 가상 머신을 선택합니다. 이는 가상 머신 리소스 탭에서 마이그레이션 중 상태로 표시됩니다.
  2. 마이그레이션 취소를 클릭합니다.
가상 머신 상태가 마이그레이션 중에서 Up으로 돌아옵니다.

6.13.8. 고가용성 가상 서버의 자동 마이그레이션 시 이벤트 및 로그 알림

가상 서버가 고가용성 기능으로 인해 자동으로 마이그레이션된 경우, 이러한 자동 마이그레이션 내용이 이벤트 탭에 기록되며 문제 해결을 돕기 위해 엔진 로그에도 기록되며, 이는 다음의 예에서 확인하시기 바랍니다:

예 6.1. 웹 관리 포털의 이벤트 탭 알림

Highly Available Virtual_Machine_Name failed. It will be restarted automatically.
Virtual_Machine_Name was restarted on Host Host_Name

예 6.2. Manager engine.log 알림

이 로그는 Red Hat Virtualization Manager의 /var/log/ovirt-engine/engine.log에서 찾을 수 있습니다:
Failed to start Highly Available VM. Attempting to restart. VM Name: Virtual_Machine_Name, VM Id:Virtual_Machine_ID_Number