9.15. 虚拟化
在某些情况下,通过 https 或 ssh 安装虚拟机会失败
目前,当尝试通过 https 或 ssh 连接从 ISO 源安装客户机操作系统时,virt-install
工具会失败 - 例如使用 virt-install --cdrom https://example/path/to/image.iso
。上述操作意外中止,并显示 internal error: process exited while connecting to monitor
消息,而不是创建虚拟机(VM)。
同样,使用 RHEL 9 web 控制台安装客户机操作系统失败,如果使用了 https 或 ssh URL,或 Download OS
功能,则会显示 Unknown driver 'https'
错误。
要临时解决这个问题,请在主机上安装 qemu-kvm-block-curl
和 qemu-kvm-block-ssh
,以启用 https 和 ssh 协议支持。或者,使用不同的连接协议或不同的安装源。
在虚拟机中使用 NVIDIA 驱动程序会禁用 Wayland
目前,NVIDIA 驱动程序与 Wayland 图形会话不兼容。因此,使用 NVIDIA 驱动程序的 RHEL 客户机操作系统会自动禁用 Wayland 并加载 Xorg 会话。这主要在以下情况下发生:
- 当您通过 NVIDIA GPU 设备传递给 RHEL 虚拟机(VM)
- 当您为 RHEL 虚拟机分配 NVIDIA vGPU mediated 设备
Jira:RHELPLAN-117234[1]
在 AMD Milan 系统上有时无法提供 Milan
VM CPU 类型
在某些 AMD Milan 系统上,默认在 BIOS 中禁用了增强 REP MOVSB(erms
)和 Fast Short REP MOVSB(fsrm
)功能标记。因此,在这些系统上可能无法使用 Milan
CPU 类型。另外,在具有不同功能标志设置的 Milan 主机之间的虚拟机实时迁移可能会失败。要临时解决这个问题,在主机的 BIOS 中手动打开 erms
和 fsrm
。
Bugzilla:2077767[1]
带有故障切换设置的 hostdev
接口在热拔后无法进行热插
从正在运行的虚拟机(VM)中删除带有故障切换配置的 hostdev
网络接口后,该接口目前无法重新连接到同一正在运行的虚拟机。
带有故障切换 VF 的虚拟机实时复制迁移失败
目前,如果虚拟机使用启用了虚拟功能(VF)故障转移功能的设备,则试图对一个正在运行的虚拟机(VM)进行 post-copy 迁移会失败。要临时解决这个问题,请使用标准迁移类型,而不要使用 post-copy 迁移方式。
主机网络无法在实时迁移过程中 ping 使用 VF 的虚拟机
当使用配置的虚拟功能 (VF) 实时迁移虚拟机时,如使用虚拟 SR-IOV 软件的虚拟机,虚拟机的网络不对其它设备看到,如 ping
之类的命令无法访问虚拟机。完成迁移后,问题将不再发生。
禁用 AVX 会导致虚拟机无法引导
在使用具有高级向量扩展(AVX)支持的 CPU 的主机上,尝试引导明确禁用 AVX 的虚拟机当前会失败,并触发虚拟机中的内核 panic。
Bugzilla:2005173[1]
在网络接口重置后,Windows VM 无法获取 IP 地址
有时,Windows 虚拟机在自动网络接口重置后无法获取 IP 地址。因此,虚拟机无法连接到网络。要临时解决这个问题,在 Windows 设备管理器中禁用并重新启用网络适配器驱动程序。
Windows Server 2016 虚拟机有时会在热插拔 vCPU 后停止工作
目前,将 vCPU 分配给运行 Windows Server 2016 客户机操作系统的虚拟机(VM)可能会导致各种问题,如虚拟机意外终止、变得没有响应或重启。
使用大量队列可能会导致虚拟机失败
当启用了虚拟可信平台模块(vTPM)设备并且 multi-queue virtio-net 功能被配置为使用超过 250 个队列时,虚拟机(VM)可能会失败。
这个问题是由 vTPM 设备的限制造成的。vTPM 设备对打开的文件描述符的最大数有一个硬编码的限制。因为会为每个新队列打开多个文件描述符,因此可能会超过内部 vTPM 的限值,从而导致虚拟机失败。
要临时解决这个问题,请选择以下两个选项之一:
- 保持 vTPM 设备启用,但使用少于 250 个队列。
- 禁用 vTPM 设备以使用超过 250 个队列。
Jira:RHEL-13335[1]
在具有 NVIDIA passthrough 设备的虚拟机上的冗余错误消息
使用带有 RHEL 9.2 及更新版本的操作系统的 Intel 主机机器时,带有直通 NVDIA GPU 设备的虚拟机(VM)会频繁地记录以下错误信息:
Spurious APIC interrupt (vector 0xFF) on CPU#2, should never happen.
但是,这个错误消息不会影响虚拟机的功能,可以忽略。详情请查看 红帽知识库。
Bugzilla:2149989[1]
在带有 AMD EPYC CPU 的主机上进行 v2v 转换后,一些 Windows 客户机不能启动
在使用 virt-v2v
工具将使用 Windows 11 或 Windows Server 2022 的虚拟机(VM)转换为客户机操作系统后,虚拟机当前不能启动。这会在使用 AMD EPYC 系列 CPU 的主机上发生。
Bugzilla:2168082[1]
在主机上重启 OVS 服务可能会阻止在其上运行的虚拟机的网络连接
当 Open vSwitch (OVS)服务在主机上重启时或崩溃时,在此主机上运行的虚拟机(VM)无法恢复网络设备的状态。因此,虚拟机可能无法完全接收数据包。
此问题只会影响在 virtio
网络堆栈中使用压缩 virtqueue 格式的系统。
要临时解决这个问题,使用 virtio
网络设备定义中的 packed=off
参数来禁用压缩的 virtqueue。当禁用压缩的 virtqueue 时,网络设备的状态在某些情况下可以从 RAM 中恢复。
恢复中断的复制后虚拟机迁移可能会失败
如果虚拟机(VM)的复制后迁移中断,然后在同一传入端口上立即恢复,则迁移可能会失败,并显示以下错误 Address already in use
要临时解决这个问题,请在恢复后复制迁移或切换到迁移恢复的另一个端口前至少等待 10 秒。
NUMA 节点映射在 AMD EPYC CPU 上无法正常工作
QEMU 无法正确处理 AMD EPYC CPU 上的 NUMA 节点映射。因此,如果使用 NUMA 节点配置,具有这些 CPU 的虚拟机(VM)的性能可能会受到负面影响。另外,虚拟机在启动过程中会显示类似如下的警告。
sched: CPU #4's llc-sibling CPU #3 is not on the same node! [node: 1 != 0]. Ignoring dependency. WARNING: CPU: 4 PID: 0 at arch/x86/kernel/smpboot.c:415 topology_sane.isra.0+0x6b/0x80
要临时解决这个问题,请不要将 AMD EPYC CPU 用于 NUMA 节点配置。
虚拟机迁移过程中的 NFS 故障会导致迁移失败和源虚拟机 coredump
目前,如果 NFS 服务或服务器在虚拟机(VM)迁移过程中关闭,则源虚拟机的 QEMU 在重新开始运行时无法重新连接到 NFS 服务器。因此,迁移会失败,并在源虚拟机上发起 coredump。目前,还没有可用的临时解决方案。
PCIe ATS 设备无法在 Windows 虚拟机上工作
当您在带有 Windows 客户机操作系统的虚拟机的 XML 配置中配置 PCIe 地址转换服务(ATS)设备时,在引导虚拟机后,客户机不会启用 ATS 设备。这是因为 Windows 目前不支持 virtio
设备上的 ATS。
如需更多信息,请参阅 红帽知识库。
virsh blkiotune --weight
命令无法设置正确的 cgroup I/O 控制器值
目前,使用 virsh blkiotune --weight
命令设置 VM 权重无法按预期工作。该命令无法在 cgroup I/O 控制器接口文件中设置正确的 io.bfq.weight
值。目前还没有临时解决方案。
启动带有 NVIDIA A16 GPU 的虚拟机有时会导致主机 GPU 停止工作
目前,如果您启动了一个使用 NVIDIA A16 GPU 直通设备的虚拟机,在某些情况下,主机系统上的 NVIDIA A16 GPU 物理设备会停止工作。
要临时解决这个问题,请重新 hypervisor ,并将 GPU 设备的 reset_method
设置为 bus
:
# echo bus > /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method # cat /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method bus
详情请查看 红帽知识库。
Jira:RHEL-7212[1]
带有 FIFO 调度程序的 RT 虚拟机无法引导
目前,在将实时(RT)虚拟机(VM)设置为对 vCPU 调度程序使用 fifo
设置后,当您尝试引导它时,虚拟机变得无响应。相反,虚拟机显示 Guest has not initialized the display (yet)
错误。
Jira:RHEL-2815[1]
Windows 虚拟机可能会因为存储错误而变得无响应
在使用 Windows 客户机操作系统的虚拟机上,在高 I/O 负载下,系统在某些情况下会变得无响应。当发生这种情况时,系统会记录一个 viostor Reset to device, \Device\RaidPort3, was issued
错误。
Jira:RHEL-1609[1]
在引导时,带有某些 PCI 设备的 Windows 10 虚拟机可能会变得无响应
目前,如果将具有本地磁盘后端的 virtio-win-scsi
PCI 设备被附加到虚拟机,则使用 Windows 10 客户机操作系统的虚拟机(VM)会在启动过程中变得无响应。要临时解决这个问题,请引导启用了 multi_queue
选项的虚拟机。
Jira:RHEL-1084[1]
virtio-win 驱动程序的 virtio-win-guest-tool 的修复功能无法工作
目前,当对 virtio-win
驱动程序使用 virtio-win-guest-tool
的 Repair
按钮时,如 Virtio Balloon Driver,则按钮无效。因此,在从客户机上删除后,驱动程序无法重新安装。
Jira:RHEL-1517[1]
具有内存气球设备集的 Windows 11 虚拟机在重启过程中可能会意外关闭
目前,重新引导使用 Windows 11 客户机操作系统和内存 balloon 设备的虚拟机(VM)在某些情况下会失败,并显示 DRIVER POWER STAT FAILURE
蓝屏错误。
Jira:RHEL-935[1]
在高网络负载情况下迁移 Windows 11 或 Windows Server 2022 虚拟机有时会失败
当实时迁移使用 Windows Server 2022 或 Windows 11 作为客户机操作系统的虚拟机(VM)时,如果网络受到高打包损失的影响,迁移可能会变得无响应或意外终止。
Jira:RHEL-2316[1]
在某些情况下恢复复制后虚拟机迁移失败
目前,当执行虚拟机(VM)的复制后迁移时,如果在迁移的恢复阶段发生代理网络故障,则虚拟机会变得无响应,且迁移无法恢复。相反,恢复命令显示以下错误:
error: Requested operation is not valid: QEMU reports migration is still running
virtio balloon 驱动程序有时在 Windows 10 虚拟机上无法工作
在某些情况下,virtio-balloon 驱动程序无法在使用 Windows 10 客户机操作系统的虚拟机(VM)上正常工作。因此,此类虚拟机可能无法有效地使用其分配的内存。
virtio 文件系统在 Windows 虚拟机中性能不佳
目前,当在使用 Windows 客户机操作系统的虚拟机(VM)上配置了 virtio 文件系统(virtiofs)时,虚拟机中的 virtiofs 性能比使用 Linux 客户机的虚拟机中的性能要差的多。
Jira:RHEL-1212[1]
在 Windows 虚拟机上热拔存储设备可能会失败
在使用 Windows 客户机操作系统的虚拟机(VM)上,当虚拟机运行时删除存储设备(也称为设备热拔)在某些情况下会失败。因此,存储设备一直附加在虚拟机上,磁盘管理器服务可能会变得无响应。
将 CPU 热插到 Windows 虚拟机可能会导致系统失败
当将最大数量的 CPU 热插到启用了巨页的 Windows 虚拟机(VM)时,客户机操作系统可能会崩溃,并显示以下 停止错误 :
PROCESSOR_START_TIMEOUT
在 Windows 虚拟机上更新 virtio
驱动程序可能会失败
当在 Windows 虚拟机(VM)上更新 KVM 半虚拟化(virtio
)驱动程序时,更新可能会导致鼠标停止工作,可能无法对新安装的驱动程序签名。当通过从 virtio-win-guest-tools
软件包(其是 virtio-win.iso
文件的一部分)安装来更新 virtio
驱动程序时,此问题会发生。
要临时解决这个问题,请使用 Windows 设备管理器更新 virtio
驱动程序。
Jira:RHEL-574[1]
在使用 vhost-kernel
的虚拟机中无法更改 TX 队列大小
目前,您无法使用 vhost-kernel
作为 virtio
网络驱动程序后端的 KVM 虚拟机(VM)设置 TX 队列大小。因此,您只能将默认值 256 用于 TX 队列,这可能会阻止您优化虚拟机网络吞吐量。
Jira:RHEL-1138[1]