9.3. 아키텍처

이 섹션에서는 MTV 사용자 지정 리소스, 서비스 및 워크플로우에 대해 설명합니다.

9.3.1. MTV 사용자 정의 리소스 및 서비스

MCO(Migration Toolkit for Virtualization)는 OpenShift Container Platform Operator로 제공됩니다. 다음 CR(사용자 정의 리소스) 및 서비스를 생성하고 관리합니다.

MTV 사용자 정의 리소스

  • 공급자 CR은 MTV가 소스 및 대상 공급자에 연결하여 상호 작용할 수 있는 속성을 저장합니다.
  • NetworkMapping CR은 소스 및 대상 공급자의 네트워크를 매핑합니다.
  • StorageMapping CR은 소스 및 대상 공급자의 스토리지를 매핑합니다.
  • provisioner CR은 지원되는 볼륨 및 액세스 모드와 같이 스토리지 프로비저너의 구성을 저장합니다.
  • plan CR에는 동일한 마이그레이션 매개변수 및 관련 네트워크 및 스토리지 매핑이 있는 VM 목록이 포함되어 있습니다.
  • Migration CR은 마이그레이션 계획을 실행합니다.

    마이그레이션 계획당 하나의 Migration CR만 한 번에 실행할 수 있습니다. 단일 계획 CR에 대해 여러 마이그레이션 CR을 생성할 수 있습니다.

MTV 서비스

  • 인벤토리 서비스는 다음 작업을 수행합니다.

    • 소스 및 대상 공급자에 연결합니다.
    • 매핑 및 계획을 위해 로컬 인벤토리를 유지 관리합니다.
    • VM 구성을 저장합니다.
    • VM 구성 변경이 감지된 경우 유효성 검사 서비스를 실행합니다.
  • 유효성 검사 서비스는 규칙을 적용하여 마이그레이션에 대한 VM의 적합성을 확인합니다.
  • 사용자 인터페이스 서비스는 다음 작업을 수행합니다.

    • MTV CR을 생성하고 구성할 수 있습니다.
    • CR 상태 및 마이그레이션 진행 상황을 표시합니다.
  • Migration Controller 서비스는 마이그레이션을 오케스트레이션합니다.

    마이그레이션 계획을 생성할 때 Migration Controller 서비스는 계획의 유효성을 검사하고 상태 레이블을 추가합니다. 계획 검증에 실패하면 계획 상태가 준비되지 않으며 계획을 사용하여 마이그레이션을 수행할 수 없습니다. 계획에서 검증을 통과하면 계획 상태가 Ready 이며 마이그레이션을 수행하는 데 사용할 수 있습니다. 마이그레이션이 성공하면 마이그레이션 컨트롤러 서비스는 계획 상태를 Completed 로 변경합니다.

  • Kubevirt 컨트롤러CDI(Containerized Data Import) 컨트롤러 서비스는 대부분의 기술 작업을 처리합니다.

9.3.2. 고급 마이그레이션 워크플로

상위 수준 워크플로는 사용자의 관점에서 마이그레이션 프로세스를 보여줍니다.

  1. 소스 공급자, 대상 공급자, 네트워크 매핑 및 스토리지 매핑을 생성합니다.
  2. 다음 리소스를 포함하는 Plan CR(사용자 정의 리소스)을 생성합니다.

    • 소스 제공자
    • 대상 클러스터에 MTV가 설치되어 있지 않은 경우 대상 공급자
    • 네트워크 매핑
    • 스토리지 매핑
    • 하나 이상의 VM(가상 머신)
  3. Plan CR을 참조하는 마이그레이션 CR을 생성하여 마이그레이션 계획을 실행합니다.

    어떠한 이유로든 모든 VM을 마이그레이션할 수 없는 경우 모든 VM이 마이그레이션될 때까지 동일한 Plan CR에 대해 여러 개의 Migration CR을 생성할 수 있습니다.

  4. Plan CR의 각 VM에 대해 Migration Controller 서비스는 VirtualMachine CR을 생성하고 Migration CR에서 VM 마이그레이션 진행 상황을 기록합니다.

    모든 VM이 마이그레이션되면 Migration Controller 서비스가 Plan CR의 상태를 Completed 로 업데이트합니다. 마이그레이션 후 각 소스 VM의 전원 상태가 유지됩니다.

9.3.3. 자세한 마이그레이션 워크플로

자세한 마이그레이션 워크플로를 사용하여 마이그레이션 실패 문제를 해결할 수 있습니다.

워크플로우는 다음 단계를 설명합니다.

  1. 마이그레이션 계획을 실행하기 위해 Migration CR(사용자 정의 리소스)을 생성할 때 Migration Controller 서비스는 각 소스 VM 디스크에 대한 각 소스 가상 머신(VM) 및 DataVolume CR에 대한 VirtualMachine CR을 생성합니다.

    각 VM 디스크에 대해 다음을 수행합니다.

  2. CDI(Containerized Data Importer) 컨트롤러 서비스는 DataVolume CR에 지정된 매개변수를 기반으로 PVC(영구 볼륨 클레임)를 생성합니다.


  3. StorageClass 에 동적 프로비저너가 있는 경우 PV(영구 볼륨)는 StorageClass 프로비전 프로그램에 의해 동적으로 프로비저닝됩니다.
  4. CDI 컨트롤러 서비스는 가져오기 Pod를 생성합니다.
  5. 가져오기 Pod는 VM 디스크를 PV로 스트리밍합니다.

    VM 디스크가 전송된 후 다음을 수행합니다.

  6. Migration Controller 서비스는 PVC에 연결된 변환 Pod를 생성합니다.

    변환 Pod는 대상 VM의 PVC에 장치 드라이버를 설치하고 구성하는 virt-v2v 를 실행합니다.

  7. 대상 VM의 전원이 켜지면 KubeVirt 컨트롤러 서비스는 virt-launcher Pod 및 VirtualMachineInstance CR을 생성합니다.

    virt-launcher Pod는 VM 디스크로 연결된 PVC와 함께 QEMU-KVM 을 실행합니다.