第1章:MLNX_OFED驱动下载——官方源与镜像站选择、版本匹配原则、MD5校验
各位同学,咱们开始第一课。
做高性能计算,绕不开英伟达的网卡。而装驱动,是第一步。这一步要是走错了,后面全白搭。我见过太多人,卡在驱动版本不匹配上,一折腾就是半天。今天咱们就把这事彻底讲透。
1.1 官方源与镜像站:你该去哪下载?
先说官方源。英伟达的官方驱动叫 MLNX_OFED(Mellanox OpenFabrics Enterprise Distribution)。你直接去官网搜就行。我个人习惯用这个地址:
https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/
但有个问题——官方源在国外。你想想看,国内下载动不动几百兆,网络一抖就断了。所以,我建议你用国内镜像站。
常用的镜像站有这几个:
- 清华 TUNA 镜像:速度快,更新及时
- 中科大 USTC 镜像:老牌稳定,我用了好几年
- 阿里云镜像:企业级用户多,带宽足
举个例子,清华镜像的路径大概是这样的:
https://mirrors.tuna.tsinghua.edu.cn/OFED/
嗯,这里要注意:镜像站可能比官方源晚一两天。但没关系,只要不是刚发布的版本,镜像站完全够用。
1.2 版本匹配原则:别瞎选,看这里
驱动版本选不对,装上了也白搭。我遇到过最惨的一次——客户那边生产环境,驱动装完网卡不认,查了半天发现是内核版本不兼容。
版本匹配,核心看三点:
- 网卡型号:比如 ConnectX-5、ConnectX-6、ConnectX-7。不同型号对应不同驱动分支。
- 操作系统版本:CentOS 7.9、Ubuntu 20.04、RHEL 8.6……每个系统都有对应的 OFED 包。
- 内核版本:这是最容易踩坑的地方。你执行
uname -r看一下,然后去 OFED 的 Release Notes 里查兼容性。
举个例子,我最近在 Ubuntu 22.04 上装 ConnectX-6,内核是 5.15.0。对应的 OFED 版本是 5.8-3.0.7.0。为什么是这个版本?因为 Release Notes 里明确写了支持这个内核。
版本命名规则也简单:
| OFED 版本 | 对应网卡 | 推荐内核范围 |
|---|---|---|
| 5.4-3.6.8.1 | ConnectX-5 | 3.10 ~ 4.18 |
| 5.8-3.0.7.0 | ConnectX-6 | 5.4 ~ 5.15 |
| 5.9-3.0.8.0 | ConnectX-7 | 5.10 ~ 6.2 |
说白了,版本匹配就是「门当户对」。网卡、系统、内核,三者得对上号。
1.3 MD5校验:别让坏文件坑了你
下载完驱动,第一件事不是解压,而是校验。为什么?因为网络传输可能丢包,文件可能损坏。你装一个坏掉的驱动,系统可能直接崩掉。
MD5 校验,说白了就是算一个「指纹」。官方会给每个文件提供一个 MD5 值。你下载后自己算一遍,对比一下。
操作很简单:
# 下载官方提供的 MD5 文件
wget https://content.mellanox.com/ofed/MLNX_OFED-5.8-3.0.7.0/MLNX_OFED_LINUX-5.8-3.0.7.0-ubuntu22.04-x86_64.tgz.md5
# 计算你下载文件的 MD5
md5sum MLNX_OFED_LINUX-5.8-3.0.7.0-ubuntu22.04-x86_64.tgz
# 对比两个值是否一致
如果一致,说明文件完好。如果不一致,重新下载。别犹豫。
另外,有些镜像站也会提供 MD5 文件。但为了保险,我建议你从官方源获取 MD5 值。镜像站的文件可能被篡改(虽然概率极低),但官方源更可靠。
知识体系总览
下面这张图,帮你理清本章的核心逻辑:
这张图把本章的三个核心环节串起来了。你照着这个流程走,基本不会出问题。
公众号:蓝海资料掘金营,微信deep3321