11.17. 虚拟化
在某些情况下,通过 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)可能会导致各种问题,如虚拟机意外终止、变得没有响应或重启。当前没有解决此问题的方法。
在具有 NVIDIA passthrough 设备的虚拟机上的冗余错误消息
使用带有 RHEL 9.2 及更新版本的操作系统的 Intel 主机机器时,带有直通 NVDIA GPU 设备的虚拟机(VM)会频繁地记录以下错误信息:
Spurious APIC interrupt (vector 0xFF) on CPU#2, should never happen.
但是,这个错误消息不会影响虚拟机的功能,可以忽略。详情请查看 红帽知识库。
Bugzilla:2149989[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]
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]
具有内存气球设备集的 Windows 11 虚拟机在重启过程中可能会意外关闭
目前,重新引导使用 Windows 11 客户机操作系统和内存 balloon 设备的虚拟机(VM)在某些情况下会失败,并显示 DRIVER POWER STAT FAILURE
蓝屏错误。当前没有解决此问题的方法。
Jira:RHEL-935[1]
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 队列大小。因此,您只能对 TX 队列使用默认值 256 ,这可能会阻止您优化虚拟机网络吞吐量。当前没有解决此问题的方法。
Jira:RHEL-1138[1]
VM 在 AMD EPYC 模型中错误地报告 spec_rstack_overflow
参数的 存在安全漏洞的
状态
当您引导主机时,它不会检测 spec_rstack_overflow
参数中的任何漏洞。查询日志参数后,它会显示信息:
# cat /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow Mitigation: Safe RET
在同一主机上引导虚拟机后,虚拟机会在 spec_rstack_overflow
参数中检测漏洞。当查询日志的参数时,它会显示信息:
# cat /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow Vulnerable: Safe RET, no microcode
但是,这是一个假的警告消息,您可以忽略虚拟机中的 /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow
文件的状态。
Jira:RHEL-17614[1]
虚拟机错误地报告了一个 AMD SRSO 漏洞
在具有 AMD Zen 3 和 4 CPU 架构的 RHEL 9 主机上运行的 RHEL 9.4 虚拟机错误地报告了一个 Speculative return Stack Overflow (SRSO)攻击漏洞:
# lscpu | grep rstack
Vulnerability Spec rstack overflow: Vulnerable: Safe RET, no microcode
此问题是由于缺少 cpuid
标志而造成的,这个漏洞实际上在以下条件下的虚拟机中被完全缓解了:
-
您在主机上更新了
linux-firmware
软件包,如下所述:cve-2023-20569。 -
主机内核启用了缓解,这是默认行为。如果启用了缓解,
Safe RET
会主机上的lscpu
命令输出中显示。
Jira:RHEL-26152[1]
链接状态在虚拟机上显示 up
,即使当 e1000e
或 igb
型号接口的状态为 down
时
在引导虚拟机前,为 e1000
或 igb
型号网络接口的以太网链接状态设置为 down
。尽管如此,在虚拟机引导后,网络接口保持 up
状态,因为当您将以太网链接状态设置为 down
,然后停止并启动虚拟机时,它会自动设置回 up
。因此,不能保持网络接口的正确状态。作为临时解决方案,使用以下命令,在虚拟机中将网络接口状态设置为 down
:
# ip link set dev eth0 down
或者,您可以在虚拟机运行时尝试删除并重新添加此网络接口。
seabios 无法从有 4096 字节扇区大小的磁盘引导
当使用 SeaBIOS 从使用逻辑或物理扇区大小为 4096 字节的磁盘引导虚拟机时,引导磁盘将显示为 available,引导虚拟机会失败。要从这样的磁盘引导虚拟机,请使用 UEFI 而不是 SeaBIOS。
kdump 在带有 AMD SEV-SNP 的虚拟机上失败
目前,kdump 在使用具有安全嵌套的分页(SNP)功能的 AMD Secure Encrypted Virtualization (SEV)的 RHEL 9 虚拟机(VM)上失败。当前没有解决此问题的方法。
Jira:RHEL-10019[1]