如何在 VMware ESXi 6.x 上将 NVIDIA 网络设备配置为 VMDirectPath I/O 直通模式
创建于 2019 年 6 月 9 日。本文介绍如何在 VMware ESXi 6.x 上将 NVIDIA 网络设备配置为 VMDirectPath I/O 直通模式以及从该模式恢复的步骤。
文档目录
创建于 2019 年 6 月 9 日
简介
本文介绍如何在 VMware ESXi 6.x 上将 NVIDIA 网络设备配置为 VMDirectPath I/O 直通模式以及从该模式恢复的步骤。
参考资料
- NVIDIA ConnectX-4/ConnectX-5 NATIVE ESXi Driver for VMware vSphere 6.5 User Manual
- NVIDIA ConnectX-4/ConnectX-5 NATIVE ESXi Driver for VMware vSphere 6.7 User Manual
- ConnectX® Ethernet Driver for VMware® ESXi Server
- vSphere Command-Line Interface Concepts and Examples
关于 VMDirectPath I/O 直通设备
每个虚拟机支持的直通设备最大数量为:
- ESXi 6.5:16 个设备
- ESXi 6.7:16 个设备

配置 NVIDIA 网络设备直通
在配置 PCI 直通设备之前,请确保平台和设备满足 PCI 直通要求,请参见 VMware vSphere VMDirectPath I/O: Requirements for Platforms and Devices (2142307)。
在 ESX/ESXi 主机上配置直通设备的步骤:
- 选择 ESXi 主机(在 VMware vSphere Client 的清单中)。
- 进入维护模式 该 ESXi 主机。
- 在导航器中单击管理、硬件和 PCI 设备。直通配置页面列出所有可用的直通设备。
- 选择设备并单击切换直通。

- 重新启动主机以使更改生效。重启后,设备将标记为绿色图标并已启用。
注意: 配置更改保存在
/etc/vmware/esx.conf文件中。
设备连接的 PCI 插槽号为 02:00.1。记录如下:
/device/00000:002:00.1/owner = = "passthru"
- 验证:
UI 方式:
a. 选择 ESX\ESXi 主机(在 VMware vSphere Client 的清单中)。 b. 在导航器中单击管理、硬件和 PCI 设备。直通配置页面列出所有可用的直通设备。 c. 验证:

CLI 方式:
a. 启用 SSH 访问 ESXi 服务器。
b. 以 root 权限登录 ESXi vSphere 命令行界面。
c. 查看 /etc/vmware/esx.conf 文件,将 PCI 设备的所有者从 passthru 更改为 vmkernel。
ESXi 控制台
# vi /etc/vmware/esx.conf
找到 /device/<PCI_ID>/owner = "passthru"。
d. 检查:
ESXi 控制台
/device/00000:002:00.1/owner = = "passthru"
- 重新启动 ESXi 主机。
- 退出维护模式 该 ESXi 主机。
在虚拟机上配置 PCI 设备
- 在 vSphere Client 的导航器中,右键单击虚拟机并单击编辑设置。
- 选择 虚拟硬件选项卡。
- 单击添加其他设备。

选择 PCI 设备。

单击保存。
注意: 分配设备后,虚拟机必须预留全部配置内存大小的内存。

配置非直通 NVIDIA 网络设备
要强制更改为非直通模式,请完成以下步骤:
-
启用 SSH 访问 ESXi 服务器。
-
以 root 权限登录 ESXi vSphere 命令行界面。
-
进入维护模式 该 ESXi 主机。
-
编辑
/etc/vmware/esx.conf文件,将 PCI 设备的所有者从 passthru 更改为 vmkernel。ESXi 控制台
# vi /etc/vmware/esx.conf -
找到
/device/<PCI_ID>/owner = "passthru"。写入:ESXi 控制台
/device/00000:002:00.1/owner = "vmkernel" -
重新启动 ESXi 主机。
-
退出维护模式 该 ESXi 主机。
/passthru
-
更改 从:
/device/00000:002:00.1/owner = = "***passthru***"更改为:/device/00000:002:00.1/owner = = "***vmkernel***" -
重启 ESXi 主机。
-
验证。
ESXi 控制台
# lspci | grep Mellanox
0000:02:00.0 Network controller: Mellanox Technologies MT28800 Family [ConnectX-5 Ex] [vmnic2]
0000:02:00.1 Network controller: Mellanox Technologies MT28800 Family [ConnectX-5 Ex] [vmnic3]

- 退出维护模式 ESXi 主机。
完成!
作者
![]() |
Boris KovalevBoris Kovalev 过去几年担任解决方案架构师,专注于 NVIDIA Networking/Mellanox 技术,负责复杂的机器学习、大数据和基于 VMware 的高级云研究与设计。Boris 此前在多家公司担任高级顾问和解决方案架构师超过 20 年,最近在 VMware 工作。他撰写了多份涵盖 VMware、机器学习、Kubernetes 和容器解决方案的参考设计,可在 NVIDIA 文档网站上获取。 |


