目录

RDMA-01-OFED介绍

概述

OFED 是 OpenFabrics Enterprise Distribution 的简称,是一个开放源代码软件堆栈,用于实现高性能计算(HPC)和企业数据中心的低延迟和高带宽网络。OFED 提供了一组开放的通信和 RDMA(Remote Direct Memory Access)技术,使应用程序能够在网络上以非常低的延迟和高吞吐量之间直接访问远程内存。OFED 支持多种操作系统,包括 Linux、Windows 和 FreeBSD 等,并且支持多种硬件平台,包括 InfiniBand、RoCE 和 iWARP 等网络技术。OFED 还包括一个完整的软件栈,包括驱动程序、协议栈、库和工具,以实现最佳的性能和可靠性。OFED 广泛应用于高性能计算、云计算、数据中心、金融、电信和医疗等领域,是构建高效、可靠和可扩展网络的重要工具之一。

按照目前公司的机器环境和 Mellanox 网卡(Mellanox Technologies MT27710 Family [ConnectX-4 Lx] [15b3:1015]),使用的是 MINX_OFED 4.9-4.1.7.0 LTS,也是一个长期支持的版本,可以支持一些比较旧的 RDMA 设备,未来内核、操作系统升级后,也可以从官网查找最新的版本。

/rdma-01-ofed%E4%BB%8B%E7%BB%8D/img.png

mlx5驱动程序

mlx5 是由 Mellanox Technologies 设计的用于 Connect-IB® 和 ConnectX®-4 适配器的低级驱动程序实现。Connect-IB® 作为 InfiniBand 适配器运行,而 ConnectX®-4 作为 VPI 适配器(Infiniband和以太网)运行。mlx5 驱动程序由以下内核模块组成:

mlx5_core

用作 Connect-IB® 和 ConnectX®-4 适配卡所需的通用函数库(例如,重置后初始化设备)。mlx5_core 驱动程序还实现了 ConnectX®-4 的以太网接口。与 mlx4_en/core 不同,mlx5 驱动程序不需要 mlx5_en 模块,因为以太网功能内置在 mlx5_core 模块中。

mlx5_ib

处理 InfiniBand 特定的功能并插入 InfiniBand 中间层。

libmlx5

libmlx5 是实现硬件特定用户空间功能的提供程序库。如果固件和驱动程序之间不兼容,则不会加载驱动程序,并且会在 dmesg 中打印一条消息。

其他

Mellanox OFED 中还包括 MPI 基准测试,例如 OSU BW/LAT、Intel MPI BeBenchmark 和 Presta。

Mellanox固件工具

Mellanox 固件工具(MFT)是 Mellanox 公司提供的一款用于管理和配置 Mellanox 网卡和 InfiniBand HCA(Host Channel Adapter)固件的命令行工具。MFT 可以用于安装、升级、备份和恢复 Mellanox 网卡和 HCA 固件,以及查看和修改网卡和 HCA 的配置参数和状态信息。

MFT 提供了许多命令行选项和子命令,可以实现各种操作和功能。例如,可以使用 MFT 查询网卡和 HCA 的硬件信息、固件版本、温度和电压等状态信息,也可以使用 MFT 修改网卡和 HCA 的 IP 地址、网关、DNS 等网络参数,以及开启或关闭不同的网络协议和功能(如 RoCEv2、SR-IOV 等)。

除了命令行工具,Mellanox 还提供了 GUI 工具(如 MFT GUI 和 Mellanox NEO)和 API 接口(如 MLNX-OFED 和 libibverbs)等工具和组件,以便用户更方便地管理和配置 Mellanox 网卡和 HCA 固件。需要注意的是,MFT 只能用于管理和配置 Mellanox 网卡和 HCA,对于其他品牌或型号的网卡和 HCA 不适用。

/rdma-01-ofed%E4%BB%8B%E7%BB%8D/img_1.png

安装方法

安装结果

  1. /usr/include/infiniband: OFED包含了许多与InfiniBand技术相关的头文件,这些头文件通常安装在/usr/include/infiniband目录中。这些头文件可用于开发应用程序,以便使用OFED提供的RDMA和其他高性能网络技术
  2. /usr/lib64/libibverbs.so: OFED提供了一个名为libibverbs的库,该库包含了许多与InfiniBand技术相关的函数和符号。这个库通常安装在/usr/lib64目录中,并且在OFED安装过程中会自动配置系统环境变量,以便应用程序可以正确地链接和使用这个库
  3. /etc/infiniband: OFED在系统中创建了一个名为/etc/infiniband的目录,该目录包含了许多配置文件和脚本,用于配置和管理系统中的InfiniBand和其他高性能网络设备
  4. /usr/bin: OFED包含了一些可执行文件,这些文件通常安装在/usr/bin目录中。其中一些文件用于管理和配置InfiniBand和其他高性能网络设备,例如 ibstat、ibdiagnet、ibnetdiscover

参考资料

  1. MLNX_OFED Documentation Rev 4.9-4.1.7.0 LTS
  2. Mellanox_OFED_Linux_User_Manual
警告
本文最后更新于 2023年4月9日,文中内容可能已过时,请谨慎参考。