18.3. 详细的迁移工作流
您可以使用详细的迁移工作流来排除迁移失败的问题。
工作流描述了以下步骤:
温迁移或迁移到远程 OpenShift 集群:
当您创建
Migration
自定义资源(CR)来运行迁移计划时,Migration Controller
服务会为每个源虚拟机磁盘创建一个DataVolume
CR。对于每个 VM 磁盘:
-
Containerized Data Importer(CDI)
控制器服务根据DataVolume
CR 中指定的参数创建一个持久性卷声明 (PVC)。 -
如果
StorageClass
有动态置备程序,则StorageClass
置备程序会动态置备持久性卷(PV)。 -
CDI Controller
服务创建一个importer
pod。 importer
pod 将虚拟机磁盘流传输到 PV。虚拟机磁盘传输后:
Migration Controller
服务会在从 VMware 导入时创建一个转换
pod,并附加 PVC。conversion
pod 运行virt-v2v
,它会在目标虚拟机的 PVC 中安装和配置设备驱动程序。-
Migration Controller
服务为每个源虚拟机(VM)创建一个VirtualMachine
CR,连接到 PVC。 如果虚拟机在源环境中运行,则虚拟机上的
Migration Controller
电源,KubeVirt Controller
服务会创建一个virt-launcher
pod 和VirtualMachineInstance
CR。virt-launcher
pod 运行QEMU-KVM
,并附加了作为 VM 磁盘的 PVC。
从 RHV 或 OpenStack 冷迁移到本地 OpenShift 集群:
当您创建
Migration
自定义资源(CR)来运行迁移计划时,Migration Controller
服务为每个源虚拟机磁盘创建一个PersistentVolumeClaim
CR,当源是 RHV 时,一个OvirtVolumePopulator
,或源是 OpenStack 时的OpenstackVolumePopulator
CR。对于每个 VM 磁盘:
-
Populator Controller
服务创建一个临时的持久性卷声明(PVC)。 如果
StorageClass
有动态置备程序,则StorageClass
置备程序会动态置备持久性卷(PV)。-
Migration Controller
服务创建一个 dummy pod 来绑定 所有 PVC。pod 的名称包含pvcinit
。
-
-
Populator Controller
服务创建一个填充器
pod。 填充器
pod 将磁盘数据传输到 PV。虚拟机磁盘传输后:
- 临时 PVC 被删除,初始 PVC 指向带有数据的 PV。
-
Migration Controller
服务为每个源虚拟机(VM)创建一个VirtualMachine
CR,连接到 PVC。 如果虚拟机在源环境中运行,则虚拟机上的
Migration Controller
电源,KubeVirt Controller
服务会创建一个virt-launcher
pod 和VirtualMachineInstance
CR。virt-launcher
pod 运行QEMU-KVM
,并附加了作为 VM 磁盘的 PVC。
从 VMware 冷迁移到本地 OpenShift 集群:
当您创建
Migration
自定义资源(CR)来运行迁移计划时,Migration Controller
服务会为每个源虚拟机磁盘创建一个DataVolume
CR。对于每个 VM 磁盘:
-
Containerized Data Importer (CDI)
控制器服务会根据DataVolume
CR 中指定的参数创建一个空白的持久性卷声明(PVC)。 -
如果
StorageClass
有动态置备程序,则StorageClass
置备程序会动态置备持久性卷(PV)。
对于所有虚拟机磁盘:
-
Migration Controller
服务创建一个 dummy pod 来绑定 所有 PVC。pod 的名称包含pvcinit
。 -
Migration Controller
服务为所有 PVC 创建一个转换
pod。 conversion
pod 运行virt-v2v
,它将虚拟机转换为 KVM hypervisor,并将磁盘的数据传送到对应的 PV。虚拟机磁盘传输后:
-
Migration Controller
服务为每个源虚拟机(VM)创建一个VirtualMachine
CR,连接到 PVC。 如果虚拟机在源环境中运行,则虚拟机上的
Migration Controller
电源,KubeVirt Controller
服务会创建一个virt-launcher
pod 和VirtualMachineInstance
CR。virt-launcher
pod 运行QEMU-KVM
,并附加了作为 VM 磁盘的 PVC。