infiniband安装配置

[TOC] 基本概念 RDMA Remote Direct Memory Access: 为了解决网络传输中服务器端数据处理的延迟而产生,通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,不需要用到多少计算机的处理功能。 IB infiniband,是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连,它用到了RDMA技术。 IPoIB Internet Protocol over InfiniBand,利用物理IB网络通过IP协议进行连接,并进行数据传输。性能稍低于rdma,但是比普通的千兆网要快很多。目前在集群nfs上测试,可以10Gb/s 安装infiniband 安装包 infiniband驱动模块是需要在所有infiniband节点安装。 驱动模块,以下软件包之一: 以下软件包之一:infinipath-psm 、libcxgb3、libcxgb4、libehca、libipathverbs、libmthca、libmlx4、libmlx5、libnes 及 libocrdma libibverbs 提供InfiniBand Verbs API yum install libibverbs yum install rdma #RDMA栈内核初始化 systemctl start rdma opensm opensm可以搭建管理子网络。 yum install opensm 测试工具 infiniband-diags 或 ibutils 为 InfiniBand 结构管理提供大量有用的调试工具。这些工具只 为 iWARP 或 RoCE 提供有限功能,因为大多数工具可在 InfiniBank 链接层工作,但无法在 Verbs API 层 使用。 qperf和perftest 用于各种 RDMA 通讯类型的性能测试应用程序。 ------------------------------------ 查看所有node的配置信息 ------------------------------------ iblinkinfo CA: node5 mlx5_0: 0x248a07030058f544 1 1[ ] ==( 4X 25.78125 Gbps Active/ LinkUp)==> 11 34[ ] "MF0;switch-ab29a6:MSB7700/U1" ( ) CA: node6 mlx5_0: 0x248a07030058f650 8 1[ ] ==( 4X 25.78125 Gbps Active/ LinkUp)==> 11 32[ ] "MF0;switch-ab29a6:MSB7700/U1" ( ) 11 32[ ] ==( 4X 25.78125 Gbps Active/ LinkUp)==> 8 1[ ] "node6 mlx5_0" ( ) 11 34[ ] ==( 4X 25.78125 Gbps Active/ LinkUp)==> 1 1[ ] "node5 mlx5_0" ( ) ------------------------------------ ibping test RDMA ------------------------------------ 首先启动opensm服务 然后查看每个node节点的infiniband信息 ibv_devinfo 或者 ibstat都行 [root@master rdma]#ibv_devinfo && ibstat hca_id: mlx5_0 transport: InfiniBand (0) fw_ver: 12.17.1010 node_guid: 248a:0703:0058:f504 sys_image_guid: 248a:0703:0058:f504 vendor_id: 0x02c9 vendor_part_id: 4115 hw_ver: 0x0 board_id: MT_2180110032 phys_port_cnt: 1 port: 1 state: PORT_ACTIVE (4) max_mtu: 4096 (5) active_mtu: 4096 (5) sm_lid: 2 port_lid: 2 port_lmc: 0x00 link_layer: InfiniBand CA 'mlx5_0' CA type: MT4115 Number of ports: 1 Firmware version: 12.17.1010 Hardware version: 0 Node GUID: 0x248a07030058f504 System image GUID: 0x248a07030058f504 Port 1: State: Active Physical state: LinkUp Rate: 100 Base lid: 2 LMC: 0 SM lid: 2 Capability mask: 0x2659e84a Port GUID: 0x248a07030058f504 Link layer: InfiniBand 在服务端 ibping -S -C mlx5_0 -P 1 -L 2 ibping -S -C mlx5_0 -P 1 -G 0x248a07030058f504 -S 以server启动 -C 就是指明CA的名称 -P 指明port -L 指明port_lid/Base lid -G 指明GUID 在客户端 ibping -c 10000 -f -C mlx5_0 -P 1 -L 2 指明你要ping的服务端的 -C -P -G -L等 结果如下: [root@node2 ~]#ibping -c 10000 -f -C mlx5_0 -P 1 -L 2 --- master.(none) (Lid 2) ibping statistics --- 10000 packets transmitted, 10000 received, 0% packet loss, time 1364 ms rtt min/avg/max = 0.034/0.136/0.849 ms IPoIB ------------------------------------ IPoIB 配置 ------------------------------------ #cat /etc/sysconfig/network-scripts/ifcfg-mlx5_ib0 # Generated by dracut initrd DEVICE=mlx5_ib0 #这里必须对应/etc/udev/rules.d/70-persistent-ipoib.rules 中的 NAME="mlx5_ib0" TYPE=InfiniBand #这里必须是InfiniBand ONBOOT=yes HARDWAR=80:00:00:66:fe:80:00:00:00:00:00:00:24:8a:07:03:00:58:f5:04 BOOTPROTO=none IPADDR=172.16.20.10 NETMASK=255.255.255.0 BROADCAST=172.16.20.255 NAME=mlx5_ib0 #这里对应ifconfig中的网卡名称 MTU=65520 #设置连接模式最大MTU STARTMODE='auto' NM_CONTROLLED=no CONNECTED_MODE=yes #设置连接模式 #ifup mlx5_ib0 通过IPoIB配置nfs 服务端: yum install nfs-utils modprobe svcrdma systemctl start nfs echo rdma 20049 > /proc/fs/nfsd/portlist cat /proc/fs/nfsd/portlist rdma 20049 udp 2049 tcp 2049 客户端: modprobe xprtrdma mount -o rdma,port=20049 172.16.20.10:/atlas /atlas cat /etc/fstab 172.16.20.10:/atlas /atlas nfs defaults 0 0 /dev/sda1 /scratch ext4 defaults 0 0 mount | grep my_directory ...proto=rdma,port=20049,...

August 1, 2017