2. 第2章
02 Mellanox ConnectX-4/5/6网卡固件版本与ESXi兼容性核对
掌握6网卡固件版本在Mellanox ConnectX-4中的定位、故障信号与验证顺序。
排障先看这三点
- 先核对6网卡固件版本的前置条件、异常信号和验收结果
- 再用伪代码把实现动作固定下来
- 最后用稳定性与可观测性验证结果是否可复现
配置证据
Mellanox ConnectX-4常见问题来自默认值、路径、版本或权限没有对齐。
本节把6网卡固件版本相关配置拆成参数来源、生效条件和回滚检查。
固件兼容性核对:从官网查询到工程落地的关键链路
6网卡固件版本的验收口径
在将Mellanox ConnectX-4/5/6网卡部署到ESXi环境时,直接安装最新固件或随意选择一个版本,往往是导致网卡无法识别、驱动加载失败或性能异常的根源。本节的核心任务,是掌握通过Mellanox官方门户(NVIDIA Networking Portal)查询固件与ESXi版本兼容矩阵的完整流程,并建立一套可复用的核对方法
打开浏览器,访问 https://network.nvidia.com/support/firmware/,这是查询兼容矩阵的唯一官方入口。不要依赖第三方网站或论坛的截图,固件版本与ESXi的绑定关系会随ESXi更新而调整
兼容矩阵的核心逻辑是:每个ESXi大版本(如7.0、8.0)对应一组经过验证的固件版本范围,超出该范围的固件可能导致驱动加载失败(vmkernel: warning: module 核心)或网络性能降级。ConnectX-4/5/6的固件分支不同,例如ConnectX-5的固件格式为 16.xx.xxxx,而ConnectX-6为 20.xx.xxxx,混淆分支编号是常见错误
兼容矩阵查询:入口、操作步骤与配置项
进入NVIDIA固件下载页面后,需要依次完成三个关键动作:选择网卡系列、定位ESXi版本、核对固件推荐版本。以下是通过实际查询总结的操作链路:
- 选择产品系列:在“Product Family”下拉框中,根据网卡型号选择
ConnectX-4、ConnectX-5或ConnectX-6。注意,ConnectX-4 Lx 与 ConnectX-4 属于不同系列,不可混用 - 筛选操作系统:在“Operating System”中选择
VMware ESXi,并指定大(如8.0)。页面会动态刷新,仅显示该版本下已验证的固件列表 - 读取兼容矩阵:结果表格中会列出“Firmware Version”、“Release Date”和“Supported ESXi Versions”。重点关注“Supported ESXi Versions”列,它明确标注了该固件支持的最小和最大ESXi,例如
8.0.0 - 8.0.3
不要只看固件大小。例如,ConnectX-5的 16.35.2000 可能只支持ESXi 7.0,而 16.35.3000 才支持ESXi 8.0。必须严格匹配“Supported ESXi Versions”字段
在核对过程中,一个容易被忽略的配置项是“Firmware Bundle”类型。部分固件包包含多个子固件(如 UEFI 和 PXE 选项),ESXi环境通常只需要 Standard 或 VMware 专用包。下载前,确认文件名的后缀包含 _ESXi 或 _VMware 标识,避免刷入非标准固件导致启动异常
Mellanox的技术资产与验证方式
为了将查询结果固化为可复用的工程资产,建议每次核对后填写一张兼容矩阵核对表。下表以ConnectX-5为例,展示了核对的关键维度与判断标准:
| 检查项 | 标准 | 是否通过 | 常见遗漏 |
|---|---|---|---|
| 网卡系列识别 | 通过 lspci -v | grep Mellanox… | □ 是 □ 否 | 将 ConnectX-5 Ex 误判为 Connect… |
| ESXi 大版本 | 通过 vmware -v 确认,如 8.0.2 | □ 是 □ 否 | 未区分 7.0 与 8.0 的固件分支 |
| 固件版本范围 | 官网兼容矩阵中“Supported ESXi Vers… | □ 是 □ 否 | 仅看固件发布日期,忽略版本范围 |
| 固件包类型 | 下载的固件包文件名包含 _ESXi 或 _VMware | □ 是 □ 否 | 误刷了 Linux 通用包 |
| 驱动版本匹配 | 固件版本对应的驱动版本(如 核心 )已在 ESXi 中… | □ 是 □ 否 | 固件更新后未同步更新驱动 |
在ESXi主机上,可以通过以下命令片段快速验证当前固件版本与驱动状态,并与核对表结果比对:
# 查看网卡固件版本
esxcli network nic get -n vmnic0 | grep "Firmware Version"
# 查看驱动版本与固件是否匹配
esxcli software vib list | grep -i mellanox
# 检查内核日志中是否有固件加载错误
dmesg | grep -i "mlx5\|mlx4" | grep -i "error\|fail"阅读这段代码时,重点看6网卡固件版本的伪代码,以及它如何用稳定性与可观测性证明结果可复测。
上述命令的输出结果应直接与核对表中的“固件版本范围”和“驱动版本匹配”两项对照。如果 esxcli network nic get 返回的固件版本不在兼容矩阵范围内,则必须执行固件升级或降级操作