<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>IPoIB on My Blog</title><link>/tags/ipoib/</link><description>Recent content in IPoIB on My Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 01 Aug 2017 00:00:00 +0000</lastBuildDate><atom:link href="/tags/ipoib/index.xml" rel="self" type="application/rss+xml"/><item><title>infiniband安装配置</title><link>/2017/08/01/infiniband%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/</link><pubDate>Tue, 01 Aug 2017 00:00:00 +0000</pubDate><guid>/2017/08/01/infiniband%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- toc --&gt;
&lt;p&gt;[TOC]&lt;/p&gt;
&lt;h2 id="基本概念"&gt;基本概念&lt;/h2&gt;
&lt;h3 id="rdma"&gt;RDMA&lt;/h3&gt;
&lt;p&gt;Remote Direct Memory Access: 为了解决网络传输中服务器端数据处理的延迟而产生,通过网络把资料直接传入计算机的存储区，将数据从一个系统快速移动到远程系统存储器中，而不对操作系统造成任何影响，不需要用到多少计算机的处理功能。&lt;/p&gt;
&lt;h3 id="ib"&gt;IB&lt;/h3&gt;
&lt;p&gt;infiniband,是一个用于高性能计算的计算机网络通信标准，它具有极高的吞吐量和极低的延迟，用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直接或交换互连，以及存储系统之间的互连,它用到了RDMA技术。&lt;/p&gt;
&lt;h3 id="ipoib"&gt;IPoIB&lt;/h3&gt;
&lt;p&gt;Internet Protocol over InfiniBand,利用物理IB网络通过IP协议进行连接，并进行数据传输。性能稍低于rdma，但是比普通的千兆网要快很多。目前在集群nfs上测试，可以10Gb/s&lt;/p&gt;
&lt;h2 id="安装infiniband"&gt;安装infiniband&lt;/h2&gt;
&lt;h3 id="安装包"&gt;安装包&lt;/h3&gt;
&lt;p&gt;infiniband驱动模块是需要在所有infiniband节点安装。&lt;/p&gt;
&lt;p&gt;驱动模块，以下软件包之一：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;以下软件包之一：infinipath-psm
、libcxgb3、libcxgb4、libehca、libipathverbs、libmthca、libmlx4、libmlx5、libnes 及 libocrdma
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;libibverbs 提供InfiniBand Verbs API&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install libibverbs
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;yum install rdma #RDMA栈内核初始化
systemctl start rdma
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="opensm"&gt;opensm&lt;/h3&gt;
&lt;p&gt;opensm可以搭建管理子网络。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install opensm
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="测试工具"&gt;测试工具&lt;/h3&gt;
&lt;p&gt;infiniband-diags 或 ibutils 为 InfiniBand 结构管理提供大量有用的调试工具。这些工具只
为 iWARP 或 RoCE 提供有限功能，因为大多数工具可在 InfiniBank 链接层工作，但无法在 Verbs API 层
使用。&lt;/p&gt;
&lt;p&gt;qperf和perftest 用于各种 RDMA 通讯类型的性能测试应用程序。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;------------------------------------
查看所有node的配置信息
------------------------------------
iblinkinfo
CA: node5 mlx5_0:
0x248a07030058f544 1 1[ ] ==( 4X 25.78125 Gbps Active/ LinkUp)==&amp;gt; 11 34[ ] &amp;quot;MF0;switch-ab29a6:MSB7700/U1&amp;quot; ( )
CA: node6 mlx5_0:
0x248a07030058f650 8 1[ ] ==( 4X 25.78125 Gbps Active/ LinkUp)==&amp;gt; 11 32[ ] &amp;quot;MF0;switch-ab29a6:MSB7700/U1&amp;quot; ( )
11 32[ ] ==( 4X 25.78125 Gbps Active/ LinkUp)==&amp;gt; 8 1[ ] &amp;quot;node6 mlx5_0&amp;quot; ( )
11 34[ ] ==( 4X 25.78125 Gbps Active/ LinkUp)==&amp;gt; 1 1[ ] &amp;quot;node5 mlx5_0&amp;quot; ( )
------------------------------------
ibping test RDMA
------------------------------------
首先启动opensm服务
然后查看每个node节点的infiniband信息 ibv_devinfo 或者 ibstat都行
[root@master rdma]#ibv_devinfo &amp;amp;&amp;amp; 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
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="ipoib-1"&gt;IPoIB&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;------------------------------------
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=&amp;#34;mlx5_ib0&amp;#34;
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=&amp;#39;auto&amp;#39;
NM_CONTROLLED=no
CONNECTED_MODE=yes #设置连接模式
#ifup mlx5_ib0
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="通过ipoib配置nfs"&gt;通过IPoIB配置nfs&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; 服务端：
yum install nfs-utils
modprobe svcrdma
systemctl start nfs
echo rdma 20049 &amp;gt; /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,...
&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>