Hyper-V 2016 DDA 问题:当驱动器连接到相反的 NUMA 节点时,虚拟机启动失败

Hyper-V 2016 DDA 问题:当驱动器连接到相反的 NUMA 节点时,虚拟机启动失败

简要描述:主机是运行 Hyper-V 角色的 Windows Server 2016 Datacenter Build 14393 (UEFI)。SR-IOV 和 Intel VT 已启用。4 个 Intel® Optane ™ SSD 900P 280GB PCIe NVMe 3.0 驱动器连接到主机。为了检查 DDA 支持,我执行PowerShell 脚本返回 OK,表示支持 DDA。Ubuntu Server 16.04 (gen 2) VM 已部署。所有所需包安装到虚拟机中。然后,我将这 4 个 Optane SSD 连接到 Ubuntu Server VM通过 DDA。之后,-LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 4Gb应用了其他设置。因此,VM 已通过直通方式连接了 4 个 NVMe 驱动器。Ubuntu VM 的重启/关闭/开机均能正常工作。此外,驱动器和 VM 之间的连接也没有问题。

问题案例:当Windows Server主机重启时,Ubuntu Server VM启动失败。

VM 启动错误

错误事件 ID

根据我的发现,我假设 NUMA 节点配置是问题所在。VM 启动失败是因为 NVMe SSD 连接到另一个 NUMA。作为参考,2 个 SSD 驱动器连接到 # 0 NUMA 节点,另外 2 个 SSD 连接到 # 1 NUMA 节点。

在此处输入图片描述

因此,VM 的启动在 #1 NUMA 节点上运行并失败。仅当在 #0 NUMA 上运行的 NVMe SSD 断开连接时,VM 才会启动。

相关内容