第 6 章 将虚拟机转换为 Q35 机器类型
在 RHEL 10 中,i440fx 机器类型已弃用,并将在以后的 RHEL 主版本中删除。另外,使用 q35 计算机类型与 i440fx 相比,如高级主机控制器接口(AHCI)和虚拟输入输出内存管理单元(vIOMMU)模拟。
因此,红帽建议转换使用 i440fx 的虚拟机(VM)以使用 q35。请注意,您还可以转换尚未定义的虚拟机配置。
注意事项
更改虚拟机的机器类型与更改物理机上的主板类似。因此,在某些情况下,将虚拟机的机器类型从 i440fx 转换为 q35 可能会导致客户端操作系统的功能出现问题。
先决条件
RHEL 10 主机上的虚拟机使用
i440fx机器类型。要确认这一点,请使用以下命令:virsh dumpxml <vm-name> | grep machine
# virsh dumpxml <vm-name> | grep machine <type arch='x86_64' machine='pc-i440fx-10.0.0'>hvm</type>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您已备份了虚拟机的原始配置,以便在需要时使用它来转换和灾难恢复。
virsh dumpxml <vm-name> > <vm-name>-backup.xml
# virsh dumpxml <vm-name> > <vm-name>-backup.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
未定义虚拟机的步骤
调整虚拟机的配置以使用 Q35。作为源配置,使用之前创建的备份文件。
cat <vm-name>-backup.xml | virt-xml --edit --convert-to-q35 > <vm-name-q35>.xml
# cat <vm-name>-backup.xml | virt-xml --edit --convert-to-q35 > <vm-name-q35>.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 定义虚拟机。
virsh define <vm-name-q35>.xml
# virsh define <vm-name-q35>.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
定义的虚拟机的步骤
调整虚拟机的配置以使用 Q35。
virt-xml <vm-name> --edit --convert-to-q35
# virt-xml <vm-name> --edit --convert-to-q35Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果虚拟机正在运行,请将其关闭。
virsh shutdown <vm-name>
# virsh shutdown <vm-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
显示虚拟机的机器类型。
virsh dumpxml <vm-name> | grep machine
# virsh dumpxml <vm-name> | grep machine <type arch='x86_64' machine='q35'>hvm</type>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 启动虚拟机并检查您可以登录到客户端操作系统。
故障排除
- 如果您使用 Windows 客户机操作系统,且虚拟机在转换后无法找到引导设备,请引导至安全模式,然后重启虚拟机。
如果更改机器类型使虚拟机无法正常工作,请根据备份的配置定义新虚拟机。
virsh define <vm-name>-backup.xml
# virsh define <vm-name>-backup.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow