10.16. 虚拟化
虚拟机中的网络流量性能可能会降低
在某些情况下,RHEL 8.6 客户虚拟机(VM)在处理高级别的网络流量时性能会有所下降。
(BZ#2069047)
使用大量队列可能会导致 Windows 虚拟机失败
当启用了虚拟可信平台模块(vTPM)设备,且将 multi-queue virtio-net 功能配置为使用超过 250 个队列时,Windows 虚拟机(VM)可能会失败。
这个问题是由 vTPM 设备的限制造成的。vTPM 设备对于打开的文件描述符的最大数量有一个硬性的限制。因为会为每个新队列打开多个文件描述符,因此可能会超过内部 vTPM 的限值,从而导致虚拟机失败。
要临时解决这个问题,请选择以下两个选项之一:
- 保持 vTPM 设备启用,但使用少于 250 个队列。
- 禁用 vTPM 设备以使用超过 250 个队列。
带有故障转移 VF 的虚拟机的实时复制后迁移无法正常工作
目前,如果虚拟机使用启用了虚拟功能(VF)故障转移功能的设备,则试图对一个正在运行的虚拟机(VM)进行 post-copy 迁移会失败。要临时解决这个问题,请使用标准迁移类型,而不要使用 post-copy 迁移方式。
(BZ#2054656)
从早期的 RHEL 8 次版本将虚拟机迁移到 RHEL 8.6 Intel 主机无法正常工作
因为 Intel 事务同步扩展(TSX)功能已被弃用,Intel 硬件中的 RHEL 8.6 主机不再使用 hle
和 rtm
CPU 标记。因此,如果源主机使用 RHEL 8.5 或 RHEL 8 的早期次版本,将虚拟机(VM)实时迁移到 RHEL 8.6 主机会失败。
有关 TSX 弃用的更多信息,请参阅红帽知识库。
(BZ#2134184)
AMD Milan 系统上有时无法提供 Milan
VM CPU 类型
在某些 AMD Milan 系统上,默认在 BIOS 中禁用了增强 REP MOVSB(erms
)和 Fast Short REP MOVSB(fsrm
)功能标记。因此,在这些系统上可能不提供"Milan"CPU 类型。另外,在具有不同功能标志设置的 Milan 主机之间的虚拟机实时迁移可能会失败。要临时解决这个问题,请在主机的 BIOS 中手动打开 erms
和 fsrm
。
(BZ#2077770)
使用 virtio-blk 将 LUN 设备附加到虚拟机中无法正常工作
q35 机器类型不支持 virtio 1.0 设备,因此 RHEL 8 不支持 virtio 1.0 中弃用的功能。特别是,RHEL 8 主机无法从 virtio-blk 设备发送 SCSI 命令。因此,使用 virtio-blk 控制器时,将物理磁盘作为 LUN 设备附加到虚拟机会失败。
请注意,物理磁盘仍可被传递给客户端操作系统,但应该使用 device='disk'
选项而不是 device='lun'
选项进行配置。
(BZ#1777138)
带有 iommu_platform=on
的虚拟机无法在 IBM POWER 上启动
RHEL 8 目前不支持 IBM POWER 系统上的虚拟机(VM)的 iommu_platform=on
参数。因此,在 IBM POWER 硬件上启动使用这个参数的虚拟机会导致虚拟机在引导过程中变得无响应。
当使用ibmvfc
驱动程序时,IBM POWER 主机可能会崩溃
当在 PowerVM 逻辑分区(LPAR)上运行 RHEL 8 时,目前可能会因为 ibmvfc
驱动程序的问题而发生各种错误。因此,在某些情况下主机的内核可能会出现 panic,例如:
- 使用 Live Partition Mobility(LPM)功能
- 重置主机适配器
- 使用 SCSI 错误处理(SCSI EH)功能
(BZ#1961722)
在 IBM POWER 系统中使用 perf kvm record
可能会导致虚拟机崩溃
当在 IBM POWER 硬件的 little-endian 变体中使用 RHEL 8 主机时,使用 perf kvm record
命令为 KVM 虚拟机(VM)收集追踪事件样本会导致虚拟机变得没有响应。在以下情况下发生这种情况:
-
perf
工具由非特权用户使用,-p
选项用来标识虚拟机 - 例如perf kvm record -e trace_cycles -p 12345
。 -
虚拟机是使用
virsh
shell 启动的。
要临时解决这个问题,请使用带有-i
选项的 perf kvm
工具来监控使用 virsh
shell 创建的虚拟机。例如:
# perf kvm record -e trace_imc/trace_cycles/ -p <guest pid> -i
请注意,在使用 -i
选项时,子任务不会继承计数器,因此线程不会被监控。
(BZ#1924016)
带有启用 Hyper-V 的 Windows Server 2016 虚拟机无法引导
目前,无法引导使用 Windows Server 2016 作为客户端操作系统的虚拟机,它启用了 Hyper-V 角色,并使用以下 CPU 模型之一:
- EPYC-IBPB
- EPYC
要临时解决这个问题,使用 EPYC-v3 CPU 模型,或者为虚拟机手动启用 xsaves CPU 标记。
(BZ#1942888)
将 POWER9 客户端从 RHEL 7-ALT 主机迁移到 RHEL 8 会失败
目前,将 POWER9 虚拟机从 RHEL 7-ALT 主机系统迁移到 RHEL 8 会变得没有响应,显示Migration status: active
状态)。
要临时解决这个问题,在 RHEL 7-ALT 主机上禁用 Transparent Huge Pages(THP),这样可使迁移成功完成。
(BZ#1741436)
使用 virt-customize
有时会导致 guestfs-firstboot
失败
使用 virt-customize
工具修改了虚拟机(VM)磁盘镜像后,guestfs-firstboot
服务在某些情况下会因为 SELinux 权限不正确而失败。这会导致虚拟机启动过程中出现各种问题,如创建用户失败或系统注册失败。
要避免这个问题,请在 virt-customize
命令中添加 --selinux-relabel
选项。
从 macvtap 虚拟网络中删除转发接口会重置这个网络的所有连接计数
目前,从带有多个转发接口的 macvtap
虚拟网络中删除一个转发接口也会重置网络的其他转发接口的连接状态。因此,实时网络 XML 中的连接信息是不正确的。但请注意,这不会影响虚拟网络的功能。要临时解决这个问题,请重启主机上的 libvirtd
服务。
带有 SLOF 的虚拟机无法在 netcat 界面中引导
当使用 netcat(nc
)接口来访问当前在 Slimline Open Firmware(SLOF)提示符下等待的虚拟机控制台时,用户输入会被忽略,虚拟机仍无响应。要临时解决这个问题,请在连接虚拟机时使用 nc -C
选项,或者使用 telnet 接口。
(BZ#1974622)
在某些情况下,在 virt-manager
中将中介设备附加到虚拟机会失败
virt-manager
应用程序目前能够检测中介设备,但不能识别该设备是否处于活跃状态。因此,尝试使用 virt-manager
将不活跃的中介设备附加到正在运行的虚拟机(VM)会失败。同样,尝试使用不活跃的中介设备创建新虚拟机会失败,并显示 device not found
错误。
要临时解决这个问题,请使用 virsh nodedev-start
或 mdevctl start
命令来激活中介设备,然后再在 virt-manager
中使用它。
RHEL 9 虚拟机无法在 POWER8 兼容模式下启动
目前,如果虚拟机也使用类似如下的 CPU 配置,启动将 RHEL 9 作为客户机操作系统来运行的虚拟机(VM)会失败:
<cpu mode="host-model"> <model>power8</model> </cpu>
要临时解决这个问题,请不要在 RHEL 9 虚拟机中使用 POWER8 兼容性模式。
另外,请注意,在 POWER8 主机上无法运行 RHEL 9 虚拟机。
当使用很多 virtio-blk 磁盘时,虚拟机有时无法启动
在虚拟机(VM)中添加大量 virtio-blk 设备可能会耗尽平台中可用的中断向量。如果发生了这种情况,VM 的客户机操作系统无法引导,并显示 dracut-initqueue[392]: Warning: Could not boot
错误。
在某些情况下,Windows Server 2022 虚拟机在 AMD Milan 上启动非常慢
使用 Windows Server 2022 客户机操作系统和 qemu64
CPU 型号的虚拟机(VM)当前在带有 AMD EPYC 7003 系列处理器(也称为 AMD Milan
)的主机上需要很长时间才能启动。
要临时解决这个问题,请不要使用 qemu64
CPU 型号,因为对于 RHEL 8 中的虚拟机,它是不受支持的设置。例如,改为使用 host-model
CPU。
当在 AMD EPYC 上使用主机透传模式时,虚拟机不会检测到 SMT CPU 拓扑
当在AMD EPYC 主机上以CPU主机直通模式引导虚拟机(VM)时,不会显示TOPOEXT
CPU 功能标志。因此,虚拟机无法检测到每个内核有多个线程的虚拟 CPU 拓扑。要临时解决这个问题,使用 EPYC CPU 模型而不是主机透传引导虚拟机。
将虚拟机迁移到 RHEL 8.6 的更新的 z-stream 版本有时会失败
如果目标主机使用带有 qemu-kvm
软件包版本 6.2.0-11.module+el8.6.0+21121 及更新版本的 RHEL 8.6 版本,且源主机在 RHEL 8.6 上使用 qemu-kvm
版本 6.2.0-11.module+el8.6.0+21120 或更早版本,则尝试迁移虚拟机(VM)失败。
(JIRA:RHELDOCS-17666)