将虚拟机迁移到 Red Hat OpenShift Virtualization
使用 Migration Toolkit for Virtualization 将虚拟机从 VMware vSphere、Red Hat Virtualization 或 OpenStack 平台或其他平台迁移到 Red Hat OpenShift Virtualization
摘要
第 1 章 执行迁移 复制链接链接已复制到粘贴板!
当使用 Migration Toolkit for Virtualization (MTV)计划迁移后,您可以将虚拟机从以下源供应商迁移到 OpenShift Virtualization 目的地供应商:
- VMware vSphere
- Red Hat Virtualization(RHV)
- OpenStack
- 由 VMware vSphere 创建的开放虚拟设备(OVAs)
- 远程 OpenShift Virtualization 集群
第 2 章 从 VMware vSphere 迁移 复制链接链接已复制到粘贴板!
从 MTV UI 或命令行运行 VMware 迁移计划。
2.1. 先决条件 复制链接链接已复制到粘贴板!
- 您已计划从 VMware vSphere 迁移。
2.2. 在 MTV UI 中运行迁移计划 复制链接链接已复制到粘贴板!
您可以运行迁移计划,并在 Red Hat OpenShift Web 控制台中查看其进度。
先决条件
- 有效的迁移计划。
流程
在 Red Hat OpenShift web 控制台中,点 Migration > Plans for virtualization。
Plans 列表显示源和目标供应商、正在迁移的虚拟机数量、状态、迁移的日期以及每个计划的描述。
- 点迁移计划旁边的 Start 来启用迁移。
在打开的确认窗口中,单击 Start。
计划 的状态更改为 Running,并显示迁移的进度。
仅限 warm 迁移:
- precopy 阶段会启动。
点 Cutover 完成迁移。
警告开始迁移后不要对虚拟机进行快照。在迁移启动后进行 snaphot 可能会导致迁移失败。
可选:点迁移的 Status 中的链接查看其整体状态和每个虚拟机的状态:
- 左侧的链接表示迁移失败、成功还是持续。它还会报告迁移成功、失败或被取消的虚拟机数量。
右侧的链接会打开 Plan Details 页面的 Virtual Machines 选项卡。对于每个虚拟机,标签会显示以下数据:
- 虚拟机的名称
- 迁移的开始和结束时间
- 复制的数据量
虚拟机迁移的进度管道
警告对于正在导入的虚拟机,必须禁用 vMotion,包括 svMotion 和 relocate,以避免数据崩溃。
可选: 要在迁移的运行时或完成后查看迁移的日志,请执行以下操作:
- 点 Virtual Machines 标签页。
点击您要检查的虚拟机左侧的箭头(>)。
此时会显示虚拟机的详情。
在 Pod link 列中的 Pods 部分,点 Logs 链接。
Logs 选项卡将打开。
注意日志并不总是可用。以下是日志不可用的常见原因:
-
迁移是从 OpenShift Virtualization 迁移到 OpenShift Virtualization。在这种情况下,不涉及
virt-v2v,因此不需要 pod。 - 没有创建 pod。
- pod 已被删除。
- 迁移在运行 pod 前失败。
-
迁移是从 OpenShift Virtualization 迁移到 OpenShift Virtualization。在这种情况下,不涉及
- 要查看原始日志,请点 Raw 链接。
- 要下载日志,请点 Download 链接。
2.2.1. 迁移计划选项 复制链接链接已复制到粘贴板!
在 Red Hat OpenShift web 控制台的 Plans for virtualization 页面中,点迁移计划旁边的 Options 菜单
访问以下选项:
编辑计划 :编辑迁移计划的详细信息。如果计划正在运行或成功完成,则无法编辑以下选项:
- Plan 详情页面的 Settings 部分的所有属性。例如,温或冷迁移、目标命名空间和保留的静态 IP。
- 计划在 Mappings 选项卡上的映射。
- Hook 选项卡上列出的 hook。
- 开始迁移 :只有在相关时才活动。
- 重启迁移 :重启中断的迁移。在选择此选项前,请确保没有错误消息。如果存在,您需要编辑计划。
cutover: 仅限 Warm 迁移。仅在相关时才激活。点 Cutover 打开 Cutover 窗口,它支持以下选项:
- 设置 cutover :为 cutover 设置日期和时间。
- 删除 cutover :取消调度的 cutover。仅在相关时才激活。
重复计划 :创建一个与现有计划相同的虚拟机(VM)、参数、映射和 hook 的新迁移计划。您可以将此功能用于以下任务:
- 将虚拟机迁移到不同的命名空间。
- 编辑归档的迁移计划。
- 编辑具有不同状态的迁移计划,如 failed、canceled、running、critical 或 ready。
archive Plan :删除迁移计划的日志、历史记录和元数据。计划不能编辑或重启。它只能查看、复制或删除。
注意归档计划 不可逆。但是,您可以复制归档的计划。
删除计划 :永久删除迁移计划。您不能删除正在运行的迁移计划。
注意删除计划是 不可逆的。
删除迁移计划不会删除临时资源。要删除临时资源,请在删除前先归档计划。
注意归档的结果,然后删除迁移计划会根据您使用 CLI 或 UI 创建计划及其存储和网络映射而有所不同。
- 如果您使用 UI 创建它们,则迁移计划及其映射不再出现在 UI 中。
- 如果您使用 CLI 创建它们,则映射可能仍然出现在 UI 中。这是因为 CLI 中的映射可以被多个迁移计划使用,但 UI 中创建的映射只能在一个迁移计划中使用。
2.2.2. 取消迁移 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift web 控制台在迁移计划进行时取消部分或所有虚拟机(VM)的迁移。
流程
- 在 Red Hat OpenShift web 控制台中,单击 Plans for virtualization。
- 点正在运行的迁移计划的名称查看迁移详情。
- 选择一个或多个虚拟机,点 Cancel。
点 Yes, cancel 确认取消。
在 Migration details by VM 列表中,取消的虚拟机的状态为 Canceled。未迁移且迁移的虚拟机不受影响。
您可以通过点 Migration Plan 页的迁移计划旁的 Restart 重启迁移。
2.3. 从命令行运行 VMware vSphere 迁移 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)从 VMware vSphere 源供应商迁移。
防病毒软件可能会导致迁移失败。在开始迁移前,强烈建议从源虚拟机中删除这些软件。
MTV 不支持迁移 VMware Non-Volatile Memory Express (NVMe)磁盘。
要迁移具有共享磁盘的虚拟机(VM),请参阅使用 共享磁盘迁移虚拟机。
先决条件
- 如果使用用户定义的网络(UDN),请注意 OpenShift Virtualization 中定义的命名空间名称。
流程
为源供应商凭证创建
Secret清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ownerReferences部分是可选的。- 2
- 指定 vCenter 用户或 ESX/ESXi 用户。
- 3
- 指定 vCenter 用户或 ESX/ESXi 用户的密码。
- 4
- 指定
"true"以跳过证书验证,并指定"false"来验证证书。如果没有指定,则默认为 "false"。跳过证书验证会进行不安全的迁移,然后不需要证书。不安全的迁移意味着传输的数据通过安全连接发送,并可能会公开敏感数据。 - 5
- 如果没有设置此字段并禁用 跳过证书验证 时,MTV 会尝试使用系统 CA。
- 6
- 指定 vCenter 的 API 端点 URL 或 ESX/ESXi,例如
https://<vCenter_host>/sdk。
为源供应商创建
Provider清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建
主机清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定 VMware vSphere
ProviderCR 的名称。 - 2
- 指定 VMware vSphere 主机的 Managed Object Reference (moRef)。要检索 moRef,请参阅 检索 VMware vSphere moRef。
- 3
- 指定 VMware vSphere 迁移网络的 IP 地址。
创建
NetworkMap清单来映射源和目标网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 允许的值有
pod、multus,并忽略。使用忽略以避免在此迁移中将虚拟机附加到这个网络。 - 2
- 您可以使用
id或name参数来指定源网络。对于id,指定 VMware vSphere 网络受管对象参考(moRef)。要检索 moRef,请参阅 检索 VMware vSphere moRef。 - 3
- 为每个额外 OpenShift Virtualization 网络指定网络附加定义。
- 4
- 仅在
类型multus时才需要。指定 OpenShift Virtualization 网络附加定义的命名空间。 - 5
- 如果您使用用户定义的网络(UDN),则其命名空间在 OpenShift Virtualization 中定义。
创建
StorageMap清单来映射源和目标存储:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 允许的值有
ReadWriteOnce和ReadWriteMany。 - 2
- 指定 VMware vSphere 数据存储 moRef。例如,
f2737930-b567-451a-9ceb-2887f6207009。要检索 moRef,请参阅 检索 VMware vSphere moRef。
可选:在
PlanCR 中指定的阶段创建一个Hook清单以在虚拟机中运行自定义代码:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以使用默认
hook-runner镜像或指定自定义镜像。如果指定自定义镜像,则不需要指定 playbook。
输入以下命令为 MTV 迁移创建传输网络的网络附加定义(NAD)。
您可以使用此定义为接口配置 IP 地址,可以从 Dynamic Host Configuration Protocol (DHCP)或静态方式配置。
配置 IP 地址可让接口访问配置的网关。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为迁移创建
Plan清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定
PlanCR 的名称。 - 2
- 指定迁移是 warm -
true- 或 cold -false。如果您指定了 warm 迁移,且没有为Migration清单中的cutover参数指定一个值,则只有 precopy 阶段将运行。 - 3
- 每个计划仅指定一个网络映射和一个存储映射。
- 4
- 指定一个网络映射,即使要迁移的虚拟机没有分配给网络。在这种情况下,映射可以为空。
- 5
- 指定
NetworkMapCR 的名称。 - 6
- 指定一个存储映射,即使要迁移的虚拟机没有使用磁盘镜像分配。在这种情况下,映射可以为空。
- 7
- 指定
StorageMapCR 的名称。 - 8
- 默认情况下,虚拟网络接口控制器(vNIC)在迁移过程中会改变。因此,使用链接到客户端虚拟机中接口名称的静态 IP 地址的 vNIC 会丢失其 IP 地址。要避免这种情况,请将
preserveStaticIPs设置为true。MTV 对缺少 vNIC 属性的任何虚拟机发出警告消息。要检索任何缺少的 vNIC 属性,请在 vSphere 中运行这些虚拟机,以便向 MTV 报告 vNIC 属性。 - 9
- 可选。在计划中为虚拟机指定网络接口模板。模板遵循 Go 模板语法,并可访问以下变量:
-
.networkName:如果目标网络是multus,请添加 Multus 网络附加定义的名称。否则,将此变量留空。 -
.networkNamespace:如果目标网络是multus,请添加 Multus 网络附加定义所在的命名空间。 -
.networkType:指定网络类型。选项:multus或pod。 .NetworkIndex:网络接口的序列索引(0-based)。例子
-
"net-{{.NetworkIndex}}" {{if eq .NetworkType "pod"}}pod{{else}}multus-{{.NetworkIndex}}{{end}}"变量名称不能超过 63 个字符。此规则适用于网络名称网络模板、PVC 名称模板、虚拟机名称模板和卷名称模板。
-
- 10
- 可选。为计划指定持久性卷声明(PVC)名称模板。模板遵循 Go 模板语法,并可访问以下变量:
-
.vmname: 虚拟机的名称。 -
.PlanName: 迁移计划的名称。 -
.DiskIndex:磁盘的初始卷索引。 -
.RootDiskIndex:根磁盘索引。 .shared : Options:true,用于非共享卷的共享卷为false。例子
-
"{{.VmName}}-disk-{{.DiskIndex}}" -
"{{if eq .DiskIndex .RootDiskIndex}}root{{else}}data{{end}}-{{.DiskIndex}}" -
"{{if .Shared}}shared-{{end}}{{.VmName}}-{{.DiskIndex}}"
-
- 11
- 可选:
-
当设置为
true时,MTV 会将一个或多个随机生成的字母数字字符添加到 PVC 名称中,以确保所有 PVC 都有唯一的名称。 当设置为
false时,如果您指定了pvcNameTemplate,则 MTV 不会将此类字符添加到 PVC 的名称中。警告如果将
pvcNameTemplateUseGenerateName设置为false,则生成的 PVC 名称可能不是唯一的,并可能导致冲突。
-
当设置为
- 12
- 确定在使用
virt-v2v工具迁移前是否转换虚拟机,从而使虚拟机与 OpenShift Virtualization 兼容。-
当设置为
false时,默认值 MTV 使用virt-v2v迁移虚拟机。 当设置为
true时,MTV 使用原始复制模式迁移虚拟机,该模式可在不首先转换虚拟机的情况下复制它们。原始复制模式可在不使用
virt-v2v转换虚拟机的情况下复制虚拟机。这可以加快转换速度,迁移运行更广泛的操作系统的虚拟机,并支持使用 Linux Unified Key Setup (LUKS)加密的磁盘,而无需密钥。但是,使用原始复制模式迁移的虚拟机在 OpenShift Virtualization 中可能无法正常工作。有关virt-v2v的更多信息,请参阅 MTV 如何使用 virt-v2v 工具。
-
当设置为
- 13
- 确定当
skipGuestConversion为true时,迁移是否使用 VirtIO 设备或兼容性设备(SATA 总线、E1000E NIC),即原始副本模式用于迁移时。当skipGuestConversion为false时,useCompatibilityMode的设置无效,因为virt-v2v转换始终使用 VirtIO 设备。-
当设置为
true时,SPM 使用迁移过程中的兼容性设备(SATA 总线、E1000E NIC),以确保虚拟机在迁移后可以引导。 -
当设置为
false时,MTV 在迁移过程中使用高性能 VirtIO 设备,virt-v2v则确保虚拟机可在迁移后引导。在使用这个选项前,请验证源虚拟机中已安装了 VirtIO 驱动程序。
-
当设置为
- 14
- 可选:在计划中为虚拟机指定卷接口名称模板。模板遵循 Go 模板语法,并可访问以下变量:
-
.PVCName: 使用这个卷挂载到虚拟机的 PVC 名称。 .VolumeIndex:卷接口(0)的 Sequential 索引。例子
-
"disk-{{.VolumeIndex}}" -
"pvc-{{.PVCName}}"
-
- 15
- 您可以使用
id或name参数指定源虚拟机。如果您使用 UDN,请验证供应商的 IP 地址是否在 UDN 的子网之外。如果 IP 地址位于 UDN 的子网内,则迁移会失败。 - 16
- 指定 VMware vSphere VM moRef。要检索 moRef,请参阅 检索 VMware vSphere moRef。
- 17
- 可选:指定特定虚拟机的网络接口名称。覆盖
spec:networkNameTemplate中设置的值。变量和示例,如调用 9 所示。 - 18
- 可选:指定特定虚拟机的 PVC 名称。覆盖
spec:pvcNameTemplate中设置的值。变量和示例如调用 10 所示。 - 19
- 可选:指定特定虚拟机的卷名称。覆盖
spec:volumeNameTemplate中设置的值。变量和示例,如调用 14 所示。 - 20
- 可选: MTV 会自动为目标虚拟机的名称。您可以使用此参数并输入新名称来覆盖此名称。您输入的名称必须是唯一的,且它必须是有效的 Kubernetes 子域。否则,迁移会自动失败。
- 21
- 可选:为虚拟机指定最多两个 hook。每个 hook 必须在不同的迁移步骤中运行。
- 22
- 指定
HookCR 的名称。 - 23
- 在迁移完成后,允许的值是
PreHook,然后迁移计划启动或PostHook。重要当您将 VMware 7 虚拟机迁移到使用 CentOS 7.9 的 OpenShift 4.13+ 平台时,网络接口的名称会改变,虚拟机的静态 IP 配置无法正常工作。
创建运行
PlanCR 的Migration清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您指定了一个截止时间,请使用 ISO 8601 格式以及 UTC 时间偏移,例如
2024-04-04T01:23:45.678+09:00。
forklift-controller 存在一个无法协调迁移计划的问题,然后返回一个 HTTP 500 错误。当您只在虚拟机上指定用户权限时,会导致此问题。
在 MTV 中,您需要在数据中心级别添加权限,其中包括虚拟机使用的存储、网络、交换机等。然后您必须将权限传播到子元素。
如果您不想添加这个级别的权限,您必须手动将权限添加到虚拟机主机上的每个对象。
2.3.1. 检索 VMware vSphere moRef 复制链接链接已复制到粘贴板!
当您使用命令行使用 Migration Toolkit for Virtualization (MTV)迁移带有 VMware vSphere 源供应商的虚拟机时,您需要了解 vSphere 中特定实体的受管对象引用(moRef),如数据存储、网络和虚拟机。
您可以从 Inventory 服务检索一个或多个 vSphere 实体的 moRef。然后,您可以使用每个 moRef 作为检索另一个实体的 moRef 的参考。
流程
为项目检索路由:
oc get route -n openshift-mtv
oc get route -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检索
Inventory服务路由:oc get route <inventory_service> -n openshift-mtv
$ oc get route <inventory_service> -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检索访问令牌:
TOKEN=$(oc whoami -t)
$ TOKEN=$(oc whoami -t)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索 VMware vSphere 供应商的 moRef :
curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers/vsphere -k
$ curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers/vsphere -kCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检索 VMware vSphere 源供应商的数据存储:
curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers/vsphere/<provider id>/datastores/ -k
$ curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers/vsphere/<provider id>/datastores/ -kCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在本例中,数据存储 v2v_general_porpuse_ISCSI_DC 的 moRef 是 datastore-11,而数据存储 f01-h27-640-SSD_2 的 moRef 是 datastore-730。
2.3.3. 使用命令行界面取消迁移 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)在迁移过程中取消整个迁移或特定虚拟机的迁移。
第 3 章 从 Red Hat Virtualization 迁移 复制链接链接已复制到粘贴板!
从 MTV UI 或命令行运行 Red Hat Virtualization 迁移计划。
3.1. 先决条件 复制链接链接已复制到粘贴板!
- 您已计划从 Red Hat Virtualization 迁移。
3.2. 在 MTV UI 中运行迁移计划 复制链接链接已复制到粘贴板!
您可以运行迁移计划,并在 Red Hat OpenShift Web 控制台中查看其进度。
先决条件
- 有效的迁移计划。
流程
在 Red Hat OpenShift web 控制台中,点 Migration > Plans for virtualization。
Plans 列表显示源和目标供应商、正在迁移的虚拟机数量、状态、迁移的日期以及每个计划的描述。
- 点迁移计划旁边的 Start 来启用迁移。
在打开的确认窗口中,单击 Start。
计划 的状态更改为 Running,并显示迁移的进度。
仅限 warm 迁移:
- precopy 阶段会启动。
点 Cutover 完成迁移。
警告开始迁移后不要对虚拟机进行快照。在迁移启动后进行 snaphot 可能会导致迁移失败。
可选:点迁移的 Status 中的链接查看其整体状态和每个虚拟机的状态:
- 左侧的链接表示迁移失败、成功还是持续。它还会报告迁移成功、失败或被取消的虚拟机数量。
右侧的链接会打开 Plan Details 页面的 Virtual Machines 选项卡。对于每个虚拟机,标签会显示以下数据:
- 虚拟机的名称
- 迁移的开始和结束时间
- 复制的数据量
- 虚拟机迁移的进度管道
可选: 要在迁移的运行时或完成后查看迁移的日志,请执行以下操作:
- 点 Virtual Machines 标签页。
点击您要检查的虚拟机左侧的箭头(>)。
此时会显示虚拟机的详情。
在 Pod link 列中的 Pods 部分,点 Logs 链接。
Logs 选项卡将打开。
注意日志并不总是可用。以下是日志不可用的常见原因:
-
迁移是从 OpenShift Virtualization 迁移到 OpenShift Virtualization。在这种情况下,不涉及
virt-v2v,因此不需要 pod。 - 没有创建 pod。
- pod 已被删除。
- 迁移在运行 pod 前失败。
-
迁移是从 OpenShift Virtualization 迁移到 OpenShift Virtualization。在这种情况下,不涉及
- 要查看原始日志,请点 Raw 链接。
- 要下载日志,请点 Download 链接。
3.2.1. 迁移计划选项 复制链接链接已复制到粘贴板!
在 Red Hat OpenShift web 控制台的 Plans for virtualization 页面中,点迁移计划旁边的 Options 菜单
访问以下选项:
编辑计划 :编辑迁移计划的详细信息。如果计划正在运行或成功完成,则无法编辑以下选项:
- Plan 详情页面的 Settings 部分的所有属性。例如,温或冷迁移、目标命名空间和保留的静态 IP。
- 计划在 Mappings 选项卡上的映射。
- Hook 选项卡上列出的 hook。
- 开始迁移 :只有在相关时才活动。
- 重启迁移 :重启中断的迁移。在选择此选项前,请确保没有错误消息。如果存在,您需要编辑计划。
cutover: 仅限 Warm 迁移。仅在相关时才激活。点 Cutover 打开 Cutover 窗口,它支持以下选项:
- 设置 cutover :为 cutover 设置日期和时间。
- 删除 cutover :取消调度的 cutover。仅在相关时才激活。
重复计划 :创建一个与现有计划相同的虚拟机(VM)、参数、映射和 hook 的新迁移计划。您可以将此功能用于以下任务:
- 将虚拟机迁移到不同的命名空间。
- 编辑归档的迁移计划。
- 编辑具有不同状态的迁移计划,如 failed、canceled、running、critical 或 ready。
archive Plan :删除迁移计划的日志、历史记录和元数据。计划不能编辑或重启。它只能查看、复制或删除。
注意归档计划 不可逆。但是,您可以复制归档的计划。
删除计划 :永久删除迁移计划。您不能删除正在运行的迁移计划。
注意删除计划是 不可逆的。
删除迁移计划不会删除临时资源。要删除临时资源,请在删除前先归档计划。
注意归档的结果,然后删除迁移计划会根据您使用 CLI 或 UI 创建计划及其存储和网络映射而有所不同。
- 如果您使用 UI 创建它们,则迁移计划及其映射不再出现在 UI 中。
- 如果您使用 CLI 创建它们,则映射可能仍然出现在 UI 中。这是因为 CLI 中的映射可以被多个迁移计划使用,但 UI 中创建的映射只能在一个迁移计划中使用。
3.2.2. 取消迁移 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift web 控制台在迁移计划进行时取消部分或所有虚拟机(VM)的迁移。
流程
- 在 Red Hat OpenShift web 控制台中,单击 Plans for virtualization。
- 点正在运行的迁移计划的名称查看迁移详情。
- 选择一个或多个虚拟机,点 Cancel。
点 Yes, cancel 确认取消。
在 Migration details by VM 列表中,取消的虚拟机的状态为 Canceled。未迁移且迁移的虚拟机不受影响。
您可以通过点 Migration Plan 页的迁移计划旁的 Restart 重启迁移。
3.3. 从命令行运行 Red Hat Virtualization 迁移 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)从 Red Hat Virtualization 源供应商迁移。
先决条件
- 如果使用用户定义的网络(UDN),请注意 OpenShift Virtualization 中定义的命名空间名称。
- 如果您要迁移使用直接 LUN 磁盘的虚拟机,请确保 OpenShift Virtualization 目标集群的节点可以访问后端存储。
- 与从源提供程序 复制到目标 提供程序的磁盘镜像不同,LUN会从 源提供程序中的 虚拟机分离,然后附加到目标提供程序中创建的虚拟机(VM)。
- 在迁移过程中,当需要回退到源供应商时,不会从源供应商中删除 LUN。但是,在将 LUN 重新附加到源供应商中的虚拟机之前,请确保目标环境中的虚拟机不会同时使用 LUN,这可能会导致数据崩溃。
流程
为源供应商凭证创建
Secret清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ownerReferences部分是可选的。- 2
- 指定 RHV Manager 用户。
- 3
- 指定用户密码。
- 4
- 指定
"true"以跳过证书验证,并指定"false"来验证证书。如果没有指定,则默认为 "false"。跳过证书验证会进行不安全的迁移,然后不需要证书。不安全的迁移意味着传输的数据通过安全连接发送,并可能会公开敏感数据。 - 5
- 输入 Manager CA 证书,除非被第三方证书替代,在这种情况下,输入 Manager Apache CA 证书。您可以在 https://<engine_host>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA 中检索 Manager CA 证书。
- 6
- 指定 API 端点 URL,例如
https://<engine_host>/ovirt-engine/api。
为源供应商创建
Provider清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建
NetworkMap清单来映射源和目标网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建
StorageMap清单来映射源和目标存储:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:在
PlanCR 中指定的阶段创建一个Hook清单以在虚拟机中运行自定义代码:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以使用默认
hook-runner镜像或指定自定义镜像。如果指定自定义镜像,则不需要指定 playbook。
输入以下命令为 MTV 迁移创建传输网络的网络附加定义(NAD)。
您可以使用此定义为接口配置 IP 地址,可以从 Dynamic Host Configuration Protocol (DHCP)或静态方式配置。
配置 IP 地址可让接口访问配置的网关。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为迁移创建
Plan清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定
PlanCR 的名称。 - 2
- 请参见以下注释。
- 3
- 指定迁移是温迁移还是冷迁移。如果您指定了 warm 迁移,且没有为
Migration清单中的cutover参数指定一个值,则只有 precopy 阶段将运行。 - 4
- 每个计划仅指定一个网络映射和一个存储映射。
- 5
- 指定一个网络映射,即使要迁移的虚拟机没有分配给网络。在这种情况下,映射可以为空。
- 6
- 指定
NetworkMapCR 的名称。 - 7
- 指定一个存储映射,即使要迁移的虚拟机没有使用磁盘镜像分配。在这种情况下,映射可以为空。
- 8
- 指定
StorageMapCR 的名称。 - 9
- 您可以使用
id或name参数指定源虚拟机。如果您使用 UDN,请验证供应商的 IP 地址是否在 UDN 的子网之外。如果 IP 地址位于 UDN 的子网内,则迁移会失败。 - 10
- 指定 RHV VM UUID。
- 11
- 可选:为虚拟机指定最多两个 hook。每个 hook 必须在不同的迁移步骤中运行。
- 12
- 指定
HookCR 的名称。 - 13
- 在迁移完成后,允许的值是
PreHook、在迁移计划启动前或PostHook。
注意-
如果使用自定义 CPU 模型设置了迁移的机器,它将使用目标集群中的 CPU 模型设置,无论
preserveClusterCpuModel的设置是什么。 如果没有使用 自定义 CPU 模型来设置迁移的机器:
-
如果
preserveClusterCpuModel设为 'true',则 MTV 会在 RHV 中运行时根据集群的配置检查虚拟机的 CPU 模型,然后使用该 CPU 模型设置迁移的虚拟机。 -
如果
preserveClusterCpuModel设为 'false',则 MTV 不会设置 CPU 类型,并使用目标集群的默认 CPU 模型设置虚拟机。
-
如果
创建运行
PlanCR 的Migration清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您指定了一个截止时间,请使用 ISO 8601 格式以及 UTC 时间偏移,例如
2024-04-04T01:23:45.678+09:00。
3.3.1. 使用命令行界面取消迁移 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)在迁移过程中取消整个迁移或特定虚拟机的迁移。
第 4 章 从 OpenStack 迁移 复制链接链接已复制到粘贴板!
从 MTV UI 或命令行运行 OpenStack 迁移计划。
4.1. 先决条件 复制链接链接已复制到粘贴板!
- 您已计划从 OpenStack 迁移。
4.2. 在 MTV UI 中运行迁移计划 复制链接链接已复制到粘贴板!
您可以运行迁移计划,并在 Red Hat OpenShift Web 控制台中查看其进度。
先决条件
- 有效的迁移计划。
流程
在 Red Hat OpenShift web 控制台中,点 Migration > Plans for virtualization。
Plans 列表显示源和目标供应商、正在迁移的虚拟机数量、状态、迁移的日期以及每个计划的描述。
- 点迁移计划旁边的 Start 来启用迁移。
在打开的确认窗口中,单击 Start。
计划 的状态更改为 Running,并显示迁移的进度。
警告开始迁移后不要对虚拟机进行快照。在迁移启动后进行 snaphot 可能会导致迁移失败。
可选:点迁移的 Status 中的链接查看其整体状态和每个虚拟机的状态:
- 左侧的链接表示迁移失败、成功还是持续。它还会报告迁移成功、失败或被取消的虚拟机数量。
右侧的链接会打开 Plan Details 页面的 Virtual Machines 选项卡。对于每个虚拟机,标签会显示以下数据:
- 虚拟机的名称
- 迁移的开始和结束时间
- 复制的数据量
- 虚拟机迁移的进度管道
可选: 要在迁移的运行时或完成后查看迁移的日志,请执行以下操作:
- 点 Virtual Machines 标签页。
点击您要检查的虚拟机左侧的箭头(>)。
此时会显示虚拟机的详情。
在 Pod link 列中的 Pods 部分,点 Logs 链接。
Logs 选项卡将打开。
注意日志并不总是可用。以下是日志不可用的常见原因:
-
迁移是从 OpenShift Virtualization 迁移到 OpenShift Virtualization。在这种情况下,不涉及
virt-v2v,因此不需要 pod。 - 没有创建 pod。
- pod 已被删除。
- 迁移在运行 pod 前失败。
-
迁移是从 OpenShift Virtualization 迁移到 OpenShift Virtualization。在这种情况下,不涉及
- 要查看原始日志,请点 Raw 链接。
- 要下载日志,请点 Download 链接。
4.2.1. 迁移计划选项 复制链接链接已复制到粘贴板!
在 Red Hat OpenShift web 控制台的 Plans for virtualization 页面中,点迁移计划旁边的 Options 菜单
访问以下选项:
编辑计划 :编辑迁移计划的详细信息。如果计划正在运行或成功完成,则无法编辑以下选项:
- Plan 详情页面的 Settings 部分的所有属性。例如,温或冷迁移、目标命名空间和保留的静态 IP。
- 计划在 Mappings 选项卡上的映射。
- Hook 选项卡上列出的 hook。
- 开始迁移 :只有在相关时才活动。
- 重启迁移 :重启中断的迁移。在选择此选项前,请确保没有错误消息。如果存在,您需要编辑计划。
cutover: 仅限 Warm 迁移。仅在相关时才激活。点 Cutover 打开 Cutover 窗口,它支持以下选项:
- 设置 cutover :为 cutover 设置日期和时间。
- 删除 cutover :取消调度的 cutover。仅在相关时才激活。
重复计划 :创建一个与现有计划相同的虚拟机(VM)、参数、映射和 hook 的新迁移计划。您可以将此功能用于以下任务:
- 将虚拟机迁移到不同的命名空间。
- 编辑归档的迁移计划。
- 编辑具有不同状态的迁移计划,如 failed、canceled、running、critical 或 ready。
archive Plan :删除迁移计划的日志、历史记录和元数据。计划不能编辑或重启。它只能查看、复制或删除。
注意归档计划 不可逆。但是,您可以复制归档的计划。
删除计划 :永久删除迁移计划。您不能删除正在运行的迁移计划。
注意删除计划是 不可逆的。
删除迁移计划不会删除临时资源。要删除临时资源,请在删除前先归档计划。
注意归档的结果,然后删除迁移计划会根据您使用 CLI 或 UI 创建计划及其存储和网络映射而有所不同。
- 如果您使用 UI 创建它们,则迁移计划及其映射不再出现在 UI 中。
- 如果您使用 CLI 创建它们,则映射可能仍然出现在 UI 中。这是因为 CLI 中的映射可以被多个迁移计划使用,但 UI 中创建的映射只能在一个迁移计划中使用。
4.2.2. 取消迁移 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift web 控制台在迁移计划进行时取消部分或所有虚拟机(VM)的迁移。
流程
- 在 Red Hat OpenShift web 控制台中,单击 Plans for virtualization。
- 点正在运行的迁移计划的名称查看迁移详情。
- 选择一个或多个虚拟机,点 Cancel。
点 Yes, cancel 确认取消。
在 Migration details by VM 列表中,取消的虚拟机的状态为 Canceled。未迁移且迁移的虚拟机不受影响。
您可以通过点 Migration Plan 页的迁移计划旁的 Restart 重启迁移。
4.3. 从命令行运行 OpenStack 迁移 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)从 OpenStack 源提供程序迁移。
先决条件
- 如果使用用户定义的网络(UDN),请注意其命名空间的名称,如 OpenShift Virtualization 中定义的名称。
流程
为源供应商凭证创建
Secret清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为源供应商创建
Provider清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建
NetworkMap清单来映射源和目标网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建
StorageMap清单来映射源和目标存储:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:在
PlanCR 中指定的阶段创建一个Hook清单以在虚拟机中运行自定义代码:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以使用默认
hook-runner镜像或指定自定义镜像。如果指定自定义镜像,则不需要指定 playbook。
输入以下命令为 MTV 迁移创建传输网络的网络附加定义(NAD)。
您可以使用此定义为接口配置 IP 地址,可以从 Dynamic Host Configuration Protocol (DHCP)或静态方式配置。
配置 IP 地址可让接口访问配置的网关。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为迁移创建
Plan清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定
PlanCR 的名称。 - 2
- 每个计划仅指定一个网络映射和一个存储映射。
- 3
- 指定网络映射,即使要迁移的虚拟机没有分配给网络。在这种情况下,映射可以为空。
- 4
- 指定
NetworkMapCR 的名称。 - 5
- 指定存储映射,即使要迁移的虚拟机没有使用磁盘镜像分配。在这种情况下,映射可以为空。
- 6
- 指定
StorageMapCR 的名称。 - 7
- 您可以使用
id或name参数指定源虚拟机。如果您使用 UDN,请验证供应商的 IP 地址是否在 UDN 的子网之外。如果 IP 地址位于 UDN 的子网内,则迁移会失败。 - 8
- 指定 OpenStack VM UUID。
- 9
- 可选:为虚拟机指定最多两个 hook。每个 hook 必须在不同的迁移步骤中运行。
- 10
- 指定
HookCR 的名称。 - 11
- 在迁移完成后,允许的值是
PreHook、在迁移计划启动前或PostHook。
创建运行
PlanCR 的Migration清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您指定了一个截止时间,请使用 ISO 8601 格式以及 UTC 时间偏移,例如
2024-04-04T01:23:45.678+09:00。
4.3.1. 使用命令行界面取消迁移 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)在迁移过程中取消整个迁移或特定虚拟机的迁移。
第 5 章 从 OVA 迁移 复制链接链接已复制到粘贴板!
从 MTV UI 或命令行运行您的 OVA 迁移计划。
5.1. 先决条件 复制链接链接已复制到粘贴板!
- 您计划从 OVA 中进行迁移。
5.2. 在 MTV UI 中运行迁移计划 复制链接链接已复制到粘贴板!
您可以运行迁移计划,并在 Red Hat OpenShift Web 控制台中查看其进度。
先决条件
- 有效的迁移计划。
流程
在 Red Hat OpenShift web 控制台中,点 Migration > Plans for virtualization。
Plans 列表显示源和目标供应商、正在迁移的虚拟机数量、状态、迁移的日期以及每个计划的描述。
- 点迁移计划旁边的 Start 来启用迁移。
在打开的确认窗口中,单击 Start。
计划 的状态更改为 Running,并显示迁移的进度。
警告开始迁移后不要对虚拟机进行快照。在迁移启动后进行 snaphot 可能会导致迁移失败。
可选:点迁移的 Status 中的链接查看其整体状态和每个虚拟机的状态:
- 左侧的链接表示迁移失败、成功还是持续。它还会报告迁移成功、失败或被取消的虚拟机数量。
右侧的链接会打开 Plan Details 页面的 Virtual Machines 选项卡。对于每个虚拟机,标签会显示以下数据:
- 虚拟机的名称
- 迁移的开始和结束时间
- 复制的数据量
- 虚拟机迁移的进度管道
可选: 要在迁移的运行时或完成后查看迁移的日志,请执行以下操作:
- 点 Virtual Machines 标签页。
点击您要检查的虚拟机左侧的箭头(>)。
此时会显示虚拟机的详情。
在 Pod link 列中的 Pods 部分,点 Logs 链接。
Logs 选项卡将打开。
注意日志并不总是可用。以下是日志不可用的常见原因:
-
迁移是从 OpenShift Virtualization 迁移到 OpenShift Virtualization。在这种情况下,不涉及
virt-v2v,因此不需要 pod。 - 没有创建 pod。
- pod 已被删除。
- 迁移在运行 pod 前失败。
-
迁移是从 OpenShift Virtualization 迁移到 OpenShift Virtualization。在这种情况下,不涉及
- 要查看原始日志,请点 Raw 链接。
- 要下载日志,请点 Download 链接。
5.2.1. 迁移计划选项 复制链接链接已复制到粘贴板!
在 Red Hat OpenShift web 控制台的 Plans for virtualization 页面中,点迁移计划旁边的 Options 菜单
访问以下选项:
编辑计划 :编辑迁移计划的详细信息。如果计划正在运行或成功完成,则无法编辑以下选项:
- Plan 详情页面的 Settings 部分的所有属性。例如,温或冷迁移、目标命名空间和保留的静态 IP。
- 计划在 Mappings 选项卡上的映射。
- Hook 选项卡上列出的 hook。
- 开始迁移 :只有在相关时才活动。
- 重启迁移 :重启中断的迁移。在选择此选项前,请确保没有错误消息。如果存在,您需要编辑计划。
cutover: 仅限 Warm 迁移。仅在相关时才激活。点 Cutover 打开 Cutover 窗口,它支持以下选项:
- 设置 cutover :为 cutover 设置日期和时间。
- 删除 cutover :取消调度的 cutover。仅在相关时才激活。
重复计划 :创建一个与现有计划相同的虚拟机(VM)、参数、映射和 hook 的新迁移计划。您可以将此功能用于以下任务:
- 将虚拟机迁移到不同的命名空间。
- 编辑归档的迁移计划。
- 编辑具有不同状态的迁移计划,如 failed、canceled、running、critical 或 ready。
archive Plan :删除迁移计划的日志、历史记录和元数据。计划不能编辑或重启。它只能查看、复制或删除。
注意归档计划 不可逆。但是,您可以复制归档的计划。
删除计划 :永久删除迁移计划。您不能删除正在运行的迁移计划。
注意删除计划是 不可逆的。
删除迁移计划不会删除临时资源。要删除临时资源,请在删除前先归档计划。
注意归档的结果,然后删除迁移计划会根据您使用 CLI 或 UI 创建计划及其存储和网络映射而有所不同。
- 如果您使用 UI 创建它们,则迁移计划及其映射不再出现在 UI 中。
- 如果您使用 CLI 创建它们,则映射可能仍然出现在 UI 中。这是因为 CLI 中的映射可以被多个迁移计划使用,但 UI 中创建的映射只能在一个迁移计划中使用。
5.2.2. 取消迁移 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift web 控制台在迁移计划进行时取消部分或所有虚拟机(VM)的迁移。
流程
- 在 Red Hat OpenShift web 控制台中,单击 Plans for virtualization。
- 点正在运行的迁移计划的名称查看迁移详情。
- 选择一个或多个虚拟机,点 Cancel。
点 Yes, cancel 确认取消。
在 Migration details by VM 列表中,取消的虚拟机的状态为 Canceled。未迁移且迁移的虚拟机不受影响。
您可以通过点 Migration Plan 页的迁移计划旁的 Restart 重启迁移。
5.3. 从命令行运行开放虚拟设备(OVA)迁移 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)从由 VMware vSphere 创建的开放虚拟设备(OVA)文件迁移到源供应商。
先决条件
- 如果使用用户定义的网络(UDN),请注意 OpenShift Virtualization 中定义的命名空间名称。
流程
为源供应商凭证创建
Secret清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为源供应商创建
Provider清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建
NetworkMap清单来映射源和目标网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建
StorageMap清单来映射源和目标存储:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:在
PlanCR 中指定的阶段创建一个Hook清单以在虚拟机中运行自定义代码:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以使用默认
hook-runner镜像或指定自定义镜像。如果指定自定义镜像,则不需要指定 playbook。
输入以下命令为 MTV 迁移创建传输网络的网络附加定义(NAD)。
您可以使用此定义为接口配置 IP 地址,可以从 Dynamic Host Configuration Protocol (DHCP)或静态方式配置。
配置 IP 地址可让接口访问配置的网关。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为迁移创建
Plan清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定
PlanCR 的名称。 - 2
- 每个计划仅指定一个网络映射和一个存储映射。
- 3
- 指定网络映射,即使要迁移的虚拟机没有分配给网络。在这种情况下,映射可以为空。
- 4
- 指定
NetworkMapCR 的名称。 - 5
- 指定一个存储映射,即使要迁移的虚拟机没有使用磁盘镜像分配。在这种情况下,映射可以为空。
- 6
- 指定
StorageMapCR 的名称。 - 7
- 您可以使用
id或name参数指定源虚拟机。如果您使用 UDN,请验证供应商的 IP 地址是否在 UDN 的子网之外。如果 IP 地址位于 UDN 的子网内,则迁移会失败。 - 8
- 指定 OVA 虚拟机 UUID。
- 9
- 可选:为虚拟机指定最多两个 hook。每个 hook 必须在不同的迁移步骤中运行。
- 10
- 指定
HookCR 的名称。 - 11
- 在迁移完成后,允许的值是
PreHook、在迁移计划启动前或PostHook。
创建运行
PlanCR 的Migration清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您指定了一个截止时间,请使用 ISO 8601 格式以及 UTC 时间偏移,例如
2024-04-04T01:23:45.678+09:00。
5.3.1. 使用命令行界面取消迁移 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)在迁移过程中取消整个迁移或特定虚拟机的迁移。
第 6 章 从 OpenShift Virtualization 迁移 复制链接链接已复制到粘贴板!
从 MTV UI 或命令行运行 OpenShift Virtualization 迁移计划。
6.1. 先决条件 复制链接链接已复制到粘贴板!
- 您已计划从 OpenShift Virtualization 迁移。
6.2. 在 MTV UI 中运行迁移计划 复制链接链接已复制到粘贴板!
您可以运行迁移计划,并在 Red Hat OpenShift Web 控制台中查看其进度。
先决条件
- 有效的迁移计划。
流程
在 Red Hat OpenShift web 控制台中,点 Migration > Plans for virtualization。
Plans 列表显示源和目标供应商、正在迁移的虚拟机数量、状态、迁移的日期以及每个计划的描述。
- 点迁移计划旁边的 Start 来启用迁移。
在打开的确认窗口中,单击 Start。
计划 的状态更改为 Running,并显示迁移的进度。
警告开始迁移后不要对虚拟机进行快照。在迁移启动后进行 snaphot 可能会导致迁移失败。
可选:点迁移的 Status 中的链接查看其整体状态和每个虚拟机的状态:
- 左侧的链接表示迁移失败、成功还是持续。它还会报告迁移成功、失败或被取消的虚拟机数量。
右侧的链接会打开 Plan Details 页面的 Virtual Machines 选项卡。对于每个虚拟机,标签会显示以下数据:
- 虚拟机的名称
- 迁移的开始和结束时间
- 复制的数据量
- 虚拟机迁移的进度管道
可选: 要在迁移的运行时或完成后查看迁移的日志,请执行以下操作:
- 点 Virtual Machines 标签页。
点击您要检查的虚拟机左侧的箭头(>)。
此时会显示虚拟机的详情。
在 Pod link 列中的 Pods 部分,点 Logs 链接。
Logs 选项卡将打开。
注意日志并不总是可用。以下是日志不可用的常见原因:
-
迁移是从 OpenShift Virtualization 迁移到 OpenShift Virtualization。在这种情况下,不涉及
virt-v2v,因此不需要 pod。 - 没有创建 pod。
- pod 已被删除。
- 迁移在运行 pod 前失败。
-
迁移是从 OpenShift Virtualization 迁移到 OpenShift Virtualization。在这种情况下,不涉及
- 要查看原始日志,请点 Raw 链接。
- 要下载日志,请点 Download 链接。
6.2.1. 迁移计划选项 复制链接链接已复制到粘贴板!
在 Red Hat OpenShift web 控制台的 Plans for virtualization 页面中,点迁移计划旁边的 Options 菜单
访问以下选项:
编辑计划 :编辑迁移计划的详细信息。如果计划正在运行或成功完成,则无法编辑以下选项:
- Plan 详情页面的 Settings 部分的所有属性。例如,温或冷迁移、目标命名空间和保留的静态 IP。
- 计划在 Mappings 选项卡上的映射。
- Hook 选项卡上列出的 hook。
- 开始迁移 :只有在相关时才活动。
- 重启迁移 :重启中断的迁移。在选择此选项前,请确保没有错误消息。如果存在,您需要编辑计划。
cutover: 仅限 Warm 迁移。仅在相关时才激活。点 Cutover 打开 Cutover 窗口,它支持以下选项:
- 设置 cutover :为 cutover 设置日期和时间。
- 删除 cutover :取消调度的 cutover。仅在相关时才激活。
重复计划 :创建一个与现有计划相同的虚拟机(VM)、参数、映射和 hook 的新迁移计划。您可以将此功能用于以下任务:
- 将虚拟机迁移到不同的命名空间。
- 编辑归档的迁移计划。
- 编辑具有不同状态的迁移计划,如 failed、canceled、running、critical 或 ready。
archive Plan :删除迁移计划的日志、历史记录和元数据。计划不能编辑或重启。它只能查看、复制或删除。
注意归档计划 不可逆。但是,您可以复制归档的计划。
删除计划 :永久删除迁移计划。您不能删除正在运行的迁移计划。
注意删除计划是 不可逆的。
删除迁移计划不会删除临时资源。要删除临时资源,请在删除前先归档计划。
注意归档的结果,然后删除迁移计划会根据您使用 CLI 或 UI 创建计划及其存储和网络映射而有所不同。
- 如果您使用 UI 创建它们,则迁移计划及其映射不再出现在 UI 中。
- 如果您使用 CLI 创建它们,则映射可能仍然出现在 UI 中。这是因为 CLI 中的映射可以被多个迁移计划使用,但 UI 中创建的映射只能在一个迁移计划中使用。
6.2.2. 取消迁移 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift web 控制台在迁移计划进行时取消部分或所有虚拟机(VM)的迁移。
流程
- 在 Red Hat OpenShift web 控制台中,单击 Plans for virtualization。
- 点正在运行的迁移计划的名称查看迁移详情。
- 选择一个或多个虚拟机,点 Cancel。
点 Yes, cancel 确认取消。
在 Migration details by VM 列表中,取消的虚拟机的状态为 Canceled。未迁移且迁移的虚拟机不受影响。
您可以通过点 Migration Plan 页的迁移计划旁的 Restart 重启迁移。
6.3. 从命令行运行 Red Hat OpenShift Virtualization 迁移 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Virtualization 供应商作为源供应商,或作为目的地供应商。您可以使用命令行界面(CLI)从 OpenShift Virtualization 源供应商迁移。
源供应商的 Red Hat OpenShift 集群版本必须是 4.16 或更高版本。
流程
为源供应商凭证创建
Secret清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为源供应商创建
Provider清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建
NetworkMap清单来映射源和目标网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建
StorageMap清单来映射源和目标存储:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 允许的值有
ReadWriteOnce和ReadWriteMany。
可选:在
PlanCR 中指定的阶段创建一个Hook清单以在虚拟机中运行自定义代码:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以使用默认
hook-runner镜像或指定自定义镜像。如果指定自定义镜像,则不需要指定 playbook。
输入以下命令为 MTV 迁移创建传输网络的网络附加定义(NAD)。
您可以使用此定义为接口配置 IP 地址,可以从 Dynamic Host Configuration Protocol (DHCP)或静态方式配置。
配置 IP 地址可让接口访问配置的网关。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为迁移创建
Plan清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建运行
PlanCR 的Migration清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您指定了一个截止时间,请使用 ISO 8601 格式以及 UTC 时间偏移,例如
2024-04-04T01:23:45.678+09:00。
6.3.1. 使用命令行界面取消迁移 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)在迁移过程中取消整个迁移或特定虚拟机的迁移。
第 7 章 高级迁移选项 复制链接链接已复制到粘贴板!
执行高级迁移操作,如更改温迁移的预复制快照间隔、创建自定义规则进行验证,或在迁移计划中添加 hook。
7.1. 为 warm 迁移更改预复制间隔 复制链接链接已复制到粘贴板!
您可以通过修补 ForkliftController 自定义资源(CR)来更改快照间隔。
流程
对
ForkliftControllerCR 进行补丁:oc patch forkliftcontroller/<forklift-controller> -n openshift-mtv -p '{"spec": {"controller_precopy_interval": <60>}}' --type=merge$ oc patch forkliftcontroller/<forklift-controller> -n openshift-mtv -p '{"spec": {"controller_precopy_interval": <60>}}' --type=merge1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 以分钟为单位指定 precopy 间隔。默认值为
60。
您不需要重启
forklift-controllerpod。
7.2. 为 Validation 服务创建自定义规则 复制链接链接已复制到粘贴板!
Validation 服务使用 Open Policy Agent(OPA)策略规则来检查要迁移的每个虚拟机(VM)的适用性。Validation 服务为每个虚拟机生成 问题 列表,它们作为虚拟机属性存储在 Provider Inventory 服务中。Web 控制台显示供应商清单中的每个虚拟机的顾虑。
您可以创建自定义规则来扩展 Validation 服务的默认规则集。例如,您可以创建一个规则来检查虚拟机是否有多个磁盘。
7.2.1. 关于 Rego 文件 复制链接链接已复制到粘贴板!
验证规则使用 Rego 编写,即 Open Policy Agent (OPA) 原生查询语言。规则作为 .rego 文件存储在 Validation pod 的 /usr/share/opa/policies/io/konveyor/forklift/<provider> 目录中。
每个验证规则都在单独的 .rego 文件中定义,以及对特定条件的测试。如果条件评估为 true,则该规则会将 {"category", "label", "assessment"} hash 添加到 concerns 中。concerns 内容将添加到虚拟机清单记录中的 concerns 键中。Web 控制台显示供应商清单中每个虚拟机的 concerns 键的内容。
以下 .rego 文件示例检查在 VMware 虚拟机的集群中启用了分布式资源调度:
drs_enabled.rego 示例
7.2.2. 检查默认验证规则 复制链接链接已复制到粘贴板!
在创建自定义规则前,您必须检查 Validation 服务的默认规则,以确保您不会创建重新定义现有默认值的规则。
示例:如果默认规则包含行 default valid_input = false,并且您创建一个包含行 default valid_input = true,则 Validation 服务将不会启动。
流程
连接到
Validationpod 的终端:oc rsh <validation_pod>
$ oc rsh <validation_pod>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入您的供应商的 OPA 策略目录:
cd /usr/share/opa/policies/io/konveyor/forklift/<provider>
$ cd /usr/share/opa/policies/io/konveyor/forklift/<provider>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定
vmware或ovirt。
搜索默认策略:
grep -R "default" *
$ grep -R "default" *Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.3. 创建验证规则 复制链接链接已复制到粘贴板!
您可以通过将包含规则的配置映射自定义资源(CR)应用到 Validation 服务来创建验证规则。
-
如果您创建与现有规则相同的规则,
Validation服务将使用规则执行OR操作。 -
如果您创建使用默认规则迭代的规则,则
Validation服务将不会启动。
验证规则示例
验证规则基于由 Provider Inventory 服务收集的虚拟机(VM)属性。
例如,VMware API 使用此路径来检查 VMware 虚拟机是否配置了 NUMA 节点关联性:MOR:VirtualMachine.config.extraConfig["numa.nodeAffinity"]。
Provider Inventory 服务使用列表值简化了此配置并返回一个可测试属性:
"numaNodeAffinity": [
"0",
"1"
],
"numaNodeAffinity": [
"0",
"1"
],
您可以根据此属性创建一个 Rego 查询,并将其添加到 forklift-validation-config 配置映射中:
`count(input.numaNodeAffinity) != 0`
`count(input.numaNodeAffinity) != 0`
流程
根据以下示例创建配置映射 CR:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将
forklift-controller部署扩展到0来停止Validationpod:oc scale -n openshift-mtv --replicas=0 deployment/forklift-controller
$ oc scale -n openshift-mtv --replicas=0 deployment/forklift-controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将
forklift-controller部署扩展到1来启动Validationpod:oc scale -n openshift-mtv --replicas=1 deployment/forklift-controller
$ oc scale -n openshift-mtv --replicas=1 deployment/forklift-controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
Validationpod 日志,以验证 pod 是否已启动:oc logs -f <validation_pod>
$ oc logs -f <validation_pod>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果自定义规则与默认规则冲突,则
Validationpod 将不会启动。删除源供应商:
oc delete provider <provider> -n openshift-mtv
$ oc delete provider <provider> -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加源供应商以应用新规则:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您必须在创建自定义规则后更新规则版本,以便 Inventory 服务检测到更改并验证虚拟机。
7.2.4. 更新清单规则版本 复制链接链接已复制到粘贴板!
每次更新规则时,您必须更新 inventory 规则版本,以便 Provider Inventory 服务检测到更改并触发 Validation 服务。
规则版本记录在每个供应商的 rules_version.rego 文件中。
流程
检索当前的规则版本:
GET https://forklift-validation/v1/data/io/konveyor/forklift/<provider>/rules_version
$ GET https://forklift-validation/v1/data/io/konveyor/forklift/<provider>/rules_version1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{ "result": { "rules_version": 5 } }{ "result": { "rules_version": 5 } }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 连接到
Validationpod 的终端:oc rsh <validation_pod>
$ oc rsh <validation_pod>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
更新
/usr/share/opa/policies/io/konveyor/forklift/<provider>/rules_version.rego文件中的规则版本。 -
从
Validationpod 终端注销。 验证更新的规则版本:
GET https://forklift-validation/v1/data/io/konveyor/forklift/<provider>/rules_version
$ GET https://forklift-validation/v1/data/io/konveyor/forklift/<provider>/rules_version1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{ "result": { "rules_version": 6 } }{ "result": { "rules_version": 6 } }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.5. 检索库存服务 JSON 复制链接链接已复制到粘贴板!
您可以通过向虚拟机发送一个 Inventory 服务查询来获取 Inventory 服务 JSON。输出中包含一个 "input" 键,其中包含由 Validation 服务规则查询的清单属性。
您可以根据 "input" 键中的任何属性(如 input.snapshot.kind )创建验证规则。
流程
为项目检索路由:
oc get route -n openshift-mtv
oc get route -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检索
Inventory服务路由:oc get route <inventory_service> -n openshift-mtv
$ oc get route <inventory_service> -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检索访问令牌:
TOKEN=$(oc whoami -t)
$ TOKEN=$(oc whoami -t)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 触发 HTTP GET 请求(例如,使用 Curl):
curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers -k
$ curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers -kCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检索供应商的
UUID:curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers/<provider> -k
$ curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers/<provider> -k1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索供应商的虚拟机:
curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers/<provider>/<UUID>/vms -k
$ curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers/<provider>/<UUID>/vms -kCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检索虚拟机的详情:
curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers/<provider>/<UUID>/workloads/<vm> -k
$ curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers/<provider>/<UUID>/workloads/<vm> -kCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3. 在 MTV 迁移计划中添加 hook 复制链接链接已复制到粘贴板!
您可以在 Migration Toolkit for Virtualization (MTV)迁移计划中添加 hook,以便在迁移之前或之后在虚拟机上执行自动操作。
7.3.1. 关于 MTV 迁移计划的 hook 复制链接链接已复制到粘贴板!
您可以在 Migration Toolkit for Virtualization (MTV)迁移计划中添加 hook,以便在迁移之前或之后在虚拟机上执行自动操作。
您可以使用 MTV CLI 或 MTV 用户界面在 Red Hat OpenShift web 控制台中为 Virtualization (MTV)迁移计划添加 hook。
- 预迁移 hook 是 hook,可在位于供应商的虚拟机上执行操作。这会为迁移准备虚拟机。
- 迁移后 hook 是在迁移到 OpenShift Virtualization 的虚拟机上执行操作的 hook。
7.3.1.1. 默认 hook 镜像 复制链接链接已复制到粘贴板!
MTV hook 的默认 hook 镜像是 quay.io/kubev2v/hook-runner。镜像基于 Ansible Runner 镜像,并添加 python-openshift,以提供 Ansible Kubernetes 资源和最新的 oc 二进制文件。
7.3.1.2. hook 执行 复制链接链接已复制到粘贴板!
作为迁移 hook 的一部分提供的 Ansible Playbook 作为 ConfigMap 挂载到 hook 容器中。hook 容器使用您选择的 ServiceAccount 在 openshift-mtv 命名空间中的所需集群中作为作业运行。
添加 hook 时,您必须指定 Hook CR 所在的命名空间、hook 的名称,以及 hook 是否为 pre-migration hook 或 post-migration hook。
要让 hook 在虚拟机上运行,必须使用 SSH 启动虚拟机并可用。
下图显示了使用迁移 hook 的一般过程。具体步骤请参阅 使用 Red Hat OpenShift Web 控制台将迁移 hook 添加到迁移计划中,并使用 CLI 将迁移 hook 添加到迁移计划中。
图 7.1. 在迁移计划中添加 hook
Process:
输入您的 Ansible hook 和凭证。
使用 UI 或 CLI 将 Ansible hook 镜像输入到 MTV 控制器。
-
在 UI 中,指定
ansible-runner并输入包含 hook 的playbook.yml。 - 在 CLI 中,输入 hook 镜像,该镜像指定运行 hook 的 playbook。
-
在 UI 中,指定
如果您需要额外数据在 pod 中运行 playbook (如 SSH 数据),请创建一个包含虚拟机凭证的 Secret。Secret 不挂载到 pod,而是由 playbook 调用。
注意此 Secret 与包含源供应商凭证的
SecretCR 不同。
MTV 控制器创建
ConfigMap,其中包含:-
workload.yml,其中包含有关虚拟机的信息。 -
playbook.yml,这是您要运行的原始字符串 playbook。 plan.yml,即PlanCR。ConfigMap包含虚拟机的名称,并指示 playbook 执行的操作。
-
MTV 控制器会创建一个启动用户指定镜像的作业。
将
ConfigMap挂载到容器。Ansible hook 导入之前输入的用户的 Secret。
该作业运行迁移前 hook 或迁移后 hook,如下所示:
- 对于 pre-migration hook,作业会使用 SSH 登录到源供应商上的虚拟机,并运行 hook。
- 对于迁移后 hook,作业使用 SSH 登录到 OpenShift Virtualization 上的虚拟机,并运行 hook。
7.3.2. 使用 Red Hat OpenShift Web 控制台在迁移计划中添加迁移 hook 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Web 控制台将迁移 hook 添加到现有迁移计划中。
您需要在 Migration Toolkit for Virtualization (MTV) CLI 中运行一个命令。
例如,您可以创建一个 hook 来在虚拟机上安装 cloud-init 服务,并在迁移前写入文件。
您可以运行一个预迁移 hook、一个迁移后 hook 或每个迁移计划之一。
先决条件
- 迁移计划
- 迁移 hook 文件,其中包含您复制的内容并粘贴到 web 控制台中
-
包含源供应商的
Secret的文件 - 由 hook 调用的 Red Hat OpenShift 服务帐户,并且至少对您正在使用的命名空间具有写入访问权限
- 使用在虚拟机上安装的公钥迁移的虚拟机的 SSH 访问
- 仅在 Microsoft Server 上运行的虚拟机:启用远程执行
其他资源
有关创建服务帐户的说明,请参阅 了解并创建服务帐户。
流程
- 在 Red Hat OpenShift web 控制台中,点 Migration > Plans for virtualization,然后点击您要将 hook 添加到的迁移计划。
- 点 Hook。
对于 pre-migration hook,请执行以下步骤:
- 在 Pre migration hook 部分中,将 Enable hook 开关切换为 Enable pre migration hook。
-
输入 Hook 运行程序镜像。如果要指定
spec.playbook,则需要使用具有ansible-runner的镜像。 - 将 hook 粘贴到 Ansible playbook 文本框中的 YAML 文件。
对于迁移后 hook,请执行以下步骤:
- 在 Post migration hook 中,切换 Enable hook 开关 启用后迁移 hook。
-
输入 Hook 运行程序镜像。如果要指定
spec.playbook,则需要使用具有ansible-runner的镜像。 - 将 hook 粘贴到 Ansible playbook 文本框中的 YAML 文件。
- 在选项卡的顶部,单击 Update hook。
在终端中,输入以下命令将每个 hook 与 Red Hat OpenShift 服务帐户关联:
oc -n openshift-mtv patch hook <name_of_hook> \ -p '{"spec":{"serviceAccount":"<service_account>"}}' --type merge$ oc -n openshift-mtv patch hook <name_of_hook> \ -p '{"spec":{"serviceAccount":"<service_account>"}}' --type mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
以下迁移 hook 示例确保可以使用 SSH 访问虚拟机,创建 SSH 密钥并运行 2 个任务:停止 Maria 数据库并生成文本文件。
迁移 hook 示例
7.3.3. 使用 CLI 在迁移计划中添加迁移 hook 复制链接链接已复制到粘贴板!
您可以使用 Hook CR 使用 Migration Toolkit for Virtualization (MTV) CLI 将预迁移 hook 或迁移后 hook 添加到现有迁移计划中。
例如,您可以创建一个 Hook 自定义资源(CR)来在虚拟机上安装 cloud-init 服务,并在迁移前写入文件。
您可以运行一个预迁移 hook、一个迁移后 hook 或每个迁移计划之一。每个 hook 需要自己的 Hook CR,但 Plan CR 包含它所使用的所有 hook 的数据。
您可以使用 k8s 模块检索存储在 secret 或 ConfigMap 中的附加信息。
先决条件
- 迁移计划
- 迁移 hook 镜像或包含 hook 镜像的 playbook
- 包含源供应商的 Secret 的文件
- 由 hook 调用的 Red Hat OpenShift 服务帐户,并且至少对您正在使用的命名空间具有写入访问权限
- 使用在虚拟机上安装的公钥迁移的虚拟机的 SSH 访问
- 仅在 Microsoft Server 上运行的虚拟机:启用远程执行
其他资源
有关创建服务帐户的说明,请参阅 了解并创建服务帐户。
流程
如果需要,为虚拟机创建一个具有 SSH 私钥的 Secret。
- 选择现有密钥或生成密钥对。
- 在虚拟机上安装公钥。
将 Secret 中的私钥编码为 base64。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
通过串联一个文件并以 Base64 编码方式对 playbook 进行编码,例如:
cat playbook.yml | base64 -w0
$ cat playbook.yml | base64 -w0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 Hook CR:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以使用默认
hook-runner镜像或指定自定义镜像。如果指定自定义镜像,则不需要指定 playbook。注意要解码附加的 playbook,请使用自定义输出检索资源,并将其传送到 base64。例如:
oc get -n konveyor-forklift hook playbook -o \ go-template='{{ .spec.playbook }}' | base64 -d$ oc get -n konveyor-forklift hook playbook -o \ go-template='{{ .spec.playbook }}' | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在迁移的
PlanCR 中,对于每个虚拟机,请在 CR 的末尾添加以下部分:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 选项是
PreHook,可在迁移前运行 hook,以及PostHook以在迁移后运行 hook。
为了在虚拟机上运行 PreHook,必须通过 SSH 启动并可使用虚拟机。
以下迁移 hook 示例确保可以使用 SSH 访问虚拟机,创建 SSH 密钥并运行 2 个任务:停止 Maria 数据库并生成文本文件。
迁移 hook 示例
7.3.4. 关于用户定义的网络 复制链接链接已复制到粘贴板!
从 Migration Toolkit for Virtualization 2.10 开始,您可以使用用户定义的网络(UDN)作为所有供应商迁移的默认网络,但 OpenShift Virtualization 除外。通过这种灵活性,您可以更加一致地将虚拟机迁移到 OpenShift Virtualization。
MTV 已重新设计,可让您轻松地将虚拟机迁移到 UDN 命名空间。在 OpenShift Virtualization 中配置 UDN 后,您可以在迁移计划映射中将它指定为默认网络。MTV 现在可以将 UDN 与常规 pod 网络区分开。
您可以使用 Red Hat OpenShift Web 控制台或使用 MTV 命令行界面创建迁移计划。创建迁移计划的步骤已更新,以包含新功能。
其他资源
第 8 章 升级或卸载 Migration Toolkit for Virtualization 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Web 控制台或命令行界面(CLI)升级或卸载 Virtualization (MTV)。
8.1. 升级 Migration Toolkit for Virtualization 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Web 控制台安装新版本,以升级 MTV Operator。
流程
- 在 Red Hat OpenShift web 控制台中,点 Operators → Installed Operators → Migration Toolkit for Virtualization Operator → Subscription。
将更新频道更改为正确的发行版本。
请参阅 Red Hat OpenShift 文档中的更改更新频道。
确认 Upgrade status 从 Up to date 变为 Upgrade available。如果没有,重启
CatalogSourcepod:-
记录目录源,如
redhat-operators。 在命令行中检索目录源 pod:
oc get pod -n openshift-marketplace | grep <catalog_source>
$ oc get pod -n openshift-marketplace | grep <catalog_source>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 Pod:
oc delete pod -n openshift-marketplace <catalog_source_pod>
$ oc delete pod -n openshift-marketplace <catalog_source_pod>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 升级状态从Up to date 改为 Upgrade available。
如果您在 Subscriptions 选项卡上将 Update approval 设置为 Automatic,则升级会自动启动。
-
记录目录源,如
如果您在 Subscriptions 标签页中将 Update approval 设置为 Manual,请批准升级。
请参阅 Red Hat OpenShift 文档中的 手动批准待处理的升级。
-
如果您要从 MTV 2.2 升级并定义了 VMware 源供应商,请添加 VDDK
init镜像来编辑 VMware 供应商。否则,更新会将任何 VMware 供应商的状态更改为Critical。如需更多信息,请参阅 添加 VMSphere 源供应商。 -
如果您在 MTV 2.2 中的 Red Hat OpenShift 目的地供应商中映射到 NFS,请编辑 NFS 存储配置文件中的
AccessModes和VolumeMode参数。否则,升级会使 NFS 映射无效。如需更多信息,请参阅自定义存储配置集。
8.2. 使用 Red Hat OpenShift Web 控制台卸载 MTV 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift web 控制台卸载 Virtualization (MTV)。
先决条件
-
您必须以具有
cluster-admin权限的用户身份登录。
流程
- 在 Red Hat OpenShift web 控制台中,点 Operators > Installed Operators。
点 Migration Toolkit for Virtualization Operator。
Operator Details 页面在 Details 标签页中打开。
- 点 ForkliftController 选项卡。
单击 Actions,再选择 Delete ForkLiftController。
这会打开确认窗口。
点击 Delete。
控制器已被删除。
打开 Details 选项卡。
此时会出现 Create ForkliftController 按钮,而不是您删除的控制器。不需要点它。
在页面右上角,点 Actions 并选择 Uninstall Operator。
此时会打开确认窗口,显示任何操作对象实例。
要删除所有实例,请选中 Delete all operand instance for this operator 复选框。默认情况下清除复选框。
重要如果 Operator 配置了非集群资源,则这些应用程序将继续运行,需要手动清理。
点 Uninstall。
Installed Operators 页面将打开,并且 Migration Toolkit for Virtualization Operator 已从已安装的 Operator 列表中删除。
- 点 Home > Overview。
在页面的 Status 部分中,单击 Dynamic Plugins。
Dynamic Plugins 弹出将打开,将 forklift-console-plugin 列为失败的插件。如果 forklift-console-plugin 没有显示为失败的插件,请刷新 web 控制台。
单击 forklift-console-plugin。
ConsolePlugin 详情页面 会在 Details 选项卡中打开。
在页面的右上角,点 Actions,然后从列表中选择 Delete ConsolePlugin。
这会打开确认窗口。
点击 Delete。
该插件已从 Overview 页面上的 动态插件 列表中移除。如果插件仍然存在,重启 Overview 页面。
8.3. 从命令行卸载 MTV 复制链接链接已复制到粘贴板!
您可以从命令行卸载 Migration Toolkit for Virtualization (MTV)。
此操作不会删除 MTV Operator 管理的资源,包括自定义资源定义(CRD)和自定义资源(CR)。要在卸载 MTV Operator 后删除它们,您可能需要手动删除 MTV Operator CRD。
先决条件
-
您必须以具有
cluster-admin权限的用户身份登录。
流程
运行以下命令来删除
forklift控制器:oc delete ForkliftController --all -n openshift-mtv
$ oc delete ForkliftController --all -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除 MTV Operator 的订阅:
oc get subscription -o name|grep 'mtv-operator'| xargs oc delete
$ oc get subscription -o name|grep 'mtv-operator'| xargs oc deleteCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,删除 MTV Operator 的
clusterserviceversion:oc get clusterserviceversion -o name|grep 'mtv-operator'| xargs oc delete
$ oc get clusterserviceversion -o name|grep 'mtv-operator'| xargs oc deleteCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除插件控制台 CR:
oc delete ConsolePlugin forklift-console-plugin
$ oc delete ConsolePlugin forklift-console-pluginCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:运行以下命令来删除自定义资源定义(CRD):
oc get crd -o name | grep 'forklift.konveyor.io' | xargs oc delete
oc get crd -o name | grep 'forklift.konveyor.io' | xargs oc deleteCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:通过运行以下命令删除 MTV 项目来执行清理:
oc delete project openshift-mtv
oc delete project openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 9 章 迁移故障排除 复制链接链接已复制到粘贴板!
对迁移问题进行故障排除,导航自定义资源(CR)、服务和工作流,并下载日志和 CR 以进行故障排除。
9.1. 错误消息 复制链接链接已复制到粘贴板!
本节论述了错误消息以及如何解决它们。
9.1.1. 已达到温导入重试的限制 复制链接链接已复制到粘贴板!
如果在 precopy 阶段一个 VMware 虚拟机 (VM) 已达到最大的改变的块跟踪(CBT)快照的数量 (28),则会在温迁移中会显 warm import retry limit reached 错误消息。
要解决这个问题,请从虚拟机中删除一些 CBT 快照并重启迁移计划。
9.1.2. 无法将磁盘镜像调整为所需的大小 复制链接链接已复制到粘贴板!
迁移失败时会显示 Unable to resize disk image to required size 错误消息,因为目标供应商的虚拟机使用块存储上带有 EXT4 文件系统的持久性卷。出现这个问题的原因是 CDI 假设的默认开销没有完全包括根分区的保留位置。
要解决这个问题,将 CDI 中的文件系统开销增加到大于 10%。
9.2. 使用 must-gather 工具 复制链接链接已复制到粘贴板!
您可以使用 must-gather 工具来收集 MTV 自定义资源 (CR) 的日志和信息。您必须将 must-gather 数据文件附加到所有客户问题单。
您可以使用过滤选项为特定命名空间、迁移计划或虚拟机 (VM) 收集数据。
如果您在过滤的 must-gather 命令中指定不存在的资源,则不会创建存档文件。
先决条件
-
您必须以具有
cluster-admin角色的用户身份登录到 OpenShift Virtualization 集群。 -
已安装 Red Hat OpenShift CLI (
oc)。
流程
-
进入要存储
must-gather数据的目录。 运行
oc adm must-gather命令:oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0
$ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 数据被保存为
/must-gather/must-gather.tar.gz。您可以将此文件上传到红帽客户门户网站中的支持问题单中。可选:使用以下选项运行
oc adm must-gather命令来收集过滤的数据:命名空间:
oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- NS=<namespace> /usr/bin/targeted
$ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- NS=<namespace> /usr/bin/targetedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 迁移计划:
oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- PLAN=<migration_plan> /usr/bin/targeted
$ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- PLAN=<migration_plan> /usr/bin/targetedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 虚拟机:
oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- VM=<vm_id> NS=<namespace> /usr/bin/targeted
$ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- VM=<vm_id> NS=<namespace> /usr/bin/targeted1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定在
PlanCR 中显示的 VM ID。
9.3. MTV 自定义资源和服务 复制链接链接已复制到粘贴板!
Migration Toolkit for Virtualization (MTV)作为 Red Hat OpenShift Operator 提供。它将创建和管理以下自定义资源 (CR) 和服务。
9.3.1. MTV 自定义资源 复制链接链接已复制到粘贴板!
-
ProviderCR 存储启用 MTV 连接到并与源和目标供应商交互的属性。 -
NetworkMappingCR 映射源供应商的网络。 -
StorageMappingCR 会映射源和目标供应商的存储。 -
PlanCR 包含具有相同迁移参数和相关网络和存储映射的虚拟机列表。 MigrationCR 运行一个迁移计划。每个迁移计划只能有一个
MigrationCR 可以在指定时间运行。您可以为单个PlanCR 创建多个MigrationCR。
9.3.2. MTV 服务 复制链接链接已复制到粘贴板!
Inventory服务执行以下操作:- 连接到源和目标供应商。
- 维护本地清单以进行映射和计划。
- 存储虚拟机配置。
-
如果检测到虚拟机配置更改,则运行
Validation服务。
-
Validation服务通过应用规则检查虚拟机是否适合迁移。 Migration Controller服务编配迁移。当您创建迁移计划时,
Migration Controller服务会验证计划并添加状态标签。如果计划无法验证,计划状态为Not ready,则计划无法用于执行迁移。如果计划通过验证,计划状态为Ready,它可用于执行迁移。迁移成功后,Migration Controller服务会将计划状态更改为Completed。-
Populator Controller服务使用 Volume Populators 编配磁盘传输。 -
Kubevirt Controller和Containerized Data Import(CDI)Controller服务处理大多数技术操作。
9.4. 高级别迁移工作流 复制链接链接已复制到粘贴板!
高级别工作流显示用户视图的迁移过程:
- 您可以创建一个源供应商、目标供应商、网络映射和存储映射。
您可以创建一个包含以下资源的
Plan自定义资源(CR):- 源供应商
- 目标供应商,如果目标集群上没有安装 MTV
- 网络映射
- 存储映射
- 一个或多个虚拟机 (VM)
您可以通过创建一个引用
PlanCR 的MigrationCR 来运行迁移计划。如果出于某种原因无法迁移所有虚拟机,则可以为同一
PlanCR 创建多个MigrationCR,直到虚拟机迁移为止。-
对于
PlanCR 中的每个虚拟机,Migration Controller服务会在MigrationCR 中记录虚拟机迁移进度。 当
PlanCR 中每个虚拟机的数据传输完成后,Migration Controller服务会创建一个VirtualMachineCR。当迁移所有虚拟机时,
Migration Controller服务会将PlanCR 的状态更新为Completed。每个源虚拟机的电源状态在迁移后会被维护。
9.4.1. 详细的迁移工作流 复制链接链接已复制到粘贴板!
您可以使用详细的迁移工作流来排除迁移失败的问题。
工作流描述了以下步骤:
温迁移或迁移到远程 OpenShift 集群:
当您创建
Migration自定义资源(CR)来运行迁移计划时,Migration Controller服务会为每个源虚拟机磁盘创建一个DataVolumeCR。对于每个 VM 磁盘:
-
Containerized Data Importer(CDI)控制器服务根据DataVolumeCR 中指定的参数创建一个持久性卷声明 (PVC)。 -
如果
StorageClass有动态置备程序,则StorageClass置备程序会动态置备持久性卷(PV)。 -
CDI Controller服务创建一个importerpod。 importerpod 将虚拟机磁盘流传输到 PV。虚拟机磁盘传输后:
Migration Controller服务会在从 VMware 导入时创建一个转换pod,并附加 PVC。conversionpod 运行virt-v2v,它会在目标虚拟机的 PVC 中安装和配置设备驱动程序。-
Migration Controller服务为每个源虚拟机(VM)创建一个VirtualMachineCR,连接到 PVC。 如果虚拟机在源环境中运行,则虚拟机上的
Migration Controller电源,KubeVirt Controller服务会创建一个virt-launcherpod 和VirtualMachineInstanceCR。virt-launcherpod 运行QEMU-KVM,并附加了作为 VM 磁盘的 PVC。
从 RHV 或 OpenStack 冷迁移到本地 OpenShift 集群:
当您创建
Migration自定义资源(CR)来运行迁移计划时,Migration Controller服务为每个源虚拟机磁盘创建一个PersistentVolumeClaimCR,当源是 RHV 时,一个OvirtVolumePopulator,或源是 OpenStack 时的OpenstackVolumePopulatorCR。对于每个 VM 磁盘:
-
Populator Controller服务创建一个临时的持久性卷声明(PVC)。 如果
StorageClass有动态置备程序,则StorageClass置备程序会动态置备持久性卷(PV)。-
Migration Controller服务创建一个 dummy pod 来绑定 所有 PVC。pod 的名称包含pvcinit。
-
-
Populator Controller服务创建一个填充器pod。 填充器pod 将磁盘数据传输到 PV。虚拟机磁盘传输后:
- 临时 PVC 被删除,初始 PVC 指向带有数据的 PV。
-
Migration Controller服务为每个源虚拟机(VM)创建一个VirtualMachineCR,连接到 PVC。 如果虚拟机在源环境中运行,则虚拟机上的
Migration Controller电源,KubeVirt Controller服务会创建一个virt-launcherpod 和VirtualMachineInstanceCR。virt-launcherpod 运行QEMU-KVM,并附加了作为 VM 磁盘的 PVC。
从 VMware 冷迁移到本地 OpenShift 集群:
当您创建
Migration自定义资源(CR)来运行迁移计划时,Migration Controller服务会为每个源虚拟机磁盘创建一个DataVolumeCR。对于每个 VM 磁盘:
-
Containerized Data Importer (CDI)控制器服务会根据DataVolumeCR 中指定的参数创建一个空白的持久性卷声明(PVC)。 -
如果
StorageClass有动态置备程序,则StorageClass置备程序会动态置备持久性卷(PV)。
对于所有虚拟机磁盘:
-
Migration Controller服务创建一个 dummy pod 来绑定 所有 PVC。pod 的名称包含pvcinit。 -
Migration Controller服务为所有 PVC 创建一个转换pod。 conversionpod 运行virt-v2v,它将虚拟机转换为 KVM hypervisor,并将磁盘的数据传送到对应的 PV。虚拟机磁盘传输后:
-
Migration Controller服务为每个源虚拟机(VM)创建一个VirtualMachineCR,连接到 PVC。 如果虚拟机在源环境中运行,则虚拟机上的
Migration Controller电源,KubeVirt Controller服务会创建一个virt-launcherpod 和VirtualMachineInstanceCR。virt-launcherpod 运行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 不会针对正在运行的虚拟机运行,而只针对虚拟机的磁盘运行。
9.5. 收集日志和自定义资源信息 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Web 控制台或命令行界面(CLI)为以下目标下载日志和自定义资源(CR) yaml 文件:
- 迁移计划:Web 控制台或 CLI。
- 虚拟机:Web 控制台或 CLI.
- 命名空间:仅限 CLI。
must-gather 工具会在存档文件中收集以下日志和 CR 文件:
CR:
-
DataVolumeCR:代表在迁移的虚拟机中挂载的磁盘。 -
VirtualMachineCR:代表一个迁移的虚拟机。 -
PlanCR:定义 VM 和存储和网络映射。 -
JobCR:可选:代表迁移前 hook、迁移后 hook 或两者。
-
日志:
-
Importerpod: Disk-to-data-volume 转换日志。importerpod 的命名格式是importer-<migration_plan>-<vm_id><5_char_id>,例如importer-mig-plan-ed90dfc6-9a17-4a8btnfh,其中ed90dfc6-9a17-4a8是经过裁剪的 RHV VM ID,btnfh是生成的 5 个字符的 ID。 -
conversionpod:虚拟机转换日志.conversionpod 运行virt-v2v,它会在虚拟机的 PVC 中安装和配置设备驱动程序。conversionpod 的命名格式是<migration_plan>-<vm_id><5_char_id>。 -
virt-launcherpod:VM launcher 日志.当迁移的虚拟机被开启后,virt-launcherPod 运行QEMU-KVM,并附加了作为虚拟机磁盘的 PVC。 -
forklift-controllerpod:针对must-gather命令指定的迁移计划、虚拟机或命名空间过滤日志。 -
forklift-must-gather-apipod:日志针对must-gather命令指定的迁移计划、虚拟机或命名空间过滤。 hook-jobpod:针对 hook 任务过滤日志。hook-job命名约定是 <migration_plan>-<vm_id><5_char_id>,例如plan2j-vm-3696-posthook-4mx85或plan2j-vm-3696-prehook-mwqnl。注意must-gather归档文件中不包含空的或排除的日志文件。
-
VMware 迁移计划的 must-gather 归档结构示例
9.5.1. 从 web 控制台下载日志和自定义资源信息 复制链接链接已复制到粘贴板!
您可以从 Red Hat OpenShift web 控制台下载有关已完成的、失败或取消迁移计划的自定义资源(VM)的日志和信息。
流程
- 在 Red Hat OpenShift web 控制台中,点 Migration → Plans for virtualization。
- 点迁移计划名称旁的 Get logs。
在 Get logs 窗口中点 Get logs。
日志会被收集。此时会显示
Log collection complete信息。- 点 Download logs 下载存档文件。
- 要下载迁移的虚拟机的日志,请点迁移计划名称,然后点 VM 的 Get logs。
9.5.2. 从命令行访问日志和自定义资源信息 复制链接链接已复制到粘贴板!
您可以使用 must-gather 工具从命令行访问自定义资源(CR)的日志和信息。您必须将 must-gather 数据文件附加到所有客户问题单。
您可以使用过滤选项收集特定命名空间、完成、失败或取消迁移的虚拟机(VM)的数据。
如果您在过滤的 must-gather 命令中指定不存在的资源,则不会创建存档文件。
先决条件
-
您必须以具有
cluster-admin角色的用户身份登录到 OpenShift Virtualization 集群。 -
已安装 Red Hat OpenShift CLI (
oc)。
流程
-
进入要存储
must-gather数据的目录。 运行
oc adm must-gather命令:oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0
$ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 数据被保存为
/must-gather/must-gather.tar.gz。您可以将此文件上传到红帽客户门户网站中的支持问题单中。可选:使用以下选项运行
oc adm must-gather命令来收集过滤的数据:命名空间:
oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- NS=<namespace> /usr/bin/targeted
$ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- NS=<namespace> /usr/bin/targetedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 迁移计划:
oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- PLAN=<migration_plan> /usr/bin/targeted
$ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- PLAN=<migration_plan> /usr/bin/targetedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 虚拟机:
oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- VM=<vm_name> NS=<namespace> /usr/bin/targeted
$ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.10.0 \ -- VM=<vm_name> NS=<namespace> /usr/bin/targeted1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 您必须指定虚拟机名称,而不是虚拟机 ID,因为它出现在
PlanCR 中。
第 10 章 MTV 性能建议 复制链接链接已复制到粘贴板!
检查网络和存储性能、冷和温迁移以及多个迁移或单个迁移的建议。
10.1. MTV 性能建议 复制链接链接已复制到粘贴板!
本节的目的是根据在测试过程中观察到的发现,使用 Migration Toolkit for Virtualization (MTV)共享虚拟机(VM)的建议。
此处提供的数据是从红帽实验室测试中收集而来的,仅供参考。
总体而言,这些数字应该考虑显示最佳情况情况。
观察到的迁移性能可能与这些结果不同,这取决于几个因素。
10.1.1. 确保快速存储和网络速度 复制链接链接已复制到粘贴板!
确保 VMware 和 Red Hat OpenShift (OCP)环境的快速存储和网络速度。
要执行快速迁移,VMware 必须有对数据存储的快速读取访问权限。VMware ESXi 主机之间的网络应该很快,确保 10 GiB 网络连接,并避免网络瓶颈。
- 将 VMware 网络扩展到 OCP Workers Interface 网络环境。
- 确保 VMware 网络提供高吞吐量(10 千兆位以太网)和快速网络以确保接收率与 ESXi 数据存储的读取率一致。
- 请注意,迁移过程使用显著的网络带宽,并且使用迁移网络。如果其他服务使用该网络,它可能会影响这些服务及其迁移率。
-
例如,200 到 325 MiB/s 是与将数据传输到 OCP 接口的每个 ESXi 主机的
vmnic的平均网络传输率。
10.1.2. 确保快速数据存储读取速度,以确保高效和高性能迁移 复制链接链接已复制到粘贴板!
数据存储会读取总传输时间,因此务必要确保从 ESXi 数据存储到 ESXi 主机可以快速读取。
number: 200 到 300 MiB/s 示例是单个 ESXi 服务器的 vSphere 和 ESXi 端点的平均读取率。当使用多个 ESXi 服务器时,可能会提高数据存储读取率。
10.1.3. 端点类型 复制链接链接已复制到粘贴板!
MTV 2.6 允许以下 vSphere 供应商选项:
- ESXi 端点(来自 ESXi 的清单和磁盘传输),在 MTV 2.6 中引入
- vCenter Server 端点;没有 ESXi 主机的网络(清单和从 vCenter 传输)
- vCenter 端点和 ESXi 网络可用(来自 vCenter 的清单、来自 ESXi 的磁盘传输)。
在传输很多注册到多个 ESXi 主机的虚拟机时,建议使用 vCenter 端点和 ESXi 网络。
从 vSphere 7.0 开始,ESXi 主机可以标记要用于 Network Block Device (NBD)传输的网络。这可以通过使用适当的 vSphereBackupNFC 标签标记所需的虚拟网络接口卡(NIC)来实现。完成后,MTV 可以使用 ESXi 接口进行网络传输至 OpenShift,只要 worker 和 ESXi 主机接口可被访问。当迁移用户可能无法访问 ESXi 凭证时,这特别有用,但希望控制哪个 ESXi 接口用于迁移。
如需了解更多详细信息,请参阅: (MTV-1230)
您可以使用以下 ESXi 命令,该命令为 NBD 备份指定接口 vmk2 :
esxcli network ip interface tag add -t vSphereBackupNFC -i vmk2
esxcli network ip interface tag add -t vSphereBackupNFC -i vmk2
在可能的情况下,确保使用与最大性能相关的 BIOS 配置集设置用于执行迁移的主机。使用 vSphere 中控制的主机应该检查是否设置了 高性能。
测试显示,当传输设置了 BIOS 和主机电源管理集的 10 个虚拟机时,迁移在平均数据存储的读速率中增加了 15 MiB。
10.1.5. 避免 VMware 网络上的额外网络负载 复制链接链接已复制到粘贴板!
在使用 ESXi 端点时,您可以选择迁移网络来减少 VMware 网络上的网络负载。
通过合并虚拟化供应商,MTV 可以选择可在 ESXi 主机上访问的特定网络,以将虚拟机迁移到 OpenShift。从 MTV UI 中的 ESXi 主机选择此迁移网络可确保使用所选网络作为 ESXi 端点来执行传输。
您必须确保所选网络与 OCP 接口的连接,有足够的带宽用于迁移,并且网络接口没有饱和。
在具有快速网络(如 10GbE 网络)的环境中,可能会预期迁移网络影响以匹配 ESXi 数据存储读取的速度。
10.1.6. 每个 ESXi 主机控制最大并发磁盘迁移 复制链接链接已复制到粘贴板!
设置 MAX_VM_INFLIGHT MTV 变量,以控制 ESXi 主机允许的最大并发虚拟机传输数量。
MTV 允许使用此变量控制并发性 ; 默认情况下,它被设置为 20。
当设置 MAX_VM_INFLIGHT 时,请考虑 ESXi 主机需要最大并发虚拟机传输的数量。 务必要考虑同时传输的迁移类型。温迁移,由迁移将在计划时间迁移的正在运行的虚拟机定义。
温迁移使用快照来比较和迁移之前磁盘快照之间的区别。在最终运行的虚拟机到 OpenShift 之前,快照之间差异的迁移会随特定间隔进行。
在 MTV 2.6 中,MAX_VM_INFLIGHT 保留每个虚拟机的一个传输插槽,无论特定快照的当前迁移活动或属于单个虚拟机的磁盘数量。 由 MAX_VM_INFLIGHT 设置的总用于指示允许每个 ESXi 主机的并发虚拟机 tranfers 数。
Example
-
MAX_VM_INFLIGHT = 20和 2 ESXi 主机在提供程序中定义的 20 和 2 ESXi 主机意味着每个主机都可以传输 20 个虚拟机。
10.1.7. 同时迁移多个虚拟机时,会更快地完成迁移 复制链接链接已复制到粘贴板!
当迁移特定 ESXi 主机的多个虚拟机时,为多个虚拟机启动并发迁移会导致更快地迁移。
测试演示:从单一主机迁移 10 个虚拟机(每个包含 35 GiB 数据,总大小为 50 GiB)比按顺序迁移相同数量的虚拟机要快得多。
可以从单个主机增加并发迁移到 10 多台虚拟机,但其显示没有显著改进。
例子
- 1 个磁盘虚拟机需要 6 分钟,迁移率为 100 MiB/s
- 10 个磁盘虚拟机需要 22 分钟,迁移率为 272 MiB/s
- 20 个单一磁盘虚拟机需要 42 分钟,迁移率为 284 MiB/s
从上述示例中,很明显地迁移 10 个虚拟机的速度比按顺序迁移同一虚拟机的迁移速度要快三倍。
当同时移动 10 或 20 个虚拟机时,迁移率几乎相同。
10.1.8. 使用多个主机更快地迁移 复制链接链接已复制到粘贴板!
使用带有注册虚拟机的多个主机在用于迁移的 ESXi 主机中平均分布,从而可以更快地迁移时间。
测试显示,在传输超过 10 个磁盘 VMS 时,每个磁盘 VMS 都包含超过 50G 的总数据,使用额外的主机可减少迁移时间。
例子
- 80 个磁盘虚拟机,包括每个 35 GiB 数据,使用单个主机需要 2 小时和 43 分钟,迁移率为 294 MiB/s。
- 80 个磁盘虚拟机,包括每个 35 GiB 数据,使用 8 ESXi 主机需要 41 分钟,迁移率为 1,173 MiB/s。
从上述示例中,从 8 个 ESXi 主机迁移 80 个虚拟机(10 个从每个主机)迁移 80 个虚拟机的速度比从单个 ESXi 主机运行相同的虚拟机速度要快四倍。
同时迁移大量虚拟机,同时从 8 个 ESXi 主机中迁移可能会提高性能。但是,它没有被测试,因此不推荐这样做。
10.1.9. 与单个大型迁移计划相比,多个迁移计划 复制链接链接已复制到粘贴板!
单个迁移计划可以引用的最大磁盘数为 500。如需了解更多详细信息,请参阅 (MTV-1203)。
当尝试在单个迁移计划中迁移许多虚拟机时,所有迁移可能需要一些时间才能启动。 通过将一个迁移计划分成多个迁移计划,可以同时启动它们。
比较以下迁移:
-
1 计划中的 500 个使用 8 ESXi 主机的虚拟机,
max_vm_inflight=100,需要 5 小时和 10 分钟。 -
使用 8 个计划中的 8 个 ESXi 主机(
max_vm_inflight=100)需要 57 分钟。
测试显示,通过将单个大计划分成多个中等规模的计划,例如,每个计划使用 100 个虚拟机,可以减少总迁移时间。
10.1.10. 为冷迁移测试的最大值 复制链接链接已复制到粘贴板!
- 测试的 ESXi 主机的最大数量:8
- 单个迁移计划中的最大虚拟机数量:500
- 单个测试中迁移的虚拟机的最大数量: 5000
- 同时执行的迁移计划的最大数量: 40
- 最大单个磁盘大小迁移:6 TB 磁盘,其中包括 3TB 数据
- 单个虚拟机上迁移的最大磁盘数: 50
- 最高观察到的单个数据存储从单个 ESXi 服务器读取率: 312 MiB/second
- 使用八个 ESXi 服务器和两个数据存储的读率最高观察到的多数据存储:1,242 MiB/second
- 最高观察到的虚拟 NIC 传输率到 OpenShift worker: 327 MiB/second
- 单个磁盘的最大迁移传输率:162 MiB/秒(在传输非并发迁移 1.5 TB 数据时观察到)
- 来自单个 ESXi 主机的最大冷迁移传输率(单一磁盘):294 MiB/s (并发迁移 30 个虚拟机,使用 35/50 GiB,来自 Single ESXi)
- 来自多个 ESXi 主机的最大冷迁移传输率(单个磁盘):1173MB/s (并发迁移 80 个虚拟机,使用 35/50 GiB,从 8 ESXi 服务器,每个 ESXi 中的 10 个虚拟机)
10.1.11. 温迁移建议 复制链接链接已复制到粘贴板!
以下建议特定于温迁移:
- 并行迁移到 400 个磁盘
测试涉及并行迁移 200 个虚拟机,每 2 个磁盘使用 8 ESXi 主机,共 400 个磁盘。在迁移计划中不会并行迁移超过 400 个磁盘的测试,因此不建议并行迁移超过这个数量的磁盘。
- 为最快的速度并行迁移最多 200 个磁盘
测试成功在具有 200、300 和 400 磁盘的并行磁盘迁移上执行。在测试迁移 200 个磁盘和迁移 300 和 400 磁盘时,预复制迁移率大约有 25%。
因此,建议以 200 个或更少形式执行并行磁盘迁移,而不是 300 到 400 个磁盘,除非前复制速度减少 25% 不会影响您的截止计划。
- 在可能的情况下,设置在迁移计划启动后马上设置截止时间
要减少温迁移的整体时间,建议在迁移计划启动后立即进行 cutover。这会导致 MTV 每个虚拟机 只运行一个 precopy。这个建议是有效的,无论迁移计划中的虚拟机数量如何。
- 在快照之间增加预复制间隔
如果您要使用单个虚拟机创建多个迁移计划,并在迁移开始和剪切之间有足够的时间,将 controller_precopy_interval 参数的值增加到 120 到 240 分钟(含)。较长的设置将在剪切前减少每个虚拟机的快照和磁盘传输总数。
10.1.12. 为 warm 迁移测试的最大值 复制链接链接已复制到粘贴板!
- 测试的 ESXi 主机的最大数量:8
- worker 节点的最大数量:12
- 单个迁移计划中的最大虚拟机数量:200
- 并行磁盘传输的最大数量:400,200 个虚拟机,6 ESXis,传输率为 667 MB/s
- 最大单个磁盘大小迁移:6 TB 磁盘,其中包括 3TB 数据
- 单一虚拟机中迁移的最大磁盘数: 3
- 每个 ESXi 主机的最大并行磁盘传输数:68
- 在没有并发迁移的情况下观察到单个磁盘的最大传输率:76.5 MB/s
- 从一个 ESXi 主机观察到多个磁盘的最大传输率: 253 MB/s (并发迁移 10 个虚拟机,每个磁盘 1 个磁盘,每个磁盘使用 35/50 GiB)
- 观察到多个磁盘的总传输率(8 ESXi 主机:802 MB/s (并发迁移 70 个虚拟机,每个磁盘有 3 个磁盘,每个磁盘使用 35/50 GiB)
10.1.13. 迁移带有大量磁盘的虚拟机的建议 复制链接链接已复制到粘贴板!
建议为每个独立磁盘使用 1 TB 或更高磁盘上的数据的虚拟机:
- 调度适当的维护窗口,以迁移大型磁盘虚拟机(VM)。这种迁移是敏感的操作,可能需要仔细规划维护窗口和停机时间,特别是在较低存储和网络活动期间。
- 检查在那些大型虚拟机(VM)迁移过程中没有运行其他迁移活动或其他大量网络或存储活动。您应该将这些大型虚拟机迁移视为特殊情况。在这些迁移过程中,请优先选择 MTV 活动。计划在这些虚拟机上有较少的活动和相关数据存储时,将这些虚拟机迁移到一个时间。
-
对于具有高 churn 率的大型虚拟机,这意味着数据在快照之间经常更改,请考虑从默认减少 warm 迁移
controller_precopy_interval,即 60 分钟。 确保在调度切换前至少 24 小时启动此过程,以便允许多个成功的 precopy 快照完成。 在调度 cutover 时,请确保维护窗口允许有足够的时间复制更改的最后一个快照,并且剪切过程从该维护窗口开始。 - 对于非常大的单磁盘虚拟机,在一些停机时间时,请选择冷迁移,而不是温迁移,特别是在大型虚拟机快照时。
- 考虑将特定的大型磁盘中的数据分割为多个磁盘,在使用温迁移时启用 MTV 的并行磁盘迁移。
- 如果您有大型数据库磁盘,持续写入大量数据,如果无法停机和虚拟机快照,则可能需要考虑数据库数据的特定复制选项,以便在 MTV 之外以这些特定迁移为目标。如果适用此案例,请查阅您的数据库特定选项。
10.1.14. 为 NBD 传输模式增加 AIO 大小和缓冲区计数 复制链接链接已复制到粘贴板!
当您使用 Migration Toolkit for Virtualization (MTV)同步输入/输出(AIO)缓冲时,您可以更改 Network Block Device (NBD)传输网络文件复制(NFC)参数来提高迁移性能。
使用 AIO 缓冲仅适用于冷迁移用例。
在初始化温迁移前禁用 AIO 设置。如需了解更多详细信息,请参阅禁用 AIO 缓冲配置。
10.1.14.1. 密钥发现 复制链接链接已复制到粘贴板!
通过在带有以下值的单一 ESXi 主机上迁移多个(10)虚拟机(VM)来实现最佳迁移性能:
-
VixDiskLib.nfcAio.Session.BufSizeIn64KB=16 -
vixDiskLib.nfcAio.Session.BufCount=4
-
在使用 AIO 缓冲设置时请注意以下改进(同步缓冲数):
- 迁移时间缩短为 31.1%,从 0:24:32 缩短为 0:16:54。
- 读取率从 347.83 MB/s 增加到 504.93 MB/s。
- 在单一虚拟机上使用 AIO 缓冲设置时,无法显著改进。
- 当使用来自多个主机的多个虚拟机的 AIO 缓冲设置时,无法显著改进。
10.1.14.2. 支持 AIO 大小和缓冲区计数的主要要求 复制链接链接已复制到粘贴板!
支持基于使用以下版本执行的测试:
- vSphere 7.0.3
- VDDK 7.0.3
10.1.15. 启用并配置 AIO 缓冲 复制链接链接已复制到粘贴板!
您可以启用并配置与 Migration Toolkit for Virtualization (MTV)的同步输入/输出(AIO)缓冲。
流程
确保
openshift-mtv命名空间中的forklift-controllerpod 支持 AIO 缓冲值。由于 pod 名称前缀是动态的,因此运行以下命令来检查 pod 名称:oc get pods -n openshift-mtv | grep forklift-controller | awk '{print $1}'oc get pods -n openshift-mtv | grep forklift-controller | awk '{print $1}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,如果 pod 名称前缀为 "forklift-controller-667f57c8f8-qllnx",则输出为:
forklift-controller-667f57c8f8-qllnx
forklift-controller-667f57c8f8-qllnxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,检查 pod 的环境变量:
oc get pod forklift-controller-667f57c8f8-qllnx -n openshift-mtv -o yaml
oc get pod forklift-controller-667f57c8f8-qllnx -n openshift-mtv -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查输出中的以下行:
... \- name: VIRT\_V2V\_EXTRA\_ARGS \- name: VIRT\_V2V\_EXTRA\_CONF\_CONFIG\_MAP ...
... \- name: VIRT\_V2V\_EXTRA\_ARGS \- name: VIRT\_V2V\_EXTRA\_CONF\_CONFIG\_MAP ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
openshift-mtv 命名空间中,执行以下步骤来编辑ForkliftController自定义资源(CR):运行以下命令,访问
ForkliftControllerCR 进行编辑:oc edit forkliftcontroller -n openshift-mtv
oc edit forkliftcontroller -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
ForkliftControllerCR 的spec部分添加以下行:virt_v2v_extra_args: "--vddk-config /mnt/extra-v2v-conf/input.conf" virt_v2v_extra_conf_config_map: "perf"
virt_v2v_extra_args: "--vddk-config /mnt/extra-v2v-conf/input.conf" virt_v2v_extra_conf_config_map: "perf"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令来创建所需的配置映射
perf:oc -n openshift-mtv create cm perf
oc -n openshift-mtv create cm perfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将所需的缓冲区配置值转换为 Base64。例如,对于 16/4,运行以下命令:
echo -e "VixDiskLib.nfcAio.Session.BufSizeIn64KB=16\nvixDiskLib.nfcAio.Session.BufCount=4" | base64
echo -e "VixDiskLib.nfcAio.Session.BufSizeIn64KB=16\nvixDiskLib.nfcAio.Session.BufCount=4" | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出结果类似如下:
Vml4RGlza0xpYi5uZmNBaW8uU2Vzc2lvbi5CdWZTaXplSW42NEtCPTE2CnZpeERpc2tMaWIubmZjQWlvLlNlc3Npb24uQnVmQ291bnQ9NAo=
Vml4RGlza0xpYi5uZmNBaW8uU2Vzc2lvbi5CdWZTaXplSW42NEtCPTE2CnZpeERpc2tMaWIubmZjQWlvLlNlc3Npb24uQnVmQ291bnQ9NAo=Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在配置映射
perf中,在binaryData部分中输入 Base64 字符串,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
重启
forklift-controllerpod 以应用新配置。 -
确保
VIRT_V2V_EXTRA_ARGS环境变量反映了更新的设置。 运行迁移计划并检查迁移 pod 的日志。确认 AIO 缓冲区设置作为参数传递,特别是
--vddk-config值。例如,如果您运行以下命令:
exec: /usr/bin/virt-v2v … --vddk-config /mnt/extra-v2v-conf/input.conf
exec: /usr/bin/virt-v2v … --vddk-config /mnt/extra-v2v-conf/input.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果
debug_level = 4,日志包括类似如下的部分:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证迁移 pod 中是否有正确的配置映射值。通过登录到迁移 pod 并运行以下命令完成此操作:
cat /mnt/extra-v2v-conf/input.conf
cat /mnt/extra-v2v-conf/input.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例如下:
VixDiskLib.nfcAio.Session.BufSizeIn64KB=16 vixDiskLib.nfcAio.Session.BufCount=4
VixDiskLib.nfcAio.Session.BufSizeIn64KB=16 vixDiskLib.nfcAio.Session.BufCount=4Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:运行以下命令来启用调试日志。命令将配置转换为 Base64,包括高级别:
echo -e "`VixDiskLib.nfcAio.Session.BufSizeIn64KB=16\nVixDiskLib.nfcAio.Session.BufCount=4\nVixDiskLib.nfc.LogLevel=4`" | base64
echo -e "`VixDiskLib.nfcAio.Session.BufSizeIn64KB=16\nVixDiskLib.nfcAio.Session.BufCount=4\nVixDiskLib.nfc.LogLevel=4`" | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意添加高级别会降低性能,且仅用于调试目的。
10.1.16. 禁用 AIO 缓冲 复制链接链接已复制到粘贴板!
您可以使用 Migration Toolkit for Virtualization (MTV)禁用冷迁移的 AIO 缓冲。您必须使用 MTV 为温迁移禁用 AIO 缓冲。
以下流程假设根据启用和配置 AIO 缓冲中的步骤启用并配置 AIO 缓冲。
流程
在
openshift-mtv 命名空间中,执行以下步骤来编辑ForkliftController自定义资源(CR):运行以下命令,访问
ForkliftControllerCR 进行编辑:oc edit forkliftcontroller -n openshift-mtv
oc edit forkliftcontroller -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从
ForkliftControllerCR 的spec部分删除以下行:virt_v2v_extra_args: "`–vddk-config /mnt/extra-v2v-conf/input.conf`" virt_v2v_extra_conf_config_map: "`perf`"
virt_v2v_extra_args: "`–vddk-config /mnt/extra-v2v-conf/input.conf`" virt_v2v_extra_conf_config_map: "`perf`"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
删除名为
perf的配置映射:oc delete cm perf -n openshift-mtv
oc delete cm perf -n openshift-mtvCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
可选:重启
forklift-controllerpod,以确保更改生效。
10.2. MTV 性能附加组件 复制链接链接已复制到粘贴板!
此处提供的数据是从红帽实验室测试中收集而来的,仅供参考。
总体而言,这些数字应该考虑显示最佳情况情况。
观察到的迁移性能可能与这些结果不同,这取决于几个因素。
第 11 章 Telemetry 复制链接链接已复制到粘贴板!
红帽使用遥测从 Migration Toolkit for Virtualization (MTV)安装收集匿名使用数据,以帮助我们提高 MTV 的可用性和效率。
MTV 收集以下数据:
- 迁移计划状态 :迁移数量。包括失败、成功或被取消的那些。
- Provider :每个供应商的迁移数量。包括 Red Hat Virtualization、vSphere、OpenStack、OVA 和 OpenShift Virtualization 供应商。
- mode :按模式的迁移数量。包括冷迁移和温迁移。
- target :按目标的迁移数量。包括本地和远程迁移。
- 计划 ID :迁移计划的 ID 号。数字由 MTV 分配。
指标每 10 秒计算一次,并每周、每月和每年报告。