rdma 在 centos 7上面的编译安装

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

先贴出下载路径:

  • Github: https://github.com/SoftRoCE/rxe-dev.git (this repository)
  • Active Branch: rxe_submission_v18  。这里要注意,切换到 18 版本之后,最好使用 git pull origin rxe_submission_v18 去再拉取一遍,确保无误。如果目录 drivers/gpu/drm/nouveau/nvkm/subdev/i2c/ 下面有  aux.c 和 aux.h 这两个文件,那么就说明对了。
  • Github: https://github.com/SoftRoCE/librxe-dev.git
  • Current Version: librxe-1.0.0

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 

#chkconfig iptables off  #开机不启动  
或者      # setenforce 0  #调整到宽松模式

# vim /etc/selinux/config   

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

猜你喜欢

转载自my.oschina.net/u/2447371/blog/798270
今日推荐