以centos8.2 + CX354A卡为例
驱动:
系统默认自带核内驱动【INBOX】:插上卡开机lspci -k 就能看到对应的卡已经有mlx4_core这样的驱动加载了,这个是内核自带的驱动,对于一般以太网卡或者使用系统自带的IB驱动和上层软件栈的情况下,尤其是以太网卡,基本上就足够了。
RHEL/CENTOS自带驱动和debug工具空了再研究,mellanoxOFED驱动包也带了不少Mellanox版本的。
Mellanox OFED驱动:
OFED 是openfabrics的一个软件,
Index of /OFED
https://downloads.openfabrics.org/OFED/根据官网的说明是用于构建IB网络,iWARP或者RoCE计算机集群用的软件堆栈.
Mellanox官网的说明是他这个是mellanox版的OFED软件栈。
Linux InfiniBand DriversMellanox OpenFabrics Enterprise Distribution for Linux (MLNX_OFED)https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/CX354A属于ConnectX-3,驱动版本需要选OFED 5.1以下的版本。
白嫖下mellanox官网的图片

整个软件堆栈分为几个层:
运行在内核态,暴露接口给用户态程序,management interface (MAD), connection manager (CM) interface, and Subnet Administrator (SA) interface
再嫖一张Mellanox官网的图回顾一下

几个工具:
-
- [root@DESKTOP-81TB2NR init.d]# ibstatus
- Infiniband device 'mlx4_0' port 1 status:
- default gid: fe80:0000:0000:0000:e41d:2d03:00b4:cd51
- base lid: 0x0
- sm lid: 0x0
- state: 1: DOWN
- phys state: 2: Polling
- rate: 10 Gb/sec (4X)
- link_layer: InfiniBand
-
- Infiniband device 'mlx4_0' port 2 status:
- default gid: fe80:0000:0000:0000:e41d:2d03:00b4:cd52
- base lid: 0x0
- sm lid: 0x0
- state: 1: DOWN
- phys state: 2: Polling
- rate: 10 Gb/sec (4X)
- link_layer: InfiniBand
我这张卡不知道为什么,插到x16的PCIE槽位死活只能配置为X4的,dmesg里面看驱动加载的时候设备初始化也是这个速度,不知道是二手卡问题还是机器BIOS问题。40Gb变10Gb了.....,空了再研究吧。
X鱼买的两张卡,另外一张插家里的另外一台老电脑互联了下,PCIE x16的插槽也是PCIE的X4,不知道X鱼上架的问题还是我电脑的问题,关键老电脑还是PCIE2.0的。
CX354A有两种模式可以选,分别是IB模式和以太网模式,卡型号不同的后缀代表支持不通速率,实际型号可以查用户手册。我买这两张IB模式是40Gb,以太网模式是10Gb.
默认都是自动,一般还是建议手工配置,linux下用命令,windows下直接在设备,管理器里面配置。
以太模式比较好理解,配置好后,配置好对应的IP地址就可以。
IB模式配置好后,无论是windows还是linux,如果安装了OFED驱动,都会生成IPoIB的逻辑网卡,配置好IP地址后实际底层链路还是IB,默认双机对连情况下,IB链路不会自动连接上,这时候需要在其中一台机器启动opensm服务,用于IB子网发现和管理。但如果有IB交换机,交换机会充当子网管理角色其余节点不用启动opensm服务opensm可以划分类似以太VLAN的子网,默认不划分情况下,直接启动服务就可以(注意服务绑定的端口,默认绑定机器IB卡的第一个端口,如果有多个IB口,可以启动多个opensm,可以配置opensm绑定的GUID,IB端口靠GUID来辨识某个端口,可以理解为以太网的MAC一样的功能就行)
在家里的台式机实际跑了下IB模式下,IPoIB网络贷款,iperf3测试,实际最大跑到13Gb,无论如何也上不去了,这个离40Gb有点远,原因在于其中一台老机器是PCIE2.0的,再加上只能x4,PCIE就只有20Gb的带宽,至于为啥跑不满20Gb,除去一部分协议包头开销,电脑主板的质量也有关系,后面有机器了或者有时间了再计算下协议包头开销再看吧。
后续有时间再测试下IB网络和一以太网络的延迟试试。
再有空跑下容器和roce,不知道环境全不全。
CX354A卡的用户手册
IB链路的速度模式 :
SDR, QDR, FDR10, FDR
这些速度和链接线以及模块有关,对应的卡规定了对应的连接头类型,
MCX354A-QCBT 手册就写了QDR ,连接投是QSFP+,4lane的SFP+.(4*10Gb),咸鱼买线的时候就得问好,虽然是QSFP+的,买40Gb的线就行,对MCX354A-FCBT FDR的 56Gb的就得买56G的线。
官网文档