10.15. 为 NBD 传输模式增加 AIO 大小和缓冲区计数
当您使用 Migration Toolkit for Virtualization (MTV)同步输入/输出(AIO)缓冲时,您可以更改 Network Block Device (NBD)传输网络文件复制(NFC)参数来提高迁移性能。
使用 AIO 缓冲仅适用于冷迁移用例。
在初始化温迁移前禁用 AIO 设置。如需了解更多详细信息,请参阅禁用 AIO 缓冲配置。
10.15.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.15.2. 支持 AIO 大小和缓冲区计数的主要要求 复制链接链接已复制到粘贴板!
支持基于使用以下版本执行的测试:
- vSphere 7.0.3
- VDDK 7.0.3
10.15.3. 启用并配置 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.15.4. 禁用 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,以确保更改生效。