VMware vSphere 8 配置 NVIDIA vGPU 教程:Tesla V100 SXM2/PCIe 与 Dell C4140/R730 实战
本文记录在 VMware vSphere 8 环境中部署 NVIDIA vGPU 的完整过程,目标显卡为 NVIDIA Tesla V100,同时覆盖 SXM2 与 PCIe 两种形态,服务器主要为 Dell EMC PowerEdge C4140,并补充 Dell PowerEdge R730 的非官方实验性配置方案。
本文将从硬件兼容性、BIOS、ESXi 主机驱动、vCenter 图形模式、vGPU Profile、Windows/Linux 客户机驱动、NVIDIA 正版授权、CUDA 验证及常见故障排查等方面展开。
序言
NVIDIA vGPU 并不是简单地把一张显卡直接透传给虚拟机,而是在 ESXi 主机上安装 NVIDIA Virtual GPU Manager,由宿主机驱动把一张物理 GPU 划分为多个逻辑 vGPU,再通过不同的 vGPU Profile 分配给虚拟机。
以一张 16GB 的 Tesla V100 为例,可以按照业务需要划分为:
- 1 个 16GB vGPU;
- 2 个 8GB vGPU;
- 4 个 4GB vGPU;
- 8 个 2GB vGPU;
- 16 个 1GB vGPU。
不过,vGPU 只是显存和调度资源的逻辑划分,并不是类似 A100/H100 MIG 的硬件级隔离。Tesla V100 属于 Volta 架构,不支持 MIG,多台虚拟机之间仍然通过时间片共享 GPU 计算资源。
本文参考了以下三篇中文资料,同时结合 NVIDIA、Dell 和 VMware/Broadcom 的现行文档对版本和兼容性进行了修正:
- 信诺智能:
http://www.xinuozhineng.com/ziliao/148.html - GitHub:
https://github.com/fenghan0430/How-to-use-vGPU - 丁乾的博客:
https://www.dingqian.net/index.php/archives/9/
旧教程中的界面、驱动版本和授权方式可能已经过时。本文不使用第三方破解授权服务器,仅介绍 NVIDIA Licensing Portal、CLS 或 DLS 正版授权流程。
一、先看结论:两台服务器应该怎么选
1. Dell PowerEdge C4140
C4140 是本文推荐的服务器。
Dell 官方规格显示,C4140 最多可以配置 4 张双宽、单卡最高 300W 的 GPU,并支持以下两种形态:
- Tesla V100 PCIe 16GB/32GB;
- Tesla V100 SXM2 16GB/32GB,配合 NVLink 背板。
C4140 本身就是面向 GPU 计算设计的 1U 服务器,供电、散热、PCIe/MMIO 地址空间和 GPU 拓扑均比通用型 R730 更适合部署 vGPU。
目前 Dell 的 vSphere 8 认证服务器列表中包含 C4140,并且 Dell 曾发布 C4140 对应的 ESXi 8.0 Custom ISO 和 Dell Add-on。因此:
C4140 + V100 SXM2/PCIe + ESXi 8 是本文的标准部署路径。
2. Dell PowerEdge R730
R730 可以安装双宽 PCIe GPU,但存在两个必须提前接受的事实:
- R730 不能安装 SXM2 模块;
- R730 官方只支持到 ESXi 7.0,ESXi 8.0 不属于 Dell 认证配置;
- V100 PCIe 在部分 R730 上存在成功使用记录,但不属于稳定、统一的官方认证组合;
- R730 的 BIOS、PERC、网卡和 CPU 代际均较老,升级 ESXi 8 后可能出现驱动、MMIO、设备 HCL 或升级基线问题。
因此:
R730 + V100 PCIe + ESXi 8 只能作为 Homelab 或测试环境,不建议用于需要厂商支持的生产环境。
R730 如果追求稳定,建议采用以下方案之一:
- 保持 ESXi 7.0,使用该平台经过验证的 NVIDIA vGPU 版本;
- 更换为 C4140、R740/R740xd、R740xa 或更新一代 GPU 服务器;
- 将 V100 PCIe 直接用于 Linux 裸机计算,而不是强行叠加 ESXi 8 与 vGPU。
3. SXM2 和 PCIe 不能混为一谈
| 项目 | V100 SXM2 | V100 PCIe |
|---|---|---|
| 物理接口 | SXM2 模块,安装在专用 GPU 底板 | 标准 PCIe x16 双宽卡 |
| 适用服务器 | C4140 对应 SXM2/NVLink 配置 | C4140 PCIe 配置、部分通用 GPU 服务器 |
| R730 支持 | 不支持 | 可尝试,但不属于本文推荐的官方路径 |
| NVLink | 依赖服务器底板拓扑 | 部分 PCIe 卡可桥接,但服务器必须提供空间与拓扑支持 |
| vGPU Profile 前缀 | V100X-* 或 32GB 型号的 V100DX-* |
V100-* 或 32GB 型号的 V100D-* |
| 更换方式 | 不能直接插进 PCIe 槽 | 不能安装到 SXM2 底板 |
C4140 的 PCIe 版和 SXM2 版不是“换一张卡”这么简单,两者涉及 GPU 底板、线缆、散热器、供电和系统配置差异。除非拥有完整的 Dell 原厂转换部件和服务文档,否则不建议自行转换。
二、vGPU、直通和 vSGA 的区别
在 vSphere 中,GPU 主要有三种使用方式。
1. NVIDIA vGPU
一张物理 GPU 可以创建多个 vGPU Profile,由多台虚拟机共享。
适合:
- 多用户 CUDA 开发环境;
- 轻量推理服务;
- 虚拟工作站;
- 远程桌面和图形应用;
- GPU 资源池化。
2. PCI Passthrough / VMDirectPath I/O
整张物理 GPU 独占分配给一台虚拟机。
优点是性能路径更直接、配置相对简单,缺点是无法切分,一张卡只能给一台虚拟机使用。
3. vSGA
由 ESXi 图形栈共享 GPU,主要用于传统图形加速,并不是本文目标。
部署 NVIDIA vGPU 时,需要把主机图形模式切换为:
1 | |
而不是默认的 Shared/vSGA 模式。
flowchart LR
A[物理 Tesla V100] --> B[NVIDIA vGPU Manager]
B --> C1[V100X-16Q<br/>16GB]
B --> C2[V100X-8Q<br/>8GB]
B --> C3[V100X-4Q<br/>4GB]
C1 --> D1[虚拟机 1]
C2 --> D2[虚拟机 2]
C2 --> D3[虚拟机 3]
C3 --> D4[虚拟机 4]
三、版本选择
1. 推荐版本
以 2026 年 7 月为时间点,Tesla V100 的最后一个 NVIDIA vGPU 大版本分支为 19.x。
建议使用:
| 组件 | 推荐版本 |
|---|---|
| ESXi | ESXi 8.0 Update 3 P06 或更新的 8.0 U3 补丁 |
| vCenter Server | 与 ESXi 8.0 U3 匹配的 vCenter 8.0 U3 |
| NVIDIA vGPU | 19.5 或同一 19.x 分支中的最新维护版本 |
| Windows 客户机 | Windows Server 2022 64 位 |
| Linux 客户机 | Ubuntu Server 22.04 LTS 或 24.04 LTS 64 位 |
NVIDIA vGPU 19.5 对应的示例驱动版本如下:
| 组件 | 19.5 示例版本 |
|---|---|
| ESXi Virtual GPU Manager | 580.159.01 |
| Windows Guest Driver | 582.53 |
| Linux Guest Driver | 580.159.03 |
驱动版本会随维护版本变化,实际安装时以 NVIDIA 下载包内的 Release Notes 为准,不要只凭文件名猜版本。
2. 为什么不建议照抄旧教程中的 15.x/16.x
旧教程中常见以下文件:
1 | |
这些属于较早的 vGPU 15.x 驱动。它们曾经支持 ESXi 8,但不代表适配当前 ESXi 8.0 U3 补丁。
正确做法是先确定:
1 | |
3. 主机驱动和客户机驱动必须兼容
vGPU 的宿主机驱动叫:
1 | |
虚拟机中的驱动叫:
1 | |
二者不兼容时,虚拟机可能只能以标准 VGA 模式启动,并在日志中出现:
1 | |
最佳实践是:
- Host 和 Guest 使用同一个 vGPU 大版本;
- 首次部署尽量使用同一个小版本;
- 不要在客户机中安装普通 GeForce 驱动或任意 Data Center Driver 替代 vGPU Guest Driver。
四、部署前的硬件检查
1. C4140 检查项
- 确认服务器是 PCIe GPU 配置还是 SXM2/NVLink 配置;
- 确认 4 张 GPU 型号、显存容量一致;
- 确认原厂散热器、风扇、导风罩和 GPU 底板完整;
- 更新 iDRAC、Lifecycle Controller、BIOS、CPLD、PERC、NIC 固件;
- 检查电源是否为原厂 GPU 配置;
- 通过 iDRAC Hardware Inventory 确认 GPU 被识别;
- 检查 SEL/Lifecycle Log 中是否有 GPU、PCIe、供电或温度告警。
2. R730 检查项
R730 安装双宽 GPU 至少要满足:
- 两颗 CPU 均已安装;
- CPU TDP 不高于 Dell GPU 配置要求,官方指南通常要求不超过 135W;
- 安装 GPU Enablement Kit;
- 使用低矮散热器和 GPU 专用导风罩;
- 双 1100W 电源;
- 双宽 GPU 最多两张;
- 第二张双宽 GPU 需要 GPU Optional Riser 3;
- GPU 必须安装在提供完整 x16 通道的插槽;
- 使用正确的 Dell GPU 电源线,不能照着普通 PC 的 8Pin 线序硬接;
- 机房进风温度应控制在 Dell GPU 配置要求以内。
Dell 服务器 GPU 电源线与普通 ATX 显卡线不能只看接口形状。接口能插进去,不代表线序相同,接错可能直接损坏 GPU 或主板。
3. 在 iDRAC 中检查
进入:
1 | |
应当看到 NVIDIA 设备。
也可以在 Lifecycle Log 中检查:
1 | |
如果 iDRAC 和 BIOS 阶段都识别不到 GPU,继续折腾 ESXi 驱动没有意义。此时应先处理硬件、供电、插槽、底板或固件问题。
五、配置服务器 BIOS
重启服务器,按 F2 进入 System Setup。
1. 推荐 BIOS 设置
| 路径/选项 | 推荐值 | 说明 |
|---|---|---|
| Boot Mode | UEFI | ESXi 8 和大 MMIO 设备推荐使用 UEFI |
| System Profile | Performance | 避免节能策略影响 GPU/CPU 延迟 |
| Intel Virtualization Technology | Enabled | 开启 VT-x |
| VT for Direct I/O / VT-d | Enabled | 开启 IOMMU |
| SR-IOV Global Enable | Enabled | NVIDIA vGPU 官方部署建议开启 |
| Memory Mapped I/O above 4 GB | Enabled | V100 等大 BAR 设备必须重点检查 |
| Hyper-Threading | Enabled | NVIDIA 推荐配置 |
| CPU Power Management | Maximum Performance | 计算节点建议 |
| Slot Disablement | Enabled/Auto | 确保 GPU 所在插槽没有被禁用 |
C4140 中还可能看到:
1 | |
通常保持 Dell 默认值。只有在明确遇到 4 GPU MMIO 地址分配问题,并且 Dell 文档或支持工程师要求时才修改。
2. 不要随意关闭 Embedded Video Controller
服务器板载 Matrox/集成显卡用于 iDRAC 虚拟控制台和本地管理。NVIDIA Tesla V100 是计算卡,不承担服务器启动画面输出。
因此通常保留:
1 | |
关闭它不能让 Tesla V100 变成启动显示卡,反而可能导致远程管理体验变差。
3. 保存并冷重启
修改 MMIO、SR-IOV 或 GPU 硬件后,建议执行一次完整断电重启:
- 正常关闭服务器;
- 断开两路电源;
- 等待约 30 秒;
- 重新接通电源并启动。
这样可以清除部分 PCIe 枚举和 BMC 缓存状态。
六、安装 ESXi 8 与接入 vCenter
本文假设已经完成:
- ESXi 8 安装;
- 管理网络、DNS、NTP 配置;
- vCenter Server 8 部署;
- ESXi 主机加入 vCenter;
- 创建共享或本地 datastore。
1. C4140
建议使用:
- Dell Customized ESXi 8 ISO;
- 或 Broadcom ESXi Base Image 加 Dell Add-on。
安装后检查:
1 | |
2. R730
R730 没有 Dell 官方 ESXi 8 Custom ISO,安装属于非认证路线。
安装前至少检查:
- PERC 型号是否仍被 ESXi 8 支持;
- 网卡驱动是否存在;
- CPU 是否被当前 Build 接受;
- 启动盘控制器是否在 HCL 中;
- 是否存在被 ESXi 8 删除的旧版 VIB。
对于 Homelab,可以安装 Broadcom 原版 ESXi 8 后再补充社区或厂商驱动,但必须接受升级后突然失效的风险。
七、下载 NVIDIA vGPU 软件包
登录 NVIDIA Enterprise Licensing Portal 或 NVIDIA Licensing Portal,下载与 ESXi 8 对应的 vGPU 软件包。
解压后通常可以看到类似目录:
1 | |
Host_Drivers 中常见:
1 | |
Guest_Drivers 中包括:
1 | |
注意:
NVD-VGPU的 ZIP 通常直接交给esxcli,不要再解压;- 部分版本的 management daemon 外面还有一层
-package.zip,真正安装的是内层、不带package的 ZIP; - Host Driver 和 Guest Driver 必须来自兼容的软件包;
- 不要从不明网盘下载被修改过的 VIB、离线包或驱动。
八、在 ESXi 8 安装 NVIDIA Virtual GPU Manager
1. 将主机进入维护模式
在 vCenter 中:
1 | |
也可以使用 SSH:
1 | |
2. 开启 SSH
进入 ESXi Host Client:
1 | |
3. 安装前检查 GPU
通过 SSH 登录 ESXi:
1 | |
也可以使用:
1 | |
正常情况下应能看到 NVIDIA Corporation 和 Tesla V100 相关设备。
如果 lspci 没有任何输出,应先返回检查:
- BIOS 的 SR-IOV;
- VT-d;
- Above 4G MMIO;
- GPU 供电;
- C4140 GPU 底板;
- R730 GPU Riser;
- PCIe 插槽是否被禁用。
4. 上传驱动包
建议上传到:
1 | |
或者上传到持久化 datastore:
1 | |
示例:
1 | |
5. 使用 component apply 安装
ESXi 8 推荐使用:
1 | |
如果软件包中包含 GPU Management Daemon,再安装:
1 | |
不要直接复制本文中的占位文件名,必须替换成实际文件名和绝对路径。
旧教程中也常见:
1 | |
在 ESXi 8 中优先使用 software component apply。只有在对应 NVIDIA Release Notes 明确要求时才使用其他安装方式。
6. 检查安装结果
1 | |
检查 GPU 管理服务:
1 | |
不同版本的服务名可能不同,应以驱动包文档和 ls /etc/init.d/ | grep -i nvd 的结果为准。
7. 重启 ESXi
即使安装器提示不需要重启,也建议首次安装后重启:
1 | |
重启后重新 SSH 登录,执行:
1 | |
正常情况下可以看到:
- GPU 型号;
- 显存容量;
- 驱动版本;
- 温度和功耗;
- ECC 状态;
- GPU UUID;
- 当前进程。
再执行:
1 | |
8. ECC 是否需要关闭
很多旧教程要求执行:
1 | |
但不应把“关闭 ECC”当作所有 V100 vGPU 环境的固定步骤。
正确策略是:
- 先保留当前 ECC 状态;
- 查看该 vGPU 分支对 V100 和目标 Profile 的要求;
- 只有在 Profile 无法创建、Release Notes 明确要求,或业务确定不需要 ECC 时才关闭;
- 修改 ECC 后必须重启主机。
查看 ECC:
1 | |
关闭 ECC:
1 | |
重新开启 ECC:
1 | |
对于科研计算、训练任务和长期运行的推理任务,ECC 有实际价值,不建议为了“教程步骤整齐”而无脑关闭。
九、在 vCenter 中切换为直接共享模式
安装驱动并重启后,登录 vCenter。
进入:
1 | |
将默认图形类型设置为:
1 | |
不要选择:
1 | |
1. GPU 分配策略
多 GPU 主机通常有两类策略。
Spread / 最佳性能
优先把虚拟机分散到不同物理 GPU,降低同一 GPU 上的资源竞争。
适合:
- AI 推理;
- CUDA 开发环境;
- 希望单虚拟机获得更稳定性能。
Consolidation / GPU 整合
优先填满一张 GPU,再使用下一张 GPU。
适合:
- 希望保留完整空闲 GPU;
- 后续可能给大显存虚拟机分配整张卡;
- 混合不同工作负载。
2. 编辑单张图形设备
进入:
1 | |
逐张检查 GPU,确认其工作模式允许 vGPU/Shared Direct。
部分版本需要勾选:
1 | |
完成后建议再重启一次 ESXi 主机。
3. 验证图形模式
重新执行:
1 | |
在旧版默认 vSGA 模式中,进程列表可能看到 Xorg 占用 GPU。切换 Shared Direct 后,不应再由 ESXi Xorg 以 vSGA 方式占用显卡。
十、选择 Tesla V100 的 vGPU Profile
1. V100 SXM2 16GB
常见 Q 系列 Profile:
| Profile | 显存 | 单卡最大 vGPU 数量 | 建议用途 |
|---|---|---|---|
| V100X-16Q | 16GB | 1 | 模型训练、重推理、独占计算 |
| V100X-8Q | 8GB | 2 | 中型推理、CUDA 开发 |
| V100X-4Q | 4GB | 4 | 轻量推理、开发测试 |
| V100X-2Q | 2GB | 8 | 图形桌面、轻量任务 |
| V100X-1Q | 1GB | 16 | 轻量虚拟桌面,不适合现代大模型 |
2. V100 PCIe 16GB
| Profile | 显存 | 单卡最大 vGPU 数量 |
|---|---|---|
| V100-16Q | 16GB | 1 |
| V100-8Q | 8GB | 2 |
| V100-4Q | 4GB | 4 |
| V100-2Q | 2GB | 8 |
| V100-1Q | 1GB | 16 |
3. V100 SXM2 32GB
常见前缀为:
1 | |
4. V100 PCIe 32GB
常见前缀为:
1 | |
5. AI/CUDA 工作负载怎么选
对于当前 NVIDIA vGPU 19.x 和 VMware vSphere,建议 AI/CUDA 场景使用 Q 系列 Profile,并配置 NVIDIA vWS 许可。
推荐:
| 工作负载 | 建议 Profile |
|---|---|
| 单卡训练、PyTorch、TensorFlow | 16Q/32Q,尽量整卡显存 |
| 中型推理 | 8Q 或 16Q |
| 轻量推理、Jupyter 开发 | 4Q 或 8Q |
| 虚拟桌面 | 1Q/2Q/4Q,按分辨率和应用评估 |
V100 没有 MIG。即使显存被分成多个 Profile,多个虚拟机仍然可能争用 SM、显存带宽和编码器资源。
6. 同一物理 GPU 上的 Profile 混用
不同 ESXi/vGPU 版本对 mixed-size Profile 的支持不同。
首次部署建议遵循最保守规则:
同一张物理 GPU 上使用相同显存大小、相同系列的 Profile。
例如一张 V100X 16GB 上统一运行两个 V100X-8Q,不要一开始就混合 8Q + 4Q + 2Q。
等基础环境稳定后,再根据当前 ESXi 8.0 U3 和 vGPU 19.x Release Notes 验证 mixed-size 模式。
十一、创建并配置 vGPU 虚拟机
1. 创建虚拟机
建议配置:
| 项目 | 建议值 |
|---|---|
| Compatibility | ESXi 8.0 and later |
| Firmware | EFI |
| Secure Boot | 首次安装建议关闭 |
| Guest OS | Windows Server 2022 / Ubuntu 22.04 / Ubuntu 24.04 |
| CPU | 根据业务分配,避免严重超分 |
| 内存 | 根据 GPU Profile 和任务分配 |
| VMware Tools | 安装 |
2. 先安装操作系统
首次部署建议先不挂载 vGPU:
- 创建普通虚拟机;
- 安装操作系统;
- 安装 VMware Tools;
- 配置网络和 SSH/RDP;
- 正常关机;
- 再添加 vGPU 设备。
这样可以避免在系统安装阶段遇到黑屏时无法判断是 OS、EFI 还是 vGPU 问题。
3. 锁定全部客户机内存
编辑虚拟机:
1 | |
中文界面通常显示:
1 | |
这是 vGPU 虚拟机无法开机时最常见的遗漏项。
4. 添加 vGPU 设备
虚拟机关机后:
1 | |
选择对应 Profile,例如:
1 | |
如果列表中没有任何 vGPU Profile,请不要继续创建虚拟机,先排查宿主机驱动和 Shared Direct 模式。
5. 不要把整卡直通和 vGPU 混淆
如果在 ESXi 中把 GPU 标记为:
1 | |
这张卡会被整卡直通使用,不能同时作为 vGPU 资源池。
部署 vGPU 时,应让 GPU 由 NVIDIA vGPU Manager 管理,而不是先在 PCI Devices 页面切为 Passthrough。
6. 多 vGPU 分配
vSphere 8.0 Update 2 以后,每台虚拟机理论上可分配更多 vGPU 设备,但 V100 是否能进行多 vGPU、是否能使用 NVLink P2P、是否要求整卡 Q Profile,取决于:
- V100 具体型号;
- C4140 GPU 拓扑;
- vGPU Profile;
- vGPU 版本;
- ESXi 版本;
- Linux/Windows 客户机;
- NVIDIA Release Notes 中的 P2P 限制。
因此,第一阶段先按“一台虚拟机一个 vGPU”完成部署。多卡和 NVLink 放到基础验证完成后单独测试。
十二、Linux 客户机安装 vGPU Guest Driver
以下以 Ubuntu Server 为例。
1. 安装依赖
1 | |
2. 禁用 Nouveau
创建文件:
1 | |
更新 initramfs:
1 | |
重启后检查:
1 | |
没有输出表示 Nouveau 未加载。
3. 安装 NVIDIA vGPU Guest Driver
将 NVIDIA 软件包中的 Linux Guest Driver 上传到虚拟机。
例如:
1 | |
安装过程中注意:
- 安装的是带
grid/vGPU 标识的 Guest Driver; - 不要安装普通 GeForce 驱动;
- 不要让后续 CUDA 安装程序覆盖该驱动;
- 内核升级后应确认 DKMS 模块是否重建成功。
安装完成后:
1 | |
4. 验证
1 | |
应看到:
- Tesla V100 对应的虚拟 Profile;
- 分配给虚拟机的显存容量;
- NVIDIA vGPU Guest Driver 版本;
- 虚拟 GPU UUID。
查看详细信息:
1 | |
查看 GRID 服务:
1 | |
十三、Windows Server 2022 安装 vGPU Guest Driver
1. 将驱动复制到虚拟机
使用 RDP、共享目录或 ISO,把软件包中的 Windows vGPU Guest Driver 复制到 Windows Server 2022。
2. 安装驱动
以管理员身份运行:
1 | |
安装完成后重启 Windows。
3. 验证
打开管理员 CMD 或 PowerShell:
1 | |
设备管理器中应看到 NVIDIA vGPU 设备,且不能出现黄色感叹号。
查看详细信息:
1 | |
若设备管理器报 Code 43 或 vGPU 无法初始化,优先检查 Host/Guest Driver 是否兼容。
十四、配置 NVIDIA 正版授权
NVIDIA vGPU 是商业软件。未取得许可证时,虚拟 GPU 可能在启动后短时间内正常工作,随后进入性能降级状态。
推荐使用:
- NVIDIA Cloud License Service,简称 CLS;
- NVIDIA Delegated License Service,简称 DLS;
- NVIDIA Licensing Portal 生成的 Client Configuration Token。
网络上部分教程使用第三方 Docker 镜像模拟授权服务器。此类方案可能违反许可证协议,也可能存在供应链和安全风险,本文不提供该配置。
1. Windows 客户机
从 NVIDIA Licensing Portal 或 DLS 下载 Client Configuration Token,将 .tok 文件复制到:
1 | |
管理员 PowerShell 执行:
1 | |
检查授权:
1 | |
2. Linux 客户机
确认配置文件:
1 | |
编辑:
1 | |
vGPU 客户机通常配置:
1 | |
把 Token 放入:
1 | |
设置权限:
1 | |
重启服务:
1 | |
查看授权:
1 | |
3. 网络要求
客户机需要能够访问 CLS/DLS,一般需要放通:
1 | |
如果经过代理,需要按照 NVIDIA Client Licensing User Guide 配置代理地址和端口。
十五、安装 CUDA Toolkit
nvidia-smi 顶部显示的 CUDA Version 是当前驱动支持的最高 CUDA 运行时版本,不代表系统已经安装 CUDA Toolkit。
检查:
1 | |
如果 nvidia-smi 正常、nvcc 不存在,说明驱动已安装但 CUDA Toolkit 尚未安装。
1. 避免覆盖 vGPU 驱动
安装 CUDA 时只安装 Toolkit,不要安装或升级普通 NVIDIA Driver。
Ubuntu 上建议选择类似:
1 | |
而不是直接安装可能带驱动依赖的元包:
1 | |
具体版本应根据 vGPU Guest Driver 支持的 CUDA 版本选择。
2. PyTorch 验证
1 | |
3. 简单压力测试
1 | |
同时在客户机执行:
1 | |
在 ESXi 主机执行:
1 | |
可以同时观察物理 GPU 与虚拟 GPU 的运行情况。
十六、完整部署流程图
flowchart TD
A[确认服务器和 GPU 形态] --> B{服务器型号}
B -->|C4140| C[确认 PCIe 或 SXM2/NVLink 配置]
B -->|R730| D[仅 PCIe<br/>接受非官方支持风险]
C --> E[升级 iDRAC/BIOS/固件]
D --> E
E --> F[配置 UEFI/VT-d/SR-IOV/Above 4G]
F --> G[安装 ESXi 8 并加入 vCenter]
G --> H[lspci 检查 GPU]
H --> I[进入维护模式]
I --> J[安装 NVD-VGPU 与 mgmt daemon]
J --> K[重启并运行 nvidia-smi]
K --> L[vCenter 切换 Shared Direct]
L --> M[创建 EFI 虚拟机并锁定全部内存]
M --> N[添加 V100 vGPU Profile]
N --> O[安装 Guest Driver]
O --> P[配置 CLS/DLS 正版授权]
P --> Q[安装 CUDA Toolkit]
Q --> R[PyTorch/CUDA 验证]
十七、宿主机验证清单
1. 检查 ESXi 版本
1 | |
2. 检查 PCIe 设备
1 | |
3. 检查 NVIDIA 驱动
1 | |
4. 检查 GPU
1 | |
5. 检查 GPU 拓扑
1 | |
C4140 SXM2/NVLink 配置中,拓扑结果应与服务器 GPU 底板设计一致。
6. 检查管理服务
1 | |
7. 检查日志
1 | |
搜索 NVIDIA:
1 | |
虚拟机无法启动时还应检查对应 VM 目录中的:
1 | |
十八、常见故障排查
1. lspci 看不到 NVIDIA GPU
可能原因:
- GPU 没有正确安装;
- SXM2 底板或 NVLink 板故障;
- R730 使用了错误 Riser;
- GPU 电源线错误;
- PSU 功率不足;
- BIOS 禁用了插槽;
- SR-IOV/Above 4G/VT-d 未开启;
- GPU 硬件故障。
处理顺序:
1 | |
前三层没识别到,驱动层不会凭空变出一张卡。
2. 安装驱动时报 NoMatchError
常见原因:
- vGPU 驱动不支持当前 ESXi Build;
- 下载了 ESXi 7 的 Host Driver;
- 下载了错误的 vGPU 分支;
- 使用了外层
-package.zip; - 文件损坏;
- 路径不是绝对路径。
检查:
1 | |
重新对照 NVIDIA vGPU Release Notes 的 Hypervisor Software Releases。
3. nvidia-smi: not found
说明 Virtual GPU Manager 没有正确安装或模块未加载。
检查:
1 | |
并重启 ESXi。
4. nvidia-smi 显示 No devices were found
可能原因:
- BIOS 没有分配足够 MMIO;
- GPU 已被设置为 Passthrough;
- 驱动与 GPU 不兼容;
- GPU Management Daemon 未运行;
- C4140 GPU 底板或 PCIe 枚举异常;
- R730 平台不兼容。
5. vCenter 中看不到 vGPU Profile
依次检查:
- ESXi 是否加入 vCenter;
- Host Driver 是否正确安装;
nvidia-smi是否正常;- 主机图形类型是否为 Shared Direct;
- GPU 是否被设置为 Passthrough;
- 是否重启过 ESXi;
- ECC/Profile 是否满足当前版本要求;
- 该 GPU 是否被当前 vGPU 分支支持。
6. 虚拟机无法开机,提示内存未预留
编辑虚拟机并启用:
1 | |
vGPU VM 必须锁定其配置内存。
7. 虚拟机无法开机,提示没有可用图形资源
可能原因:
- 物理 GPU 显存不足;
- 同一 GPU 上已经存在不兼容 Profile;
- 分配策略导致目标 GPU 没有容量;
- VM 使用了错误的 SXM2/PCIe Profile;
- Host Driver 未正确加载;
- 多张 GPU 型号或容量不一致。
可以先关闭其他 vGPU VM,再只启动一台使用整卡 Profile 的测试 VM。
8. Windows 设备管理器 Code 43
优先排查:
- Host/Guest Driver 版本不兼容;
- 安装了普通 NVIDIA 驱动;
- Windows Update 自动替换驱动;
- vGPU Profile 与 Guest Driver 不匹配;
- NVIDIA 授权未正常获取;
- Secure Boot 和驱动签名问题。
9. Linux nvidia-smi 提示驱动无法通信
检查:
1 | |
检查 Nouveau:
1 | |
检查内核模块是否因内核升级失效:
1 | |
10. CUDA 可以识别,但性能明显偏低
检查:
- 授权是否为 Licensed;
- 是否使用 1Q/2Q 等小 Profile;
- 同一物理 GPU 是否存在其他高负载 VM;
- ESXi 电源策略是否为 High Performance;
- BIOS System Profile 是否为 Performance;
- CPU 是否严重超分;
- NUMA 和 GPU 所在 CPU Socket 是否匹配;
- C4140 GPU 拓扑是否符合预期;
- 温度或功耗是否触发降频。
客户机:
1 | |
宿主机:
1 | |
11. PCI Passthrough 虚拟机报大 MMIO 错误
这一项主要针对整卡直通,不是标准 vGPU Profile。
V100 16GB/32GB 需要较大的 MMIO 地址空间,虚拟机应使用 EFI,并可能需要高级参数:
1 | |
不要随便填一个极大的数值。应根据 GPU BAR1、设备数量和 VMware KB 计算。
查询 BAR1:
1 | |
12. R730 安装后能识别,但重启或升级后失效
这是非认证平台的典型风险。
可能涉及:
- ESXi Patch 更新后驱动不再加载;
- PERC/NIC VIB 冲突;
- BIOS MMIO 分配变化;
- 旧 CPU/芯片组组合未经过 ESXi 8 回归测试;
- V100 电源线或 Riser 接触不稳定;
- Dell 无法提供该组合的正式支持。
如果系统用于重要业务,应停止继续“打补丁碰运气”,迁移到 C4140、R740xa 或更新平台。
十九、驱动升级方法
升级前:
- 关闭所有 vGPU 虚拟机;
- 将主机进入维护模式;
- 记录当前 ESXi Build;
- 记录当前 Host/Guest Driver;
- 备份 vCenter;
- 确保新版本仍支持 V100。
查看当前版本:
1 | |
停止管理服务:
1 | |
应用新组件:
1 | |
重启:
1 | |
宿主机升级完成并验证正常后,再逐台升级虚拟机中的 Guest Driver。
不要在同一个维护窗口中同时升级:
- BIOS;
- ESXi 大版本;
- vCenter;
- vGPU Host Driver;
- Guest Driver;
- CUDA;
- 深度学习框架。
一次改六层,出问题后就只剩下“量子排障”。正确做法是分层升级、每层验证。
二十、性能和容量规划建议
1. 训练任务优先整卡 Profile
V100 16GB 进行训练时,优先使用:
1 | |
V100 32GB 则优先:
1 | |
训练任务通常不仅消耗显存,还会长期占满 SM 和显存带宽。把一张 V100 切成多个小 Profile 并不一定提高总体吞吐量。
2. 推理任务可按显存切分
如果模型较小,可以使用:
1 | |
但应做压测,而不是只看模型权重文件大小。推理还会消耗:
- KV Cache;
- CUDA Context;
- cuBLAS/cuDNN Workspace;
- 框架缓存;
- 输入 Batch;
- 张量并行通信缓冲区。
3. 不要过度超分 CPU 和内存
GPU 虚拟机如果 CPU 长期 Ready、内存发生 Balloon/Swap,GPU 会因为数据喂不满而空转。
建议:
- GPU 训练 VM 的 vCPU 数不要盲目开太多;
- 关注
%RDY、NUMA locality 和内存延迟; - 大型训练任务尽量让 vCPU、内存和 GPU 靠近同一 NUMA 节点;
- 所有 vGPU VM 的内存都需要锁定,要提前计算宿主机可用内存。
4. C4140 多卡规划
4 张 V100 的 C4140 可以按照以下方式规划:
方案 A:4 台训练虚拟机
1 | |
方案 B:8 台中型推理虚拟机
1 | |
方案 C:开发资源池
1 | |
方案 C 的用户密度最高,但计算性能波动也最明显。
二十一、最终验收清单
宿主机
- BIOS 使用 UEFI;
- VT-x、VT-d、SR-IOV 已开启;
- Memory Mapped I/O above 4GB 已开启;
-
lspci可以看到全部 V100; - NVIDIA Virtual GPU Manager 安装成功;
- GPU Management Daemon 正常;
-
nvidia-smi显示全部 GPU; - vCenter 图形模式为 Shared Direct;
- GPU 没有被误设置为 Passthrough;
- 主机已退出维护模式。
虚拟机
- 使用 EFI;
- 首次安装关闭 Secure Boot;
- 已预留全部客户机内存;
- 已添加正确的 V100X/V100/V100DX/V100D Profile;
- Guest Driver 与 Host Driver 兼容;
-
nvidia-smi正常; - NVIDIA License 状态为 Licensed;
- CUDA Toolkit 没有覆盖 vGPU Guest Driver;
- PyTorch/TensorFlow 可以识别 CUDA;
- 压力测试中没有 XID、掉卡或温度告警。
二十二、C4140 与 R730 的最终建议
C4140
推荐程度:★★★★★
适合:
- 4×V100 SXM2/NVLink;
- 4×V100 PCIe;
- vSphere 8 + vGPU;
- GPU 资源池;
- 多租户 CUDA 开发;
- 虚拟工作站;
- 推理与中小规模训练。
R730
推荐程度:★★
适合:
- Homelab;
- 已有设备的低成本实验;
- 单张 V100 PCIe 的兼容性验证;
- 能接受无官方支持、无法稳定升级的环境。
不适合:
- V100 SXM2;
- 要求 Dell/VMware/NVIDIA 联合支持的生产环境;
- 需要长期稳定补丁升级的 vSphere 8 集群;
- 高密度双卡 300W GPU 且散热条件不足的机房。
一句话总结:
C4140 是正经 GPU 服务器,R730 是能折腾 GPU 的通用服务器;两者都能点亮,不等于两者都适合长期运行。
参考资料
- 信诺智能:
http://www.xinuozhineng.com/ziliao/148.html - GitHub - How-to-use-vGPU:
https://github.com/fenghan0430/How-to-use-vGPU - VMware vSphere 下 NVIDIA vGPU 驱动的安装和配置:
https://www.dingqian.net/index.php/archives/9/ - NVIDIA vGPU 19.x Documentation:
https://docs.nvidia.com/vgpu/19.0/ - NVIDIA VMware vSphere Release Notes:
https://docs.nvidia.com/vgpu/19.0/grid-vgpu-release-notes-vmware-vsphere/index.html - NVIDIA Supported GPUs:
https://docs.nvidia.com/vgpu/gpus-supported-by-vgpu.html - NVIDIA Client Licensing User Guide:
https://docs.nvidia.com/vgpu/19.0/grid-licensing-user-guide/index.html - Dell PowerEdge C4140 Technical Specifications:
https://www.dell.com/support/manuals/en-sg/poweredge-c4140/c4140_ts_pub/gpu-specifications - Dell PowerEdge R730 GPU Installation Guidelines:
https://www.dell.com/support/manuals/en-lt/poweredge-r730/r730_ompublication/gpu-card-installation-guidelines - Dell PowerEdge Servers Certified for VMware vSphere 8.0:
https://www.dell.com/support/kbdoc/en-us/000217592/dell-poweredge-servers-certified-for-vmware-vsphere-8-0
启示录
虚拟化解决的是资源分配问题,硬件兼容性解决的是系统能不能活着的问题。
能成功于千载者,必以近察远。