5.3. 迁移虚拟机
您可以通过创建 MTV 自定义资源(CR)从命令行(CLI)迁移虚拟机。
您必须为集群范围的 CR 指定一个名称。
您必须为命名空间范围 CR 指定名称和命名空间。
使用一个或多个开放虚拟设备(OVA)文件作为源提供程序进行迁移是一个技术预览。
使用一个或多个开放虚拟设备(OVA)文件作为源提供程序进行迁移只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/。
使用 OpenStack 源提供程序进行迁移只支持仅使用 Cinder 卷的虚拟机。
先决条件
- 仅 VMware:在所有集群可以访问的安全 registry 中必须有 VMware Virtual Disk Development Kit(VDDK)镜像。
- 仅 Red Hat Virtualization (RHV):如果您要迁移带有直接 LUN 磁盘的虚拟机,请确保虚拟机应该运行的节点可以访问后端存储。
- 与从源供应商 复制到目标 供应商的磁盘镜像不同,LUN会从 源供应商中的 虚拟机分离,然后附加到目标供应商中创建的虚拟机(VM)。
- 如果需要回退到源供应商,则 LUN 不会在迁移过程中从源供应商中删除。但是,在将 LUN 重新附加到源供应商中的虚拟机之前,请确保目标环境中的虚拟机不会同时使用 LUN,这可能会导致数据崩溃。
- 不支持迁移光纤通道 LUN。
流程
为源供应商凭证创建
Secret清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ownerReferences部分是可选的。- 2
- 指定源供应商的类型。允许的值有
ovirt,vsphere,openstack,ova, 和openshift。当远程系统可以访问时,需要该标签来验证凭证是否正确,并且 RHV 在指定第三方证书时检索 Manager CA 证书。 - 3
- OVA 的
stringData部分有所不同,请注意Secret清单的描述信息。 - 4
- 指定 vCenter 用户、RHV Manager 用户或 OpenStack 用户。
- 5
- 指定用户密码。
- 6
- 指定
<true> 来跳过证书验证,这会进行不安全的迁移,然后不需要证书。不安全的迁移意味着传输的数据通过不安全的连接发送,并可能会公开敏感数据。指定 <false> 验证证书。 - 7
- 仅 OpenStack only:指定域名。
- 8
- 仅限 OpenStack:指定项目名称。
- 9
- 仅限 OpenStack:指定 OpenStack 区域的名称。
- 10
- 仅 RHV 和 OpenStack:对于 RHV,请输入 Manager CA 证书,除非它被第三方证书替代,在这种情况下,请输入 Manager Apache CA 证书。您可以在 https://<engine_host>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA 中检索 Manager CA 证书。对于 OpenStack,请输入用于连接源环境的 CA 证书。当
insecureSkipVerify被设置为 <true> 时,不使用该证书。 - 11
- 指定 API 端点 URL,例如
https://<vCenter_host>/sdk用于 vSphere,https://<engine_host>/ovirt-engine/api用于 RHV,或者https://<identity_service>/v3用于 OpenStack。 - 12
- 仅 VMware:指定 vCenter SHA-1 指纹。
- 13
- 仅 OpenShift:具有
cluster-admin特权的服务帐户的令牌。
注意OVA
Secret清单的stringData部分如下:stringData: url: <nfs_server:/nfs_path>
stringData: url: <nfs_server:/nfs_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
nfs_server: 创建共享的服务器的 IP 或主机名。nfs_path: 存储 OVA 文件的服务器上的路径。为源供应商创建
Provider清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 仅限 VMware:创建一个
Host清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定 VMware
ProviderCR 的名称。 - 2
- 指定 VMware 主机的受管对象引用(moRef)。要检索 moRef,请参阅 检索 VMware vSphere moRef。
- 3
- 指定 VMware 迁移网络的 IP 地址。
创建
NetworkMap清单来映射源和目标网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 允许的值是
pod和multus。 - 2
- 您可以使用
id或name参数来指定源网络。 - 3
- 指定 VMware 网络 moRef、RHV 网络 UUID 或 OpenStack 网络 UUID。要检索 moRef,请参阅 检索 VMware vSphere moRef。
- 4
- 为每个额外 OpenShift Virtualization 网络指定网络附加定义。
- 5
- 仅在
类型为multus时才需要。指定 OpenShift Virtualization 网络附加定义的命名空间。 - 6
- 为每个额外 OpenShift Virtualization 网络指定网络附加定义。
- 7
- 仅在
类型为multus时才需要。在这里,命名空间可以使用namespace属性指定,或使用构建的名称如下: <network_namespace>/<network_name>。 - 8
- 仅 OpenShift。
创建
StorageMap清单来映射源和目标存储:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 允许的值有
ReadWriteOnce和ReadWriteMany。 - 2
- 指定 VMware datastore moRef、RHV 存储域 UUID 或 OpenStack
volume_typeUUID。例如,f2737930-b567-451a-9ceb-2887f6207009。要检索 moRef,请参阅 检索 VMware vSphere moRef。
注意对于 OVA,StorageMap 只能将单个存储(来自 OVA 的所有磁盘都与之关联)映射到目的地上的存储类。
因此,存储在 UI 中被称为 "Dummy storage for source provider <provider_name>"。可选:在
PlanCR 中指定的阶段创建一个Hook清单以在虚拟机中运行自定义代码:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为迁移创建
Plan清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定
PlanCR 的名称。 - 2
- 指定迁移是温迁移还是冷迁移。如果您指定了 warm 迁移,且没有为
Migration清单中的cutover参数指定一个值,则只有 precopy 阶段将运行。 - 3
- 每个计划仅指定一个网络映射和一个存储映射。
- 4
- 指定网络映射,即使要迁移的虚拟机没有分配给网络。在这种情况下,映射可以为空。
- 5
- 指定
NetworkMapCR 的名称。 - 6
- 即使要迁移的虚拟机没有使用磁盘镜像分配,请指定存储映射。在这种情况下,映射可以为空。
- 7
- 指定
StorageMapCR 的名称。 - 8
- 对于 OpenShift Virtualization 以外的所有源供应商,您可以使用
id或name参数来指定源虚拟机。
仅 OpenShift Virtualization 源供应商:您只能使用name参数,而不使用id.参数来指定源虚拟机。 - 9
- 指定 VMware VM moRef、RHV VM UUID 或 OpenStack VM UUID。要检索 moRef,请参阅 检索 VMware vSphere moRef。
- 10
- 仅限 OpenShift Virtualization 源供应商。
- 11
- 可选:为虚拟机指定最多两个 hook。每个 hook 必须在不同的迁移步骤中运行。
- 12
- 指定
HookCR 的名称。 - 13
- 迁移完成后,允许的值是
PreHook,在迁移计划启动或PostHook之前。
创建运行
PlanCR 的Migration清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以将多个
MigrationCR 与一个PlanCR 关联。如果迁移没有完成,您可以在不更改PlanCR 的情况下创建新的MigrationCR,以迁移剩余的虚拟机。检索
MigrationCR 以监控迁移的进度:oc get migration/<migration> -n <namespace> -o yaml
$ oc get migration/<migration> -n <namespace> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow