在这样的背景下,InfiniBand作为一种基于交换的串行I/O互连体系结构,凭借其低延迟、高吞吐量的特性,成为了高性能计算领域的一颗璀璨明星
本文将详细介绍如何在Linux系统中配置InfiniBand,以便最大化其性能优势
一、了解InfiniBand与RDMA InfiniBand不仅代表了物理链路协议,还是RDMA(Remote Direct Memory Access,远程直接内存访问)技术的一种实现
RDMA技术允许一台计算机直接访问另一台计算机的内存,而无需通过操作系统、缓存或存储,从而极大地减少了数据传输的延迟和CPU使用率
与传统的IP通信相比,RDMA通信绕过了通信过程中的内核干预,减少了CPU开销
在RDMA协议下,主机适配器在数据包进入网络后就能决定应用程序应该接收哪些数据,并将其直接保存到应用程序的内存空间中,无需经过内核的多次处理和复制
这一特性使得InfiniBand在高性能计算、大数据分析等需要高吞吐量和低延迟的应用场景中表现出色
二、Linux系统下的InfiniBand配置 要在Linux系统中配置InfiniBand,我们需要进行一系列步骤,包括安装必要的软件包、配置核心RDMA子系统、配置IPoIB(IP over InfiniBand)接口等
以下以Red Hat Enterprise Linux(RHEL)为例,详细介绍配置过程
1. 安装必要的软件包 首先,我们需要安装rdma-core软件包,这是RDMA服务配置管理网络协议和通信标准(如InfiniBand、iWARP和RoCE)的基础
可以通过以下命令进行安装: dnf install rdma-core 同时,我们还需要安装libibverbs-utils和infiniband-diags软件包,以便列出可用的InfiniBand设备并显示其详细信息: dnf install libibverbs-utils infiniband-diags 2. 配置核心RDMA子系统 在安装完必要的软件包后,我们需要配置核心RDMA子系统
这通常包括启动openibd服务,该服务负责加载InfiniBand所需的驱动程序和库文件
在RHEL系统中,openibd服务在默认情况下是不打开的,因此我们需要手动启动它: /etc/init.d/openibd start 启动后,可以使用以下命令检查相应的驱动是否已加载: /etc/init.d/openibd status 此时,使用ifconfig命令已经可以看到待配置的ib接口,例如ib0和ib1
3. 配置IPoIB接口 IPoIB(IP over InfiniBand)允许在InfiniBand网络上运行IP协议
配置IPoIB接口是连接InfiniBand网络设备的关键步骤
这通常包括为ib接口配置IP地址、设置子网掩码等
可以使用nmcli命令或network RHEL系统角色来配置IPoIB连接
例如,使用nmcli命令配置ib0接口的IP地址为192.168.1.10,子网掩码为255.255.255.0: nmcli con add type infiniband ifname ib0 ipv4.addresses 192.168.1.10/24 ipv4.method manual con-name ib0 nmcli con up ib0 配置完成后,可以使用ifconfig命令验证ib0接口的IP地址是否已正确设置
4. 测试RDMA网络 配置完成后,我们需要测试RDMA网络的性能
可以使用iperf3工具进行带宽和延迟测试
iperf3是一个网络性能测试工具,支持TCP、UDP和RDMA等多种协议
在测试前,请确保两台配置了InfiniBand和RDMA的Linux机器已经通过In