最近在 HPE DL380 GEN10 服务器上部署 VMware vSphere 8.0 并使用 NVIDIA RTX A6000 进行 GPU 虚拟化时,为虚拟机分配 vGPU 后遇到启动失败并报错,提示无法初始化 vGPU“nvidia_rtxa6000-12q”的插件“libnvidia-vgx.so”。 无法启动虚拟机。 模块“PCIPluginLate”打开电源失败。,如下图:

第一时间百度。
百度、bing出来的好多伙伴是说BIOS下需要开启SR-IOV这个选项,还有一个需要开启VT-D,有的还需要关闭ECC和安全启动。官网也有相应的说明。


遂重启服务器检查这几个选项。发现都是符合要求的设置,SR-IOV、VT-D 是开启状态,ECC和安全启动也是关闭了的。在启动虚拟机时依然提示同样的错误。哈哈,有点懵。
接着,使用显卡型号作为关键字继续查找,在部分文档中查看到“nvidia显卡模式”的字样。突然想起上一次使用 A5000 也是这样的情况。
到官网(https://docs.nvidia.com/vgpu/13.0/grid-vgpu-user-guide/index.html#displaymodeselector)确认,如下图:

文档指出英伟达的部分产品支持显示模式和无显示模式,但是在 vGPU 软件的部署当中必须在无显示模式下使用,其中 A40、RTX A5000、RTX A6000支持多显示模式。但是 A5000、A6000 在出厂时的模式为 “显示模式” ,所以如果要使用这两个型号的显卡做虚拟化就必须切换模式为“无显示模式”。
官网软件地址:https://developer.nvidia.com/displaymodeselector
访问官网,加入到NVIDIA,需要创建一个开发者账户即可下载 displaymodeselector 软件。(也可文末关键字获取软件共享链接)

因为我已经注册过,所以针对于 "displaymodeselector" 已经有下载权限了,如下图:

点击上图的 “Member area” 进入到 NVIDIA Display Mode Selector Tool 下载界面:

勾选图中的 “I Agree xxx...”,便会出现下面这个绿色的 “Download” 按钮,点击后即可下载。
解压软件,根据自己使用的平台选择,Windows和Linux都支持。

因为GPU硬件已经安装到服务器内,并安装了相应的操作系统。所以建议使用 Windows PE系统或者 Linux Live系统来进行操作。本次切换操作选择的是 Windows PE。
PE 的选择没有限制,使用自己熟悉的常用的即可。由于操作时并没有拍照和截图,需要的伙伴请参考软件附带的文档命令流程。
把软件复制到PE系统内,建议路径不要带有中文和特殊字符,打开CMD,进入到软件文件夹内,使用如下命令进入到显卡模式切换界面(会有一个告警消息)。

.\displaymodeselector.exe --gpumode
输入 “Y” 继续操作,将会显示3个标有序号的模式列表,输入想要切换模式的序号,并按“Enter”键确认,这里选择 <1> 号关闭显示模式。

输入“Y”确定模式后,将开始切换,比较快,预计数秒钟内将完成。完成后重启系统进入到vSphere虚拟化。
当显卡的模式切换到“无显示模式”后,为虚拟机添加vGPU就可以正常开机安装驱动,使用正常。
