10.3. 아키텍처
이 섹션에서는 MTV 사용자 지정 리소스, 서비스 및 워크플로우에 대해 설명합니다.
10.3.1. MTV 사용자 정의 리소스 및 서비스
MTV(Migration Toolkit for Virtualization)는 Red Hat OpenShift Operator로 제공됩니다. 다음 CR(사용자 정의 리소스) 및 서비스를 생성하고 관리합니다.
MTV 사용자 정의 리소스
-
공급자
CR은 MTV가 소스 및 대상 공급자에 연결하고 상호 작용할 수 있는 속성을 저장합니다. -
NetworkMapping
CR은 소스 및 대상 공급자의 네트워크를 매핑합니다. -
StorageMapping
CR은 소스 및 대상 공급자의 스토리지를 매핑합니다. -
plan
CR에는 동일한 마이그레이션 매개변수 및 관련 네트워크 및 스토리지 매핑이 있는 VM 목록이 포함되어 있습니다. Migration
CR은 마이그레이션 계획을 실행합니다.마이그레이션 계획당 하나의 마이그레이션 CR만 지정된 시간에 실행할 수 있습니다.
단일
계획
CR에 대해 여러마이그레이션
CR을 생성할 수 있습니다.
MTV 서비스
인벤토리
서비스는 다음 작업을 수행합니다.- 소스 및 대상 공급자에 연결합니다.
- 매핑 및 계획을 위한 로컬 인벤토리를 유지 관리합니다.
- VM 구성을 저장합니다.
-
VM 구성 변경이 감지되면
유효성 검사
서비스를 실행합니다.
-
유효성 검사
서비스는 규칙을 적용하여 마이그레이션을 위한 VM의 적합성을 확인합니다. Migration Controller
서비스는 마이그레이션을 오케스트레이션합니다.마이그레이션 계획을 생성할 때
Migration Controller
서비스는 계획의 유효성을 검사하고 status 레이블을 추가합니다. 계획 검증에 실패하면 계획 상태가Not ready
이고 마이그레이션을 수행하는 데 계획을 사용할 수 없습니다. 계획이 검증을 통과하면 계획 상태가Ready
이며 마이그레이션을 수행하는 데 사용할 수 있습니다. 마이그레이션에 성공하면Migration Controller
서비스가 계획 상태를Completed
로 변경합니다.-
Populator Controller
서비스는 Volume Populators를 사용하여 디스크 전송을 오케스트레이션합니다. -
Kubevirt 컨트롤러
및CDI(Containerized Data Import) 컨트롤러
서비스는 대부분의 기술 작업을 처리합니다.
10.3.2. 고급 마이그레이션 워크플로
상위 수준 워크플로는 사용자 관점에서 마이그레이션 프로세스를 보여줍니다.
- 소스 공급자, 대상 공급자, 네트워크 매핑 및 스토리지 매핑을 생성합니다.
다음 리소스가 포함된
Plan
CR(사용자 정의 리소스)을 생성합니다.- 소스 제공자
- 대상 공급자( MTV가 대상 클러스터에 설치되지 않은 경우)
- 네트워크 매핑
- 스토리지 매핑
- 하나 이상의 VM(가상 머신)
Plan
CR을 참조하는Migration
CR을 생성하여 마이그레이션 계획을 실행합니다.어떠한 이유로든 모든 VM을 마이그레이션할 수 없는 경우 모든 VM이 마이그레이션될 때까지 동일한
Plan
CR에 대해 여러 개의Migration
CR을 생성할 수 있습니다.-
Plan
CR의 각 VM에 대해Migration Controller
서비스는Migration
CR의 VM 마이그레이션 진행 상황을 기록합니다. Plan
CR의 각 VM의 데이터 전송이 완료되면Migration Controller
서비스에서VirtualMachine
CR을 생성합니다.모든 VM이 마이그레이션되면
Migration Controller
서비스는Plan
CR의 상태를Completed
로 업데이트합니다. 각 소스 VM의 전원 상태는 마이그레이션 후 유지됩니다.
10.3.3. 자세한 마이그레이션 워크플로
자세한 마이그레이션 워크플로를 사용하여 마이그레이션 실패 문제를 해결할 수 있습니다.
워크플로우는 다음 단계를 설명합니다.
원격 OpenShift 클러스터의 웜 마이그레이션 또는 마이그레이션:
마이그레이션
계획을 실행하기 위해 마이그레이션 CR(사용자 정의 리소스)을 생성하면Migration Controller
서비스에서 각 소스 VM 디스크에 대한DataVolume
CR을 생성합니다.각 VM 디스크의 경우:
-
CDI(Containerized Data Importer) 컨트롤러
서비스는DataVolume
CR에 지정된 매개변수를 기반으로 PVC(영구 볼륨 클레임)를 생성합니다. -
StorageClass
에 동적 프로비저너가 있는 경우StorageClass
프로비전 프로그램에 의해 PV(영구 볼륨)가 동적으로 프로비저닝됩니다. -
CDI 컨트롤러
서비스는가져오기
Pod를 생성합니다. 가져오기
Pod는 VM 디스크를 PV로 스트리밍합니다.VM 디스크가 전송된 후 다음을 수행합니다.
Migration Controller
서비스는 VMWare에서 가져올 때 연결된 PVC를 사용하여변환
Pod를 생성합니다.변환
Pod는virt-v2v
를 실행하여 대상 VM의 PVC에 장치 드라이버를 설치하고 구성합니다.-
Migration Controller
서비스는 PVC에 연결된 각 소스 VM(가상 머신)에 대한VirtualMachine
CR을 생성합니다. VM이 소스 환경에서 실행된 경우
마이그레이션
컨트롤러는 VM의 전원을 켜면KubeVirt 컨트롤러
서비스에서virt-launcher
Pod 및VirtualMachineInstance
CR을 생성합니다.virt-launcher
Pod는 VM 디스크로 연결된 PVC를 사용하여QEMU-KVM
을 실행합니다.
RHV 또는 OpenStack에서 로컬 OpenShift 클러스터로 콜드 마이그레이션:
마이그레이션 계획을 실행하기 위해
Migration
Controller(사용자 정의 리소스)를 생성할 때Migration Controller
서비스는PersistentVolumeClaim
CR 각 소스 VM 디스크에 대해 생성되며 소스가 RHV일 때OvirtVolumePopulator
CR 또는 소스가 OpenStack인 경우OpenstackVolumePopulator
CR을 생성합니다.각 VM 디스크의 경우:
-
Populat
or 컨트롤러
서비스는 임시 PVC(영구 볼륨 클레임)를 생성합니다. StorageClass
에 동적 프로비저너가 있는 경우StorageClass
프로비전 프로그램에 의해 PV(영구 볼륨)가 동적으로 프로비저닝됩니다.-
Migration Controller
서비스는 모든 PVC 를 바인딩할 더미 Pod를 생성합니다. Pod 이름에pvcinit
가 포함되어 있습니다.
-
-
Populator Controller
서비스는 팝업 Pod를
생성합니다. 팝업 Pod
는 디스크 데이터를 PV로 전송합니다.VM 디스크가 전송된 후 다음을 수행합니다.
- 임시 PVC가 삭제되고 초기 PVC는 데이터와 함께 PV를 가리킵니다.
-
Migration Controller
서비스는 PVC에 연결된 각 소스 VM(가상 머신)에 대한VirtualMachine
CR을 생성합니다. VM이 소스 환경에서 실행된 경우
마이그레이션
컨트롤러는 VM의 전원을 켜면KubeVirt 컨트롤러
서비스에서virt-launcher
Pod 및VirtualMachineInstance
CR을 생성합니다.virt-launcher
Pod는 VM 디스크로 연결된 PVC를 사용하여QEMU-KVM
을 실행합니다.
VMWare에서 로컬 OpenShift 클러스터로 콜드 마이그레이션:
마이그레이션
계획을 실행하기 위해 마이그레이션 CR(사용자 정의 리소스)을 생성하면Migration Controller
서비스에서 각 소스 VM 디스크에 대한DataVolume
CR을 생성합니다.각 VM 디스크의 경우:
-
CDI(Containerized Data Importer) 컨트롤러
서비스는DataVolume
CR에 지정된 매개변수를 기반으로 빈 PVC(영구 볼륨 클레임)를 생성합니다. -
StorageClass
에 동적 프로비저너가 있는 경우StorageClass
프로비전 프로그램에 의해 PV(영구 볼륨)가 동적으로 프로비저닝됩니다.
모든 VM 디스크의 경우:
-
Migration Controller
서비스는 모든 PVC 를 바인딩할 더미 Pod를 생성합니다. Pod 이름에pvcinit
가 포함되어 있습니다. -
Migration Controller
서비스는 모든 PVC에 대한변환
Pod를 생성합니다. 변환
Pod는virt-v2v
를 실행하여 VM을 KVM 하이퍼바이저로 변환하고 디스크의 데이터를 해당 PV로 전송합니다.VM 디스크가 전송된 후 다음을 수행합니다.
-
Migration Controller
서비스는 PVC에 연결된 각 소스 VM(가상 머신)에 대한VirtualMachine
CR을 생성합니다. VM이 소스 환경에서 실행된 경우
마이그레이션
컨트롤러는 VM의 전원을 켜면KubeVirt 컨트롤러
서비스에서virt-launcher
Pod 및VirtualMachineInstance
CR을 생성합니다.virt-launcher
Pod는 VM 디스크로 연결된 PVC를 사용하여QEMU-KVM
을 실행합니다.