2.6. VMware 的先决条件

以下先决条件适用于 VMware 迁移:

  • 您必须使用兼容版本的 VMware vSphere 。
  • 您必须以至少最小组的 VMware 权限的用户身份登录。
  • 您必须在所有源虚拟机 (VM) 上安装 VMware Tools
  • 如果您正运行 warm 迁移,则必须在虚拟机和 VM 磁盘中启用 已更改的块跟踪 (CBT)
  • 您必须创建一个 VMware Virtual Disk Development Kit (VDDK) 镜像。
  • 您必须获取 vCenter 主机的 SHA-1 指纹。
  • 如果您要从同一迁移计划中的 ESXi 主机迁移超过 10 个虚拟机,您必须增加主机的 NFC 服务内存。
  • 强烈建议您禁用休眠,因为 Migration Toolkit for Virtualization (MTV)不支持迁移休眠的虚拟机。
重要

如果出现电源中断,则禁用休眠的虚拟机可能会丢失数据。但是,如果没有禁用休眠,迁移将失败

注意

MTV 和 OpenShift Virtualization 支持转换 Btrfs 从 VMWare 迁移虚拟机。

VMware 权限

要使用 Migration Toolkit for Virtualization (MTV) 将虚拟机迁移到 OpenShift Virtualization 需要以下最小 VMware 权限集合。

表 2.4. VMware 权限

特权描述

Virtual machine.Interaction 权限:

Virtual machine.Interaction.Power Off

允许关闭一个已启动的虚拟机。此操作关闭客户端操作系统。

Virtual machine.Interaction.Power On

允许打开已关闭的虚拟机并恢复暂停的虚拟机。

Virtual machine.Provisioning 权限:

注意

需要所有 Virtual machine.Provisioning 权限。

Virtual machine.Provisioning.Allow disk access

允许在虚拟机上打开磁盘以实现随机读写访问。主要用于远程磁盘挂载。

Virtual machine.Provisioning.Allow file access

允许操作与虚拟机相关的文件,包括 VMX、磁盘、日志和 NVRAM。

Virtual machine.Provisioning.Allow read-only disk access

允许在虚拟机上打开一个磁盘以实现随机读取访问。主要用于远程磁盘挂载。

Virtual machine.Provisioning.Allow virtual machine download

允许对与虚拟机关联的文件读取操作,包括 VMX、磁盘、日志和 NVRAM。

Virtual machine.Provisioning.Allow virtual machine files upload

允许对与虚拟机关联的文件写操作,包括 VMX、磁盘、日志和 NVRAM。

Virtual machine.Provisioning.Clone template

允许克隆模板。

Virtual machine.Provisioning.Clone virtual machine

允许克隆现有虚拟机并分配资源。

Virtual machine.Provisioning.Create template from virtual machine

允许从虚拟机创建新模板。

Virtual machine.Provisioning.Customize guest

允许自定义虚拟机的客户机操作系统,而无需移动虚拟机。

Virtual machine.Provisioning.Deploy template

允许从模板部署虚拟机。

Virtual machine.Provisioning.Mark as template

允许将现有的关机虚拟机标记为模板。

Virtual machine.Provisioning.Mark as virtual machine

允许将现有模板标记为虚拟机。

Virtual machine.Provisioning.Modify customization specification

允许创建、修改或删除自定义规格。

Virtual machine.Provisioning.Promote disks

允许对虚拟机磁盘提升操作。

Virtual machine.Provisioning.Read customization specifications

允许读取自定义规格。

Virtual machine.Snapshot management 权限:

Virtual machine.Snapshot management.Create snapshot

允许从虚拟机当前状态创建快照。

Virtual machine.Snapshot management.Remove Snapshot

允许从快照历史记录中移除快照。

2.6.1. 创建 VDDK 镜像

Migration Toolkit for Virtualization(MTV) 使用 VMware Virtual Disk Development Kit(VDDK) SDK 从 VMware vSphere 传输虚拟磁盘。

您必须下载 VMware Virtual Disk Development Kit (VDDK),构建 VDDK 镜像,并将 VDDK 镜像推送到您的镜像 registry。您需要 VDDK init 镜像路径来添加 VMware 源供应商。

注意

在公共 registry 中存储 VDDK 镜像可能会违反 VMware 许可证条款。

先决条件

流程

  1. 创建并导航到临时目录:

    $ mkdir /tmp/<dir_name> && cd /tmp/<dir_name>
  2. 在浏览器中,进入 VMware VDDK 版本 7 下载页面
  3. 选择版本 7.0.3.2 并点 Download
  4. 将 VDDK 归档文件保存到临时目录中。
  5. 提取 VDDK 归档:

    $ tar -xzf VMware-vix-disklib-<version>.x86_64.tar.gz
  6. 创建 Dockerfile

    $ cat > Dockerfile <<EOF
    FROM registry.access.redhat.com/ubi8/ubi-minimal
    USER 1001
    COPY vmware-vix-disklib-distrib /vmware-vix-disklib-distrib
    RUN mkdir -p /opt
    ENTRYPOINT ["cp", "-r", "/vmware-vix-disklib-distrib", "/opt"]
    EOF
  7. 构建 VDDK 镜像:

    $ podman build . -t <registry_route_or_server_path>/vddk:<tag>
  8. 将 VDDK 镜像推送到 registry:

    $ podman push <registry_route_or_server_path>/vddk:<tag>
  9. 确保镜像可以被 OpenShift Virtualization 环境访问。

2.6.2. 获取 vCenter 主机的 SHA-1 指纹

您必须获取 vCenter 主机的 SHA-1 指纹,才能创建 Secret CR。

流程

  • 运行以下命令:

    $ openssl s_client \
        -connect <vcenter_host>:443 \ 1
        < /dev/null 2>/dev/null \
        | openssl x509 -fingerprint -noout -in /dev/stdin \
        | cut -d '=' -f 2
    1
    指定 vCenter 主机的 IP 地址或 FQDN。

    输出示例

    01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67

2.6.3. 增加 ESXi 主机的 NFC 服务内存

如果您要从同一迁移计划中的 ESXi 主机迁移超过 10 个虚拟机,您必须增加主机的 NFC 服务内存。否则,迁移将失败,因为 NFC 服务内存限制为 10 个并行连接。

流程

  1. 以 root 用户身份登录 ESXi 主机。
  2. /etc/vmware/hostd/config.xml 中将 maxMemory 改为 1000000000:

    ...
          <nfcsvc>
             <path>libnfcsvc.so</path>
             <enabled>true</enabled>
             <maxMemory>1000000000</maxMemory>
             <maxStreamMemory>10485760</maxStreamMemory>
          </nfcsvc>
    ...
  3. 重启 hostd

    # /etc/init.d/hostd restart

    您不需要重启主机。