我有一块 Supermicro X9SCM 主板,上面有一块 Atheros AR5008 PCI Express 卡(D-LINK DWA-556,设备=0024&Vendor=168C)。该卡可以在 ESXi 中成功标记为 PCI 直通(我尝试了 4.1 和 5.0 版本),但每次我启动与 Wifi 卡关联的虚拟机时,整个主机都会冻结并需要硬重置。
这张卡很可能因为某种原因不兼容 - 尽管至少有一份报告我发现它“正在运行”,或者至少客人可以启动。我真的很想了解它失败的原因。我尝试深入研究一些日志文件和其他资源,看看是否可以收集有关如何最好地解决此问题的知识,尽管我远非 VMWare 工具专家。
以下是我目前所看到的内容:
- BIOS,尝试了最新版本(1.1a)和一个旧版本(1.0c)。
- 每当发生此冻结事件时,BIOS 都会有一个日志报告“PCI ERR”或“PCI ERR - Asserted”。
- 我从 ESXi 主机上的 /var/log 中抓取了各种日志,但目前我还没有真正从中看到任何有用的东西。也许我不知道该去哪里找。
- 我尝试将 PCI 卡添加到 passthru.map 文件中,看看是否可以向 ESXi 提示其行为方式,但没有成功。(注意:我还没有尝试重置方法/fpt 可共享的所有组合)
- 我读到过“主动”PCI Express 卡可能会有差异。我相信这可能指的是主动状态电源管理尽管我不确定如何检查这一点。
- 我联系了 Supermicro 支持部门,询问 BIOS/硬件是否存在已知问题,但尚未收到回复。我还尝试加入 VMWare 社区并在其论坛上发帖,但由于某些奇怪的原因,我无法激活我的帐户。
再次,我真正的问题是:我该怎么做理解原因当将此设备分配给客户机时,是否会导致虚拟机管理程序锁定?
答案1
锁定的可能不是 Hypervisor,而是某种硬件(如 PCIe 交换机)。如果没有任何类型的PCIe 调试硬件以及一大堆 PCIe 特定知识,所以可能不值得追求。一般来说,PCI 直通不是您应该在不经过深思熟虑的情况下使用的。
如果您需要在虚拟机上使用无线连接接口,请考虑使用外部设备(路由器/网桥)将无线网络桥接到有线网络,并使用虚拟机内部的虚拟接口连接到此网络。另一种选择是使用 USB 插入式接口和USB 网络重定向器。
答案2
意识到这个问题可能已经过时了,但当我遇到这个问题时,它仍然是谷歌搜索结果中排名靠前的。在这里找到了解决方案,所以我想分享一下。
我的环境:
- VMware ESXi 6.5
- 超微 SYS-E300-8D
- OPNsense(基于 FreeBSD)客户端
- 高通创锐 AR9462
假设:
- 您已经物理安装了该卡。
- 您已在 ESXi 中启用了直通功能并重新启动
- 您已将此 PCI 设备添加到虚拟机
回答:
在 /etc/vmware/passthru.map 中设置正确的直通参数,添加如下条目。
# passthrough attributes for devices
# file format: vendor-id device-id resetMethod fptShareable
# vendor/device id: xxxx (in hex) (ffff can be used for wildchar match)
# reset methods: flr, d3d0, link, bridge, default
# fptShareable: true/default, false
# Atheros Wireless
168c 0034 d3d0 false
然后重新启动主机。
注 1:此处的第一和第二个字段是特定于供应商和设备的,但我从主机 > 管理 > 硬件 > PCI 设备下的 ESXi Web 界面获取了值(已经是十六进制)
注 2:passthru.map 中已经有其他有用的东西,所以不要仅仅覆盖、附加。
我也设置了
pciPassthru0.msiEnabled=false
在客户的 .vmx 文件中,但在修复 passthru.map 之前,所以我不确定这是否有必要。
我还没有完成卡的配置或使其变得有用,但是当虚拟机启动并且客户机检测到它时,我的主机现在保持运行。
答案3
我很好奇你在这里的计划是什么。你正在尝试运行无线网卡到客户虚拟机的 ESXi PCI 直通?客户操作系统是什么?此设置的目的是什么?
并非所有 PCIe 设备都与 VMDirectPath 兼容。这可能只是其中之一。