Mellanox IB卡驱动的安装和小记录

以centos8.2 + CX354A卡为例

驱动:

系统默认自带核内驱动【INBOX】:插上卡开机lspci -k 就能看到对应的卡已经有mlx4_core这样的驱动加载了,这个是内核自带的驱动,对于一般以太网卡或者使用系统自带的IB驱动和上层软件栈的情况下,尤其是以太网卡,基本上就足够了。

RHEL/CENTOS自带驱动和debug工具空了再研究,mellanoxOFED驱动包也带了不少Mellanox版本的。

Mellanox OFED驱动:

OFED 是openfabrics的一个软件,

Index of /OFEDhttps://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官网的图片

整个软件堆栈分为几个层:

底层mlx4 VPI Driver

  • 主要包含mlx4_core 设备初始化,固件命令处理,资源控制
  •  mlx4_ib IB接口驱动 
  • mlx4_en 以太驱动接口 
  • mlx5_core 这个里面包含了以太接口,所以对mlx5的卡驱动来说,就没有mlx5_en模块了,只有mlx5_ib模块。

中间层

  • 主要是管理接口MAD ,
  • 连接管理接口CM,
  • 子网管理接口SA,

运行在内核态,暴露接口给用户态程序,management interface (MAD), connection manager (CM) interface, and Subnet Administrator (SA) interface

上层协议

  • IP over IB (IPoIB)
  •  iSCSI Extensions for RDMA (iSER)
  • SCSI RDMA Protocol (SRP)
  • User Direct Access Programming Library (uDAPL)
  • MPI
  • InfiniBand Subnet Manager
  • Diagnostic Utilities
  • Mellanox Firmware Tools

再嫖一张Mellanox官网的图回顾一下

其他使用方式备忘

  • 卡驱动加载的IB还是EN模式还是说自动,可以设置mlx4_core驱动参数port_type_array  
  • MLNX_OFED驱动安装完后会起一个openibd服务,用于初始化mellanox的IB卡相关驱动和设置。
  • 对于原生支持IB RDMA 的MPI并行计算,直接走IB通信;对于原有支持IP网络的程序,可以周IPoIB;对于存储类,可以通过SRP或者iSER支持。所以实际要看是什么应用场景才能来选择具体怎么使用IB卡。

几个工具:

  • ibstat    列出IB卡的 Node GUID IB卡上端口的port guid
  • ibstatus   列出IB卡端口的GUID,链路状态以及速度和链路协议(IB还是以太)
  • ibv_devices 列出IB卡和对应的GUID
  • ibv_devinfo  列出IB卡的固件版本,GUID ,VID ,PID ,board id 链路状态类型以及MTU

[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卡的用户手册

https://network.nvidia.com/related-docs/user_manuals/ConnectX-3_VPI_Single_and_Dual_QSFP_Port_Adapter_Card_User_Manual.pdf

IB链路的速度模式 :

SDR, QDR, FDR10, FDR

SDR (2.5Gb/s per lane),
DDR (5Gb/s per lane),
QDR (10Gb/s per lane),
FDR10 (10.3125Gb/s per lane)
不过100G,200G的新卡链路又提升了。

这些速度和链接线以及模块有关,对应的卡规定了对应的连接头类型,

MCX354A-QCBT  手册就写了QDR ,连接投是QSFP+,4lane的SFP+.(4*10Gb),咸鱼买线的时候就得问好,虽然是QSFP+的,买40Gb的线就行,对MCX354A-FCBT FDR的 56Gb的就得买56G的线。

官网文档

Introduction - MLNX_OFED v5.0-2.1.8.0 - NVIDIA Networking Docshttps://docs.nvidia.com/networking/display/OFEDv502180/Introduction

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mellanox Linux驱动程序源代码指的是Mellanox Technologies为其网络适配器设备提供的Linux操作系统所使用的驱动程序源代码。Mellanox是一家以以太网和InfiniBand互连技术闻名的半导体公司,该公司出品的产品广泛应用于数据中心、云计算、高性能计算等领域。 Mellanox Linux驱动程序源代码的主要作用是实现Mellanox网络适配器与Linux操作系统的交互。通过驱动程序,Linux操作系统能够识别和管理Mellanox网络适配器的功能和性能。这包括设备的初始化、配置、数据传输等。驱动程序的源代码是程序员编写的程序指令,用于实现这些功能。 Mellanox Linux驱动程序源代码通常是由Mellanox公司的工程师编写和维护的。这些源代码通常会被发布成开源软件,可以在开源社区或Mellanox官方网站上进行获取和下载。开源软件的优势在于代码的透明性和灵活性,用户可以自由修改和定制代码以满足自己的需求。 对于开发人员来说,研究Mellanox Linux驱动程序源代码对于理解和使用Mellanox网络适配器至关重要。通过研究源代码,开发人员可以深入了解驱动程序的工作原理和设计思路,从而更好地理解和应用Mellanox网络适配器的功能。另外,Mellanox Linux驱动程序源代码也为开发人员提供了一个可以扩展和改进驱动程序的平台。 总而言之,Mellanox Linux驱动程序源代码对于理解和应用Mellanox网络适配器至关重要。这些源代码通过实现Mellanox网络适配器在Linux操作系统上的交互,使用户能够更好地管理和控制这些适配器的功能和性能。同时,源代码的开放性也为开发人员提供了一个自由定制和改进代码的机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值