10.3. 架构


本节论述了 MTV 自定义资源、服务和工作流。

10.3.1. MTV 自定义资源和服务

Migration Toolkit for Virtualization (MTV)作为 Red Hat OpenShift Operator 提供。它将创建和管理以下自定义资源 (CR) 和服务。

MTV 自定义资源

  • Provider CR 存储启用 MTV 连接到并与源和目标供应商交互的属性。
  • NetworkMapping CR 映射源供应商的网络。
  • StorageMapping CR 会映射源和目标供应商的存储。
  • Plan CR 包含具有相同迁移参数和相关网络和存储映射的虚拟机列表。
  • Migration CR 运行一个迁移计划。

    每个迁移计划只能有一个 Migration CR 可以在指定时间运行。您可以为单个 Plan CR 创建多个 Migration CR。

MTV 服务

  • Inventory 服务执行以下操作:

    • 连接到源和目标供应商。
    • 维护本地清单以进行映射和计划。
    • 存储虚拟机配置。
    • 如果检测到虚拟机配置更改,则运行 Validation 服务。
  • Validation 服务通过应用规则检查虚拟机是否适合迁移。
  • Migration Controller 服务编配迁移。

    当您创建迁移计划时,Migration Controller 服务会验证计划并添加状态标签。如果计划无法验证,计划状态为 Not ready,则计划无法用于执行迁移。如果计划通过验证,计划状态为 Ready,它可用于执行迁移。迁移成功后,Migration Controller 服务会将计划状态更改为 Completed

  • Populator Controller 服务使用卷 Populator 编配磁盘加密。
  • Kubevirt ControllerContainerized Data Import(CDI)Controller 服务处理大多数技术操作。

10.3.2. 高级别迁移工作流

高级别工作流显示用户视图的迁移过程:

  1. 您可以创建一个源供应商、目标供应商、网络映射和存储映射。
  2. 您可以创建一个包含以下资源的 Plan 自定义资源(CR):

    • 源供应商
    • 目标供应商,如果目标集群上没有安装 MTV
    • 网络映射
    • 存储映射
    • 一个或多个虚拟机 (VM)
  3. 您可以通过创建一个引用 Plan CR 的 Migration CR 来运行迁移计划。

    如果出于某种原因无法迁移所有虚拟机,则可以为同一 Plan CR 创建多个 Migration CR,直到虚拟机迁移为止。

  4. 对于 Plan CR 中的每个虚拟机,Migration Controller 服务会在 Migration CR 中记录虚拟机迁移进度。
  5. Plan CR 中每个虚拟机的数据传输完成后,Migration Controller 服务会创建一个 VirtualMachine CR。

    当迁移所有虚拟机时,Migration Controller 服务会将 Plan CR 的状态更新为 Completed。每个源虚拟机的电源状态在迁移后会被维护。

10.3.3. 详细的迁移工作流

您可以使用详细的迁移工作流来排除迁移失败的问题。

工作流描述了以下步骤:

温迁移或迁移到远程 OpenShift 集群:

  1. 当您创建 Migration 自定义资源(CR)来运行迁移计划时,Migration Controller 服务为每个源虚拟机磁盘创建一个 DataVolume CR。

    对于每个 VM 磁盘:

  2. Containerized Data Importer(CDI) 控制器服务根据 DataVolume CR 中指定的参数创建一个持久性卷声明 (PVC)。


  3. 如果 StorageClass 有动态置备程序,则 StorageClass 置备程序会动态置备持久性卷(PV)。
  4. CDI Controller 服务创建一个 importer pod。
  5. importer pod 将虚拟机磁盘流传输到 PV。

    虚拟机磁盘传输后:

  6. 从 VMWare 导入时,Migration Controller 服务会创建一个带有附加到它的 PVC 的转换 pod。

    conversion pod 运行 virt-v2v,它会在目标虚拟机的 PVC 中安装和配置设备驱动程序。

  7. Migration Controller 服务为每个源虚拟机(VM)创建一个 VirtualMachine CR,连接到 PVC。
  8. 如果虚拟机在源环境中运行,Migration Controller 在虚拟机上打开,KubeVirt Controller 服务会创建一个 virt-launcher pod 和 VirtualMachineInstance CR。

    virt-launcher pod 运行 QEMU-KVM,并附加了作为 VM 磁盘的 PVC。

从 RHV 或 OpenStack 冷迁移到本地 OpenShift 集群:

  1. 当您创建 迁移 自定义资源(CR)来运行迁移计划时,Migration Controller 服务为每个源虚拟机磁盘创建一个 PersistentVolumeClaim CR,并在源为 RHV 时创建一个 OvirtVolumePopulator,或者在源是 OpenStack 时创建 OpenstackVolumePopulator CR。

    对于每个 VM 磁盘:

  2. Populator Controller 服务创建一个临时持久性卷声明(PVC)。
  3. 如果 StorageClass 有动态置备程序,则 StorageClass 置备程序会动态置备持久性卷(PV)。

    • Migration Controller 服务创建一个 dummy pod 来绑定 所有 PVC。pod 的名称包含 pvcinit
  4. Populator Controller 服务创建一个 填充器 pod。
  5. 填充器 pod 将磁盘数据传送到 PV。

    虚拟机磁盘传输后:

  6. 临时 PVC 已被删除,初始 PVC 指向带有数据的 PV。
  7. Migration Controller 服务为每个源虚拟机(VM)创建一个 VirtualMachine CR,连接到 PVC。
  8. 如果虚拟机在源环境中运行,Migration Controller 在虚拟机上打开,KubeVirt Controller 服务会创建一个 virt-launcher pod 和 VirtualMachineInstance CR。

    virt-launcher pod 运行 QEMU-KVM,并附加了作为 VM 磁盘的 PVC。

从 VMWare 冷迁移到本地 OpenShift 集群:

  1. 当您创建 Migration 自定义资源(CR)来运行迁移计划时,Migration Controller 服务为每个源虚拟机磁盘创建一个 DataVolume CR。

    对于每个 VM 磁盘:

  2. Containerized Data Importer (CDI) 控制器服务根据 DataVolume CR 中指定的参数创建一个空白持久性卷声明(PVC)。


  3. 如果 StorageClass 有动态置备程序,则 StorageClass 置备程序会动态置备持久性卷(PV)。

对于所有虚拟机磁盘:

  1. Migration Controller 服务创建一个 dummy pod 来绑定 所有 PVC。pod 的名称包含 pvcinit
  2. Migration Controller 服务为所有 PVC 创建一个 转换 pod。
  3. conversion pod 运行 virt-v2v,它将虚拟机转换为 KVM hypervisor,并将磁盘的数据传送到对应的 PV。

    虚拟机磁盘传输后:

  4. Migration Controller 服务为每个源虚拟机(VM)创建一个 VirtualMachine CR,连接到 PVC。
  5. 如果虚拟机在源环境中运行,Migration Controller 在虚拟机上打开,KubeVirt Controller 服务会创建一个 virt-launcher pod 和 VirtualMachineInstance CR。

    virt-launcher pod 运行 QEMU-KVM,并附加了作为 VM 磁盘的 PVC。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.