infiniband networking config on ubuntu (RDMA & IPoIB)

简介

infiniband是一个和ethernet同一个level的高速网络技术,在高吞吐量低延迟需求的背景下,scale之后光通信相比铜缆通信的成本更低也更稳定(因为万兆以上铜网的适配器贵)。基于IB,也可以构建TCP/IP网络进行传统的通信栈搭建。另外地,remote direct memory access (RDMA)是一个基于高速网络,基于PCIE上的网卡远程访问远端机内存的技术。RDMA可基于RoCE和IB等。

本文以Mellanox的CX卡来简单描述环境搭建流程。

正文

  1. 因为Mellanox被Nvidia收购了,所以去NV的官网下载网卡的驱动。这里务必注意网卡型号和操作系统的对应,因为最新的驱动并不是完全向下兼容的。比如笔者用的CX3就必须使用老的LTSC版本。解压开,root权限执行安装程序即可。如果有提示依赖缺失,手动安装即可。
  2. 所有机器需要启动openibd,service openibd start,openibd是网卡需要的daemon 程序, 并且会给内核加载需要的mod。
  3. 需要至少一台机器开启opensmd,否则网络状态无法连通,service opensmd start,opensm是ib subnet manager and administration
  4. 通过ibstat, ibv_devinfo等指令查看网卡状态,如果已经连接的端口一直显示初始化中,则说明是opensmd的问题。
  5. 通过ifconfig ib0 11.11.11.10 netmask 255.255.255.0来为ib0这个IB卡上的端口指定IP和网段
  6. 如果你只需要IPoIB,可以把连接模式修改为ETH,mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE_P1=2,默认是infiniband模式。另外,可将IPoIB设备配置为以数据报或连接模式运行。不同之处在于 IPoIB 层尝试在通讯另一端机器中打开的队列对类型。在数据报模式中会打开不可靠、断开连接的队列对;而在连接模式中会打开可靠且连接的队列对。
  7. 可以通过ibping等来测试RDMA连接性[2]。通过ibv_devinfo | grep port_lid查看在ib子网中的lid,服务端运行ibping -S -C mlx4_1 -P 1,客户端根据服务端的lid运行ibping -c 10000 -f -C mlx4_0 -P 1 -L {server_lid}
  8. nmtui是一个图形化的IB配置工具[3]。

refer

  1. 家用万兆网络指南
  2. RDMA test
  3. RHEL

Search

    Table of Contents