首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >虚拟化配置文件nvme直通配置注意事项

虚拟化配置文件nvme直通配置注意事项

原创
作者头像
Windows技术交流
修改2026-04-14 18:40:06
修改2026-04-14 18:40:06
260
举报
文章被收录于专栏:Windows技术交流Windows技术交流

问题:虚拟化配置文件nvme直通配置缺少msix_vectors="128"会导致不识别nvme本地盘

解决:NVMe 直通设备缺少msix_vectors="128"参数。刷新虚拟化配置文件,将<driver name="vfio-nvme"/>改为<driver name="vfio-nvme" msix_vectors="128"/> 重启机器后正常识别。

NVMe 设备的工作强依赖 MSI-X 中断。NVMe 规范要求通过 MSI-X 向量来为每个 I/O 队列分配中断。如果 QEMU/VFIO 没有正确配置足够的 MSI-X 向量数:

  • 设备可以直通挂载到 VM 上(PCI 层面可见)
  • Guest OS 内的 NVMe 驱动初始化失败,因为无法分配足够的中断向量
  • 结果就是:设备管理器里看不到盘,或者看到设备但有黄色感叹号

NVMe 没这个参数,Guest 里的驱动拿不到足够的 MSI-X 中断向量,I/O 队列建不起来,盘自然就认不到。PCI 设备层面可能都挂上了,但 NVMe 协议层握手直接失败。

这种问题排查起来比较隐蔽——设备直通本身没报错,QEMU 启动也正常,就是 Guest 内静默不识别。以后碰到类似的"直通了但不认盘",第一个查的就是 MSI-X 向量数配置。

另外,需要注意下云系统盘和本地nvme数据盘的位置跟viostor和stornvme的tag值有关,ISO全新安装的系统,viostor的tag值是34,stornvme的则是33,值小的排前边,我把viostor改为1后重启,云系统盘就到磁盘0的位置了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档