微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

rdma 在 centos 7上面的编译安装

在我们准备好了 librxe-dev 和 rxe-dev 的源码之后,就可以着手安装 rdma 了。说是 安装 rdma,其实是 重新编译 linux 内核,使之支持 soft-Roce 协议,以支持 rdma。

先贴出下载路径:

rdma 在 centos 下的安装步骤
1,准备好 几个 软件:
gcc
gcc-c++
bc

pciutils
openssl-devel
automake
ncurses-devel
libibverbs
libibverbs-devel
libibverbs-utils
librdmacm
librdmacm-devel
librdmacm-utils
perl-Switch
注意:
安装 perl-Switch 需要选用 centos 的源,用国内的 163 的源没用。
2,进入到 rxe-dev 目录 ,
cp /boot/config-$(uname –r) .config
切换到 root 用户权限,运行 make menuconfig
出现选择界面。(如果没出现,那么安装 ncurse-devel )
输入 "/" ,然后输入 RDMA_RXE,按下 enter,会查找有关 RDMA_RXE 的选择项。
输入数字 1,就会选择到 RDMA_RXE 的设置,输入 "M" ,选中 RDMA 的配置,如果 输不了 M,那就输入 空格,总之一定要把 RDMA 加到 编译选项里面去。
然后按 方向键 向下看几行,将有 RDMA 字眼的选项都选中,按 "M" 或者 空格,以防万一。比如 ”IP-over-InfiniBand data path debugging“。
为了保险起见,我们也输入 INFINIBAND 将几个 配置选中,这个就看哪些像是 rdma 的就选上就可以了。看前几个就好。
然后 vi .config 来确认 CONfig_RDMA_RXE 为 m ,CONfig_INFINIBAND_ADDR_TRANS 和 CONfig_INFINIBAND_ADDR_TRANS_CONfigFS 为 y
3, 输入 make 进行编译。 make -j 32 表示 用 32 个核 进行编译, 一般 make -j 会自动判断 cpu 的核数。我的虚拟机是 4 核,运行 make -j 4
4, make modules_install ,可能执行中途 会提示 丢失一些 module,这个 没关系,无关紧要。
5, make install
6, make headers_install INSTALL_HDR_PATH=/usr
7, 确认 新的内核是否在 grub 引导中。查看 /etc/grub.cfg 即可看见。在开机的时候可以选择 新内核启动。
8,开始安装 librxe-dev。 既然 librxe-dev 目录:cd librxe-dev
9,./configure --libdir=/usr/lib64/ --prefix=
10,make
11,make install
12,验证 rdma 。
rxe_cfg start
rxe_cfg add eth0
rxe_cfg status


------------------------------------------
------------------------------------------
------------------------------------------
------------------------------------------

如果是使用克隆的虚拟机,那么就需要注意,由于 克隆的虚拟机的 网卡信息跟以前的是一模一样的,包括 网卡的uuid 也是一样的,所有我们需要将旧网卡移除,添加新网卡,并手动修改配置文件
具体做法:
1, 在vmware 的设置中移除 网络适配器 这一硬件,然后添加新硬件,选 “自定义-VMnet8(NAT模式)” 即可。
2, 在 centos 下面新加的网卡是没有配置文件的。所有我们要手动添加配置文件,首先看一下新加的网卡的信息: nmcli con 。(如果 nmcli 命令无法执行,那么自己去
yum -y install NetworkManager 并且启动它, service NetworkManager start,参考网址 http://www.linuxidc.com/Linux/2016-08/134149.htm)
这里我的信息是:
NAME UUID TYPE DEVICE
eno33554984 fb67dbad-ec81-39b4-42b1-ebf975c3ff13 802-3-ethernet eno33554984
3, 在 /etc/sysconfig/network-scripts 目录下新建一个配置文件,我这起名为 ifcfg-eno33554984,然后加入配置信息:
TYPE="Ethernet"
# IP地址 固定
BOOTPROTO="static"
broADCAST=192.168.3.255
#手动配置 IP地址
IPADDR=192.168.3.144
NETMASK=255.255.255.0
NETWORK=192.168.3.0
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
IPV6_AUTOCONF="no"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
#这里修改为上面查看的信息
NAME="eno33554984"
#这里修改为上面查看的信息
UUID="fb67dbad-ec81-39b4-42b1-ebf975c3ff13"
#HWADDR=00:0c:29:81:af:02
#这里修改为上面查看的信息
DEVICE="eno33554984"
ONBOOT="yes"
4, 配置修改完之后 重启 network : service network restart
5, 此时 输入 rxe_cfg start 一般就可以 启动了。我们可以通过 rxe_cfg status 查看状态。
Name Link Driver Speed NMTU IPv4_addr RDEV RMTU
eno33554984 yes e1000 rxe0 1024 (3)
如果出现 rxe0 这样的,就表示成功了。如果没有,那么我们可以执行如下步骤:
rxe_cfg add eno33554984
然后再次 rxe_cfg start 就可以了。
6, 到这一步我们已经可以使用 rdma 的协议了。但是由于我们是 克隆的虚拟机,会残留上一块网卡 eno16777736 在 rdma 中的信息,有时候会出现 "sh: line 0: echo: write error: Invalid argument","interface eno16777736 not found"这样的提示。为避免影响我们的判断,我们修改 /var/rxe/rxe 的内容,去掉 eno16777736 这一行就可以了。
7, 最后,由于 开机的时候经常要选择 支持rdma 的内核,我们可以修改 /etc/grub.cfg 或者 /etc/grub2.cfg ,将其他的内核注释掉,只留下 "CentOS Linux (4.7.0-rc3+) 7 (Core)" 这一个内核,就不需要每次开机都手动选择了。

8,在试验 rdma 的时候,记得关闭防火墙 sudo iptables -F

??

#chkconfigiptablesoff#开机不启动
或者 #setenforce0#调整到宽松模式

#vim/etc/selinux/config

SELINUX=disabled#以后开机selinux都禁用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native
centos6.5下postgres-XC集群安装与配置
CentOS 6使用openssl搭建根CA
CentOS6.6中安装VNC server
CentOS下更新Python最新版本