使用 MTV 将 VMware 虚拟机迁移到 Red Hat OpenShift 虚拟化平台

使用“虚拟化版 Migration Toolkit”( for Virtualization,简称MTV),将 VMware vSphere 虚拟机(VM)迁移至 IBM Cloud 上的 Red Hat OpenShift 虚拟化平台。 配置 VDDK 映像、安装 MTV Operator、创建迁移计划、执行热迁移和冷迁移、针对大规模工作负载进行性能调优,以及解决常见的迁移错误。

概述

MTV将虚拟机迁移至 Red Hat OpenShift,该虚拟化平台运行在 Red Hat OpenShift 上。

MTV 支持从以下 VMware vSphere 源提供商进行迁移:

  • VMware vSphere
  • 创建的开放式虚拟设备(OVA VMware vSphere

迁移先决条件和环境要求

软件兼容性

要成功迁移,请安装兼容版本的 Red Hat OpenShift 和 Red Hat OpenShift Virtualization。

对于 MTV 2.9,兼容的软件版本包括:

  • Red Hat OpenShift: 4.19, 4.18, 4.17
  • Red Hat OpenShift 虚拟化:4.19,4.18,4.17
  • VMware vSphere: 6.5 或更高版本

网络要求

所有迁移均需满足以下网络先决条件:

网络稳定性
源环境与 Red Hat OpenShift 虚拟化集群之间的网络连接必须可靠且不中断。
配置完整性
在迁移过程中,请勿更改 IP 地址、虚拟局域网 (VLAN) 或其他网络配置设置,因为 VM 的 MAC 地址将被保留。
网络地址的唯一性
如果您正在将工作负载从 IBM Cloud 经典基础设施迁移出来,请使用 IBM Cloud Transit Gateway 将您的虚拟私有云(VPC)连接到经典基础设施。 在创建用于托管工作负载的 VPC 时,请确保其网络地址前缀不会与连接到您的 IBM Cloud 经典基础设施的其他 VPC 所使用的前缀发生冲突。 创建 VPC 时,请取消选中 “为每个区域创建默认前缀”复选框。 默认前缀在各个 VPC 之间保持一致,这可能会导致路由冲突。 创建 VPC 后,可以根据需要配置地址前缀和子网。
目的地网络
如果映射了多个源网络和目标网络,请为每个额外目标网络创建一个网络连接定义。
必需端口
防火墙必须根据源提供商,允许通过特定端口的流量:
  • VMware vSphere: Transmission Control Protocol ( TCP ) 将 Red Hat OpenShift 节点上的 443 端口(用于库存和磁盘传输认证)和 902 端口(用于磁盘传输数据复制)转发至 VMware vCenter® /ESXi 主机。
  • OVA:将 TCP 的 2049 端口(用于网络文件系统( NFS )服务)以及 TCP 或 User Datagram Protocol ( UDP )的 111 端口(用于远程过程调用( RPC )端口映射器,仅当使用 NFSv4.0 时才需要)从 Red Hat OpenShift 节点映射到包含 OVA 文件的服务器。

来源:VM 先决条件

所有迁移中的源虚拟机必须满足以下先决条件:

媒体状态
迁移前请卸载 ISO 镜像和 CD-ROM。
IP 地址
每张网络接口卡(NIC)必须包含 IPv4 地址或 IPv6 地址之一,也可以同时使用这两种地址。
操作系统(OS)认证
VM 操作系统必须作为转换的客机操作系统通过认证并获得支持。
启动功能
启用了“安全启动”功能的虚拟机可能无法自动迁移,因为这会导致它们无法在目标提供商处启动。 要解决此问题,请在目标设备上禁用安全启动。
VMware 客座特工
VMware 启用 “保留静态 IP 地址”功能时,需要安装 Tools 或 open-vm-tools。

VM 命名

VM 名称必须符合这些准则:

  • VM 的名称不得包含句号 (.)。MTV 会自动将 VM 名称中的任何句点改为破折号 (-)。
  • VM 的名称在 Red Hat OpenShift 虚拟化环境中必须是唯一的(即,不得与任何其他 VM 的名称相同)。
  • 如果 VM 的名称不符合规则,MTV会自动生成一个新名称。 MTV 会移除被排除的字符,将大写字母转换为小写,并将所有下划线(_ )替换为连字符(- )。

加密支持

MTV 支持使用以下加密类型迁移虚拟机:

  • Linux® 虚拟机:Linux 统一密钥设置(LUKS)。
  • Windows® 虚拟机:BitLocker。

VMware vSphere 具体先决条件

VMware 工具

若要使用迁移前钩子访问虚拟机,请在源虚拟机上安装 VMware Tools或 open-vm-tools。

VDDK 图片

从 VMware vSphere 迁移虚拟磁盘时,请使用 VMware 虚拟磁盘开发工具包(VDDK),以加快迁移速度。

  • VDDK 镜像为可选项。 然而,如果省略该参数,迁移速度可能会大幅降低;当 VM 由 VMware vSAN 提供支持时,该参数是必需的。

VMware 特权

您必须以至少具备 VMware 所需最低权限的身份登录。 更多信息,请参阅 VMware 特权。

温和的迁移要求

要执行热迁移,必须在虚拟机( VM )以及每个 VM 磁盘上启用“已更改块跟踪”(CBT)。 预复制阶段的增量复制依赖于 CBT 快照。 单个 VM 最多支持 28 个 CBT 快照。

请为所有虚拟机禁用休眠功能,因为 MTV 不支持迁移处于休眠状态的虚拟机,且若未禁用休眠功能,迁移将失败。

ESXi 主机配置

如果迁移计划要求从单个 ESXi( VMware vSphere 虚拟机管理程序)主机同时迁移 10 台以上的虚拟机,请增加该主机的网络文件复制(NFC)服务内存。

  • NFC服务内存默认仅支持10个并行连接,这对于超过10个并发 VM 迁移操作而言是不够的。
  • 将 maxMemory 的值更改为 1000000000 (1 GB),然后重启 hostd 服务。

Windows 热迁移

若要从 VMware 进行 Microsoft Windows® 虚拟机的热迁移,则客机 VM 中的卷影复制服务 (VSS) 必须处于运行状态。 有关详细信息,请参阅 源虚拟机先决条件。

MTV Operator 的安装与配置

您可以通过 Red Hat OpenShift Web控制台或命令行界面(CLI)安装MTV操作员,该操作员包含适用于 Red Hat OpenShift Web控制台的MTV插件。

在安装 MTV Operator 之前,请确保满足以下先决条件:

  • 安装 Red Hat OpenShift 4.19、4.18 或 4.17。
  • 在 Red Hat OpenShift 迁移目标集群上安装 Red Hat OpenShift 虚拟化操作员。
  • 使用 cluster-admin 权限登录。

如需了解更多信息,请参阅 《 使用 Red Hat OpenShift Web控制台安装MTV操作员 》。

除非另有说明,否则请通过修改 ForkliftController 自定义资源(CR)或使用Web控制台 “概览” 页面中的 “设置” 部分来配置MTV操作员设置。

请使用 MTV 概览页面中的 “设置”选项卡来调整以下关键参数:

  • VM 迁移的最大并发数(默认值为20)
  • 控制器主容器 CPU 限值
  • 控制器主容器内存限制
  • 控制器清单容器内存限制
  • 预复制间隔(分钟)
  • 快照轮询间隔

更多信息,请参阅 配置 MTV 操作员。

从 VMware vSphere 迁移虚拟机(UI工作流)

添加 VMware vSphere 源提供程序

  1. 转到 “虚拟化迁移” >“提供商”,然后单击“创建提供商”。
  2. 选择 VMware 并指定提供商资源名称和端点类型( vCenter 或 ESXi)。
  3. 请提供 SDK 端点的 URL,例如 https://vCenter-host-example.com/sdk。
  4. 创建一个 VDDK 镜像并指定其路径。 使用 VDDK 映像可加快迁移速度,且当虚拟机基于 VMware vSAN 时,必须使用 VDDK 映像。
  5. 输入 vCenter 或 ESXi 凭据。
  6. 选择一种 CA 证书验证选项:使用自定义 CA 证书、使用系统 CA 证书,或跳过证书验证。
  7. 单击创建提供商。

制定迁移计划

  1. 常规:定义计划名称、项目、源提供商和目标提供商/项目。

    • 通过点击“制定计划”,从“虚拟化迁移”>“迁移计划”中启动向导。
    • 指定计划名称、计划项目、源提供商、目标提供商和目标项目。
  2. 虚拟机

    • 选择要迁移的虚拟机。

    单个计划不能包含超过 500 个虚拟机或 500 个磁盘。

  3. 定义网络拓扑图

    • 选择使用现有的、无所有者的网络图(这将创建一份副本并将其附加到方案中),或者使用新的网络图(由该方案拥有)。
    • 如果您正在创建一张新地图,请定义源网络与目标网络之间的映射关系。
  4. 选择迁移类型

    • 选择 “冷迁移” (默认)(数据复制期间 VM 将停止运行)或 “温迁移” (预复制阶段将运行 VM,从而最大限度地减少停机时间)。
  5. 其他设置(可选)

    • 磁盘解密密码短语:输入 LUKS 加密设备的密码短语。
    • 传输网络:可选择覆盖提供商的默认传输网络。 如果 Red Hat OpenShift 传输网络的最大传输单元(MTU)发生变更,则必须相应调整 VMware 迁移网络的MTU。
    • 保留静态 IP 地址:选中 “保留静态 IP 地址”复选框,系统将尝试保留静态 IP 地址,从而减轻因迁移过程中 vNIC 发生变更而导致的损失。
    • 根设备:对于支持多系统启动的虚拟机,请手动指定根设备的磁盘位置,例如:/dev/sdb2。
    • 共享磁盘:对于冷迁移,共享磁盘默认处于启用状态。 共享磁盘使用多写入器选项,会减慢迁移过程。
    • 请勾选 “启用钩子” 复选框,以选择迁移前(迁移前对源 VM 进行的操作)或迁移后(迁移后对已迁移的 VM 进行的操作)。
    • 您必须指定钩子运行程序的镜像(默认是 quay.io/kubev2v/hook-runner ),并提供 Ansible® 中的 playbook。 每个计划只允许使用一个迁移前钩子和一个迁移后钩子。
    • 当您使用 “保留静态 IP 地址”功能并切换到第 2 层主用户定义网络 (UDN) 或集群用户定义网络 (CUDN) 时,源 VM 必须处于开机状态,并运行 VMware 来宾代理。 “保留静态 IP”功能不适用于二级网络。
  6. 复查并创建

    • 审查所有计划细节。 要编辑任何详细信息,请点击 “编辑”步骤链接。
    • 点击 “创建计划”。 MTV批准了该计划。 如果验证成功,将打开 “计划详情”页面。

创建后的配置

  1. 请仔细查看 “计划详情”页面,特别是向导中未包含的设置。

    • “计划”详细信息页面包含向导中未显示的重要设置。
    • 查看计划设置部分,了解可选配置。 要编辑任何设置,请使用 “选项”菜单。
    • 检查“条件”部分;必须解决所有列出的条件,计划才能成功运行。

运行与监控

  1. 迁移前的准备工作

    • 在开始热迁移之前,请检查 VM 快照,并提交/删除快照,以确保虚拟机拥有足够的可用CBT快照。
    • 授予目标命名空间的 default 服务账户访问权限,以便从 Red Hat OpenShift MTV命名空间拉取VDDK镜像。
    • 验证迁移计划,并解决任何警告或错误。
    • 必要时,对源虚拟机进行完整备份。
  2. 开始迁移

    • 转到 “迁移” > “虚拟化方案”。
    • 单击迁移计划旁边的开始并确认。
    • 请为即将导入的虚拟机禁用 vMotion,、svMotion, 以及迁移功能,以防止数据损坏。
  3. 热迁移切换

    • 对于热迁移,初始数据传输(预复制阶段)会立即开始。
    • 要启动切换阶段(该阶段将关闭源 VM 并传输最终增量数据),请单击 “切换”。
    • 在切换窗口中,您可以“设置切换”(安排时间和日期)或“取消切换”(取消已安排的时间)。
    • 在切换之前,请停止源虚拟机上的应用程序、中间件和数据库服务,以尽量减少数据变更。 MTV 不需要执行此操作。 然而,停止这些服务可以降低切换过程中出现数据不一致的风险。
  4. 监视

    • “迁移状态”链接会显示整体进度、成功/失败次数以及当前状态。
    • “虚拟机”选项卡提供了 VM 的具体状态、开始/结束时间、已复制的数据以及进度条。
    • 要查看正在运行或已完成迁移的日志,请在 “虚拟机” 选项卡中选择一个 VM,然后点击 “Pod”部分中的 “日志” 链接。
  5. 迁移后的限制

    • 请勿在迁移开始后对 VM 进行快照,因为这可能会导致迁移失败。
  6. 迁移后的活动

    • 配置网络设置,必要时更改 IP。
    • 配置基于角色的访问控制(RBAC)以及用于管理 VM 的服务账户。
    • 如有必要,请更新域名系统(DNS)记录。
    • 验证 DNS 解析和网络策略。
    • 在目标虚拟机上启动应用程序和数据库(如果它们在切换前已停止)。
    • 验证迁移虚拟机上的应用程序功能。

性能和故障排除

  1. 针对迁移吞吐量的网络、存储和主机调优

    • 确保网络和存储速度快:无论是 VMware 还是 Red Hat OpenShift 容器平台(OCP)环境,都需要快速的存储和网络速度。
    • 高吞吐量:为获得最佳效果,请确保 VMware 的网络连接具备高吞吐量(至少为10千兆以太网或10 GiB 网络连接),以便接收速率与ESXi数据存储的读取速率保持一致。
    • 观测到的速度:每个 ESXi 主机的 vmnic 平均网络传输速率在 200 至 325 MiB/s 之间。
    • 主机设置:尽可能将 ESXi 主机的 BIOS 配置文件和主机电源管理设置设为 “高性能”。 测试表明,在传输超过 10 台虚拟机时,数据存储的平均读取速率提高了 15 MiB。
  2. 并发性

    • 最大并发传输数(MAX_VM_INFLIGHT ):使用 MAX_VM_INFLIGHT MTV变量来控制每个ESXi主机允许的最大 VM 传输并发数;默认值为20。
    • 对于将 VMware 进行冷迁移至本地 Red Hat OpenShift 环境的情况,此设置用于控制每个ESXi主机上可同时进行迁移的虚拟机数量。
    • 对于 VMware 暖迁移,可控制每台 ESXi 主机同时迁移的磁盘数量。
    • 并行处理的优势:从单个 ESXi 主机同时启动多台虚拟机的并行迁移,与依次迁移相比,可显著缩短总迁移时间。 同时迁移 10 台虚拟机比依次迁移的速度快三倍。
    • 多台主机:使用多台 ESXi 主机并将虚拟机均匀分布在这些主机上,可以缩短迁移时间。 例如,测试表明,使用 8 台 ESXi 主机同时迁移 80 台虚拟机,其速度是使用单台主机的四倍。
  3. 大规模迁徙

    • 计划限制:单个迁移计划中的虚拟机数量不得超过 500 台,磁盘数量不得超过 500 个。
    • 多个计划:在迁移大量虚拟机时,将一个大型计划拆分为多个中等规模的计划(例如,每个计划包含 100 台虚拟机),可以通过允许并行启动来缩短总迁移时间。
  4. 热迁移调优

    • 磁盘并发限制:测试涉及多达 400 次并行磁盘传输(200 台虚拟机,每台配备两个磁盘)。 为获得最快的迁移速度,请将并行磁盘迁移的数量限制在 200 个或以下,因为超过此阈值后,迁移速度将下降约 25%。
    • 立即切换:为最大限度地缩短整体热迁移时间,并确保每个 VM 仅运行一次预复制,请将切换时间设置为在迁移计划启动后立即进行。
    • 调整预复制间隔:如果在迁移开始和切换之间有充足的时间,请将 controller_precopy_interval 参数(默认值为60分钟)增加到120至240分钟之间,以减少切换前所需的快照总数和磁盘传输量。
  5. 大容量硬盘(1 TB 及以上)

    • 优先级:对于涉及大容量磁盘的迁移,应优先处理MTV相关操作,并确保在此期间没有其他占用大量网络或存储资源的操作同时运行。
    • 流失率较高的虚拟机:对于流失率较高的大型虚拟机(快照之间的数据变化量超过 100 GB),请考虑在计划切换前至少 24 小时,将默认的 60 分钟温迁移时间 controller_precopy_interval 缩短。
    • 冷迁移与热迁移:如果可以接受一定程度的停机时间,对于特别大的单磁盘虚拟机,应选择冷迁移而非热迁移,尤其是在 VM 快照体积较大的情况下。
    • 数据库:对于无法进行快照的连续写入的大型数据库磁盘,可考虑在 MTV 之外使用特定于数据库供应商的复制选项。
  6. 异步输入/输出(AIO)缓冲(仅限冷迁移)

    • 功能:对网络块设备(NBD)传输的NFC参数进行AIO缓冲处理,以期提升冷迁移性能。
    • 冷迁移要求:AIO缓冲仅适用于冷迁移用例,在启动热迁移之前,必须先将其禁用。

故障诊断

如果在迁移过程中遇到错误,请参阅 《 VMware vSphere 到 Red Hat OpenShift Virtualization 的 MTV 迁移故障排除》 一文,了解常见问题的解决方法,包括快照限制、VDDK 提取失败、DNS 解析失败以及静态 IP 保留问题。

其他资源

后续步骤

使用 MTV 完成迁移后,您可以执行以下步骤: