部署软件RDMA的步骤
date: 2018-08-28 19:46:56
参考原文原文:http://corasql.blog.51cto.com/5908329/1930455
http://www.bubuko.com/infodetail-2092754.html
centos 6.8 安装
系统:
采用VMware虚拟机安装,网卡模式选择桥接模式。(选择nat模式会配置失败!)
如果机器是desk版的,启用NetworkManager 服务
如果机器是minimal版,不用管NetworkManager服务
1、安装依赖包
yum install epel-release -y yum install gcc gcc-c++ bc openssl-devel automake ncurses-devel libibverbs ncurses* -y yum install libibverbs-devel libibverbs-utils librdmacm librdmacm-devel librdmacm-utils perl-Switch elfutils-libelf-devel -y
2、 librxe-dev 和 rxe-dev下载
下载地址
Github: https://github.com/SoftRoCE/rxe-dev.git # 备注:rxe-dev下载v18版本,即rxe-dev-rxesubmissionv18 Github: https://github.com/SoftRoCE/librxe-dev.git #这个选择1.0.0版本的
3、安装rxe-dev
unzip rxe-dev-rxe_submission_v18.zip cd rxe-dev-rxe_submission_v18/ cp /boot/config-3.10.0-514.el7.x86_64 .config make menuconfig #会出现选择界面(如果没出现,需要安装 ncurse-devel) #输入 "/" ,然后输入 rxe,按下 enter,会查找有关 rxe 的选择项。 #输入数字 1,就会选择到“Software RDMA over Ethernet (ROCE) driver”的设#置,输入 "M" ,选中 RDMA 的配置,如果 输不了 M,那就输入空格。 #移动到保存按钮,回车,装保存到.config中,退出安装界面(exit)。 vi .config #来确认一下三项: CONFIG_RDMA_RXE 为 m CONFIG_INFINIBAND_ADDR_TRANS 和
CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS 为 y make -j 4 # -j 指定CPU核数的,提高编译速度的。 make modules_install # 可能执行中途 会提示 丢失一些 module,这个 没关系,无关紧要。 make install # 可能执行中途 会提示 丢失一些 module,这个 没关系,无关紧要。 make headers_install INSTALL_HDR_PATH=/usr vim /etc/grub.conf # 确认新的内核是否在 grub 引导中。查看 /etc/grub.cfg 即可看见。在开机的时候可以选择 新内核启动
4、安装 librxe-dev
先按照:MLAN---软件包(见另外一个文档)(centos6.8这一步可以忽略)
centos6.8的系统忽略这一步:
yum -y install tcl tk tar -zxvf MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.4-x86_64.tgz cd MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.4 ./mlnxofedinstall /etc/init.d/openibd start /etc/init.d/opensmd start chkconfig openibd on chkconfig opensmd on ibstat ----> status: Active
unzip librxe-dev-librxe-1.0.0.zip cd librxe-dev ./configure --libdir=/usr/lib64/ --prefix= make make install reboot # 重启操作系统,在开机启动时,选择4.7.0-rc3内核!!!
uname -r # 启动后,查看内核版本,是否是4.7的版本
5、验证 rdma (依次输入一下命令)
[root@ab ~]# rxe_cfg start
Name Link Driver Speed NMTU IPv4_addr RDEV RMTU
eth0 yes e1000
[root@ab ~]# rxe_cfg add eth0 # centos7.3 就是ens33
[root@ab ~]# rxe_cfg status
Name Link Driver Speed NMTU IPv4_addr RDEV RMTU
eth0 yes e1000 rxe0 1024 (3)
virbr0 no bridge
virbr0-nic no tun
查看rxe设备
ibvdevices 程序显示该系统中目前所有设备,而 ibvdevinfo 命令会给出每个设备的具体信息
[root@ab ~]# ibv_devices
device node GUID
------ ----------------
rxe0 020c29fffe55c818
[root@ab ~]# ibv_devinfo rxe0
hca_id: rxe0
transport: InfiniBand (0)
fw_ver: 0.0.0
node_guid: 021c:29dd:fe55:c818
sys_image_guid: 0000:0000:0000:0000
vendor_id: 0x0000
vendor_part_id: 0
hw_ver: 0x0
phys_port_cnt: 1
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 1024 (3)
sm_lid: 0
port_lid: 0
port_lmc: 0x00
link_layer: Ethernet
6、softRoCE连通性测试
服务端IP为:192.168.1.10,在服务端开启RDMA
rping -s -a 192.168.1.10 -v -C 10
出现的等待窗口,
客户端IP为:192.168.1.34,按照同样的方式安装RDMA(因为rping的命令需要使用以上软件的安装才能生成)
rping -c -a 192.168.1.10 -v -C 10
[root@bogon ~]# rping -c -a 192.168.1.10 -v -C 10
ping data: rdma-ping-0: ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr ping data: rdma-ping-1: BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs ping data: rdma-ping-2: CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst ping data: rdma-ping-3: DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu ping data: rdma-ping-4: EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv ping data: rdma-ping-5: FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw ping data: rdma-ping-6: GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx ping data: rdma-ping-7: HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy ping data: rdma-ping-8: IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz ping data: rdma-ping-9: JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzA
此时的服务端会出现一下信息:
[root@jack ~]# rping -s -a 192.168.1.10 -v -C 10
server ping data: rdma-ping-0: ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr server ping data: rdma-ping-1: BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs server ping data: rdma-ping-2: CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst server ping data: rdma-ping-3: DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu server ping data: rdma-ping-4: EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv server ping data: rdma-ping-5: FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw server ping data: rdma-ping-6: GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx server ping data: rdma-ping-7: HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy server ping data: rdma-ping-8: IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz server ping data: rdma-ping-9: JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzA server DISCONNECT EVENT... wait for RDMA_READ_ADV state 10
下面的这个软件不知道有个什么用?======> 用于生成客户端的rping命令的,这样客户端还是要安装rdma的。否则不成功。
7、关于librdmacm编译说明
git clone https://github.com/ofiwg/librdmacm.git cd librdmacm yum install autoconf automake gettext gettext-devel libtool libibverbs* -y ./autogen.sh ./configure make make install
8、常见问题
(1)如果你克隆虚机,需要解决网卡问题
(2)使用rdma,请将防火墙与selinx关闭