9.4. 高级别迁移工作流


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

  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。每个源虚拟机的电源状态在迁移后会被维护。

9.4.1. 详细的迁移工作流

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

工作流描述了以下步骤:

温迁移或迁移到远程 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. Migration Controller 服务会在从 VMware 导入时创建一个 转换 pod,并附加 PVC。

    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. 当您创建 Migration 自定义资源(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。

9.4.2. MTV 如何使用 virt-v2v 工具

Migration Toolkit for Virtualization (MTV)使用 virt-v2v 工具将虚拟机(VM)的磁盘镜像转换为与 OpenShift Virtualization 兼容的格式。该工具使迁移变得更加容易,因为它会自动执行使虚拟机使用 OpenShift Virtualization 所需的任务。例如,如果可能,在转换的虚拟机中启用半虚拟化 VirtIO 驱动程序并安装 QEMU 客户机代理。

virt-v2v 包括在 Red Hat Enterprise Linux (RHEL)版本 7 及更高版本中。

9.4.2.1. MTV 迁移中的 virt-v2v 的主要功能

在迁移过程中,MTV 使用 virt-v2v 收集有关虚拟机的元数据,对虚拟机磁盘进行必要的更改,并将包含虚拟机的磁盘复制到 OpenShift Virtualization。

virt-v2v 对虚拟机磁盘进行以下更改,以便为迁移准备它们:

  • 附加组件:

    • VirtIO 驱动程序注入,如网络或磁盘驱动程序。
    • 准备特定于 hypervisor 的工具或代理,如 QEMU 客户机代理安装。
    • 修改引导配置,如更新的引导装载程序或引导条目。
  • 删除:

    • 不必要的或以前的特定于管理程序的文件,如 VMware 工具或 VirtualBox 添加。
    • 旧的网络驱动程序配置,例如删除 VMware 特定的 NIC 驱动程序。
    • 与目标系统不兼容的配置设置,如旧的引导设置。

如果您要从 VMware 或从开放虚拟设备(OVA)文件迁移,virt-v2v 还会在迁移期间或迁移后首次重启虚拟机期间设置其 IP 地址。

注意

您还可以使用 MTV 迁移前或之后运行预定义的 Ansible hook。如需更多信息,请参阅 在 MTV 迁移计划中添加 hook

这些 hook 不一定使用 virt-v2v

9.4.2.2. 自定义、删除和安装文件

MTV 使用 virt-v2v 在转换过程中执行额外的客户机自定义,比如以下操作:

  • 自定义以保留 IP 地址
  • 自定义以保留驱动器符
注意

对于基于 Red Hat Enterprise Linux (RHEL)的客户机,virt-v2v 会尝试从 Red Hat registry 安装客户机代理。如果迁移在分离的环境中运行,安装程序会失败,您必须使用 hook 或其他自动化来安装客户机代理。

如需更多信息,请参阅 man 参考页面:

9.4.2.3. 权限和 virt-v2v

virt-v2v 不需要客户端操作系统本身的权限或访问凭证,因为 virt-v2v 不会针对正在运行的虚拟机运行,而只针对虚拟机的磁盘运行。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat