9.3. 架构
本节论述了 MTV 自定义资源、服务和工作流。
9.3.1. MTV 自定义资源和服务 复制链接链接已复制到粘贴板!
Migration Toolkit for Virtualization (MTV)作为 Red Hat OpenShift Operator 提供。它将创建和管理以下自定义资源 (CR) 和服务。
MTV 自定义资源
-
ProviderCR 存储启用 MTV 连接到并与源和目标供应商交互的属性。 -
NetworkMappingCR 映射源供应商的网络。 -
StorageMappingCR 会映射源和目标供应商的存储。 -
PlanCR 包含具有相同迁移参数和相关网络和存储映射的虚拟机列表。 MigrationCR 运行一个迁移计划。每个迁移计划只能有一个
MigrationCR 可以在指定时间运行。您可以为单个PlanCR 创建多个MigrationCR。
MTV 服务
Inventory服务执行以下操作:- 连接到源和目标供应商。
- 维护本地清单以进行映射和计划。
- 存储虚拟机配置。
-
如果检测到虚拟机配置更改,则运行
Validation服务。
-
Validation服务通过应用规则检查虚拟机是否适合迁移。 Migration Controller服务编配迁移。当您创建迁移计划时,
Migration Controller服务会验证计划并添加状态标签。如果计划无法验证,计划状态为Not ready,则计划无法用于执行迁移。如果计划通过验证,计划状态为Ready,它可用于执行迁移。迁移成功后,Migration Controller服务会将计划状态更改为Completed。-
Populator Controller服务使用卷 Populators 编排磁盘传输。 -
Kubevirt Controller和Containerized Data Import(CDI)Controller服务处理大多数技术操作。
9.3.2. 高级别迁移工作流 复制链接链接已复制到粘贴板!
高级别工作流显示用户视图的迁移过程:
- 您可以创建一个源供应商、目标供应商、网络映射和存储映射。
您可以创建一个包含以下资源的
Plan自定义资源(CR):- 源供应商
- 目标供应商,如果目标集群上没有安装 MTV
- 网络映射
- 存储映射
- 一个或多个虚拟机 (VM)
您可以通过创建一个引用
PlanCR 的MigrationCR 来运行迁移计划。如果出于某种原因无法迁移所有虚拟机,则可以为同一
PlanCR 创建多个MigrationCR,直到虚拟机迁移为止。-
对于
PlanCR 中的每个虚拟机,Migration Controller服务会在MigrationCR 中记录虚拟机迁移进度。 在
PlanCR 中每个虚拟机的数据传输完成后,Migration Controller服务会创建一个VirtualMachineCR。当迁移所有虚拟机时,
Migration Controller服务会将PlanCR 的状态更新为Completed。每个源虚拟机的电源状态在迁移后会被维护。
9.3.3. 详细的迁移工作流 复制链接链接已复制到粘贴板!
您可以使用详细的迁移工作流来排除迁移失败的问题。
工作流描述了以下步骤:
温迁移或迁移到远程 OpenShift 集群:
当您创建
Migration自定义资源(CR)来运行迁移计划时,Migration Controller服务会为每个源虚拟机磁盘创建一个DataVolumeCR。对于每个 VM 磁盘:
-
Containerized Data Importer(CDI)控制器服务根据DataVolumeCR 中指定的参数创建一个持久性卷声明 (PVC)。 -
如果
StorageClass有动态置备程序,则StorageClass置备程序会动态置备持久性卷(PV)。 -
CDI Controller服务创建一个importerpod。 importerpod 将虚拟机磁盘流传输到 PV。虚拟机磁盘传输后:
从 VMWare 导入时,
Migration Controller服务会创建一个转换pod,并附加了 PVC。conversionpod 运行virt-v2v,它会在目标虚拟机的 PVC 中安装和配置设备驱动程序。-
Migration Controller服务为每个连接到 PVC 的源虚拟机(VM)创建一个VirtualMachineCR。 如果虚拟机在源环境中运行,
Migration Controller会打开虚拟机的电源,KubeVirt Controller服务会创建一个virt-launcherpod 和VirtualMachineInstanceCR。virt-launcherpod 运行QEMU-KVM,并附加了作为 VM 磁盘的 PVC。
从 RHV 或 OpenStack 冷迁移到本地 OpenShift 集群:
当您创建运行迁移计划的
Migration自定义资源(CR)时,为每个源虚拟机磁盘创建一个Migration Controller服务,以及当源为 RHV 时的OvirtVolumePopulator或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服务为每个连接到 PVC 的源虚拟机(VM)创建一个VirtualMachineCR。 如果虚拟机在源环境中运行,
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) Controller服务根据DataVolumeCR 中指定的参数创建一个空白持久性卷声明(PVC)。 -
如果
StorageClass有动态置备程序,则StorageClass置备程序会动态置备持久性卷(PV)。
对于所有虚拟机磁盘:
-
Migration Controller服务创建一个 dummy pod 来绑定 所有 PVC。pod 的名称包含pvcinit。 -
Migration Controller服务为所有 PVC 创建一个转换pod。 conversionpod 运行virt-v2v,它将虚拟机转换为 KVM 管理程序,并将磁盘的数据传送到对应的 PV。虚拟机磁盘传输后:
-
Migration Controller服务为每个连接到 PVC 的源虚拟机(VM)创建一个VirtualMachineCR。 如果虚拟机在源环境中运行,
Migration Controller会打开虚拟机的电源,KubeVirt Controller服务会创建一个virt-launcherpod 和VirtualMachineInstanceCR。virt-launcherpod 运行QEMU-KVM,并附加了作为 VM 磁盘的 PVC。