首先感谢您阅读了这一切,因为这就像一个很长的故事。
我们拥有云基础设施Ubuntu 20.04和Linux 5.4.0-155-通用 x86_64内核和OpenStack作为虚拟化系统QEMU/KVM。我们的计算节点上有 4xNVIDIA Corporation GA102 [GeForce RTX 3090] [10de:2204] (rev a1)
卡。它与直通和所有功能配合得很好,但过了一段时间(大约 1.5 年),突然其中一个 RTX-3090 不允许我们创建 VM,并且 nova 显示!!! Unknown header type 7f
在 PCI 设备上,所以我lspci -vnn | grep 2204 -A 4
在 Ubuntu 主机上运行,不幸的是它显示如下:
25:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3090] [10de:2204] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Gigabyte Technology Co., Ltd Device [1458:403b]
Flags: bus master, fast devsel, latency 0, IRQ 795, NUMA node 0
Memory at c3000000 (32-bit, non-prefetchable) [size=16M]
Memory at 2d060000000 (64-bit, prefetchable) [size=256M]
--
61:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3090] [10de:2204] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Gigabyte Technology Co., Ltd Device [1458:403b]
Flags: bus master, fast devsel, latency 0, IRQ 793, NUMA node 0
Memory at cb000000 (32-bit, non-prefetchable) [size=16M]
Memory at 1d000000000 (64-bit, prefetchable) [size=256M]
--
c1:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3090] [10de:2204] (rev ff) (prog-if ff)
!!! Unknown header type 7f
Kernel driver in use: vfio-pci
Kernel modules: nvidiafb, nouveau
--
c2:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3090] [10de:2204] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Gigabyte Technology Co., Ltd Device [1458:403b]
Physical Slot: 8
Flags: bus master, fast devsel, latency 0, IRQ 792, NUMA node 1
Memory at b9000000 (32-bit, non-prefetchable) [size=16M]
如您所见,c1:00.0 pci 地址有 RTX 3090,但未加载主板上安装的正确的 pci 设备。
好的,现在我的问题是:正如我所说,其他 RTX3090 正在由其他具有 AI 预处理的 VM 使用,因此我不能重新启动计算节点并希望实时解决问题,以便我可以恢复 c1:00.0 RTX3090。
如我所见,下面/sys/bus/pci/devices/PCI_PORT_ID/
有一些文件reset , remove , rescan
,人们建议在重置或重新扫描文件时回显 1,但它返回权限拒绝,并且在我添加chmod +rw
上述文件后,它说I/O Error
什么也没有发生 :(。
我发现的另一个解决方案是使用setpci 命令setpci -s PCI_PORT_ID BRIDGE_CONTROL=0052
然后setpci -s PCI_PORT_ID BRIDGE_CONTROL=0012
重新启动 pci 设备,但不幸的是它也不起作用 :(。
有什么办法可以重新启动 pci 设备来修复它吗?我是否必须放弃希望并重新启动所有计算节点?
先谢谢了。