9.3. 架构
本节论述了 MTV 自定义资源、服务和工作流。
9.3.1. MTV 自定义资源和服务
Migration Toolkit for Virtualization(MTV) 作为 OpenShift Container Platform Operator 提供。它将创建和管理以下自定义资源 (CR) 和服务。
MTV 自定义资源
-
Provider
CR 存储启用 MTV 连接到并与源和目标供应商交互的属性。 -
NetworkMapping
CR 映射源供应商的网络。 -
StorageMapping
CR 会映射源和目标供应商的存储。 -
Provisioner
CR 存储存储存储置备程序的配置,如支持的卷和访问模式。 -
Plan
CR 包含具有相同迁移参数和相关网络和存储映射的虚拟机列表。 Migration
CR 运行一个迁移计划。每个迁移计划只能有一个
Migration
CR 可以在指定时间运行。您可以为单个Plan
CR 创建多个Migration
CR。
MTV 服务
Inventory
服务执行以下操作:- 连接到源和目标供应商。
- 维护本地清单以进行映射和计划。
- 存储虚拟机配置。
-
如果检测到虚拟机配置更改,则运行
Validation
服务。
-
Validation
服务通过应用规则检查虚拟机是否适合迁移。 User Interface
服务执行以下操作:- 可让您创建和配置 MTV CR。
- 显示 CR 的状态和迁移的进度。
Migration Controller
服务编配迁移。当您创建迁移计划时,
Migration Controller
服务会验证计划并添加状态标签。如果计划无法验证,计划状态为Not ready
,则计划无法用于执行迁移。如果计划通过验证,计划状态为Ready
,它可用于执行迁移。迁移成功后,Migration Controller
服务会将计划状态更改为Completed
。-
Kubevirt Controller
和Containerized Data Import(CDI)Controller
服务处理大多数技术操作。
9.3.2. 高级别迁移工作流
高级别工作流显示用户视图的迁移过程:
- 您可以创建一个源供应商、目标供应商、网络映射和存储映射。
您可以创建一个包含以下资源的
Plan
自定义资源(CR):- 源供应商
- 目标供应商,如果目标集群上没有安装 MTV
- 网络映射
- 存储映射
- 一个或多个虚拟机 (VM)
您可以通过创建一个引用
Plan
CR 的Migration
CR 来运行迁移计划。如果出于某种原因无法迁移所有虚拟机,则可以为同一
Plan
CR 创建多个Migration
CR,直到虚拟机迁移为止。对于
Plan
CR 中的每个虚拟机,Migration Controller
服务会创建一个VirtualMachine
CR,并在Migration
CR 中记录虚拟机迁移进度。当迁移所有虚拟机时,
Migration Controller
服务会将Plan
CR 的状态更新为Completed
。每个源虚拟机的电源状态在迁移后会被维护。
9.3.3. 详细的迁移工作流
您可以使用详细的迁移工作流来排除迁移失败的问题。
工作流描述了以下步骤:
当您创建一个
Migration
自定义资源(CR)来运行迁移计划时,Migration Controller
服务为每个源虚拟机(VM)和DataVolume
CR 创建一个VirtualMachine
CR。对于每个 VM 磁盘:
-
Containerized Data Importer(CDI)
控制器服务根据DataVolume
CR 中指定的参数创建一个持久性卷声明 (PVC)。 -
如果
StorageClass
有动态置备程序,则StorageClass
置备程序会动态置备持久性卷(PV)。 -
CDI Controller
服务创建一个importer
pod。 importer
pod 将虚拟机磁盘流传输到 PV。虚拟机磁盘传输后:
Migration Controller
服务创建一个conversion
pod,并附加了 PVC。conversion
pod 运行virt-v2v
,它会在目标虚拟机的 PVC 中安装和配置设备驱动程序。当目标虚拟机开机时,
KubeVirt Controller
服务会创建一个virt-launcher
pod 和VirtualMachineInstance
CR。virt-launcher
pod 运行QEMU-KVM
,并附加了作为 VM 磁盘的 PVC。