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