AMD Zen 2:Ubuntu 20.04 上 libvirt/kvm 内的 Hyper-V 嵌套虚拟化

AMD Zen 2:Ubuntu 20.04 上 libvirt/kvm 内的 Hyper-V 嵌套虚拟化

在配备 AMD EPYC Rome 7282 处理器的 Ubuntu 20.04.1 服务器上,我使用 libvirt 6.0.0(qemu 4.2/kvm)创建了一个 Windows 10(内部版本 21301)虚拟机。在该虚拟机中,我想启用嵌套虚拟化(Hyper-V),以便能够使用 WSL 2。

准备工作:对于内核kvm_amd模块,已nested=1设置标志。此外,cat /sys/module/kvm_amd/parameters/npt报告。此外,在libvirt 域配置中1,我已启用以下 Hyper-V 虚拟机管理程序功能列表:relaxed,,,,,,,,,,,,。vapicspinlocks (retries=8191)vpindexruntimesynicstimer (direct)frequenciesreenlightenmenttlbflushipi

我得到的最远的是 Windowssysteminfo抱怨未启用二级地址转换:

Hyper-V Requirements:      VM Monitor Mode Extensions: Yes
                           Virtualization Enabled In Firmware: Yes
                           Second Level Address Translation: No
                           Data Execution Prevention Available: Yes

这些是我测试过但没有成功的 libvirt 配置:

CPU 型号 明确设置 CPU 功能 结果
EPYC-IBPB 虚拟机管理程序:禁用,
svm:需要
systeminfo:没有二级地址转换
EPYC-罗马 - 蓝屏:EXCEPTION_ON_INVALID_STACK
EPYC-罗马 虚拟机管理程序:禁用,
svm:需要
立即启动并进入自动修复
主模型 - 蓝屏:虚拟机管理程序错误
主模型 虚拟机管理程序:禁用 蓝屏:CLOCK_WATCHDOG_TIMEOUT 或 SYSTEM_THREAD_EXCEPTION_NOT_HANDLED
主机直通 - 卡在启动画面

一般来说,Windows 支持在这些处理器上作为嵌套虚拟化设置中的第一级客户机(至少第一代 Zen 处理器,来源)。那么我在 EPYC-IBPB 配置中缺少哪个 CPU 标志?

我到底能不能实现我的愿望?

相关内容