RDMA(Remote Direct Memory Access)是远程直接内存访问技术,由于其低时延,低CPU占用等优势,被广泛的应用在分布式存储或计算系统中。DMA技术是一种单机内的高速数据传输技术,通常由DMA控制器来控制数据的传输流程,释放了CPU资源,而RDMA技术是一种借助IB网卡实现远程高数数据传输的技术。
常用的IB网卡厂商有Mellanox,Intel。此处以Mellanox网卡实践,如下图所示test节点上有两块双端口Mellanox网卡,其中MT27800是100GE网卡,MT27710是25GE网卡,且已经工作在RoCE模式或TCP模式
搭建RoCEv2测试网络的步骤如下
- 在Mellanox官网找到IB网卡的OFED驱动安装包,安装包下载地址:https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/
- 安装OFED驱动安装包
OFED安装包中提供的rpm安装包只支持部分内核版本,如果本机内核版本不匹配需要先安装对应的kernel-devel包,然后执行./mlnx_add_kernel_support.sh -m $OFED_DIR --make-tgz -t /tmp/基于该内核开发包编译得到rpm安装包,该命令会在/tmp目录生成新的OFED_DIR目录,在该OFED_DIR目录执行./mlnxofedinstall --force完成安装。
其中$OFED_DIR替换成OFED安装包解压后的目录
- 配置IB网卡运行在RoCEv2或IB模式
使用/etc/init.d/openibd restart启动openibd服务后,可以看到系统多出了很多OFED提供的命令 - 测试RoCEv2网络包收发
通过rping或ib_send_bw命令可以测试RoCEv2或IB网络包收发。