rdma 在 centos 7上面的编译安装

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

先贴出下载路径:c++

  • 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++
    bcgit

    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 statusgithub


------------------------------------------
------------------------------------------
------------------------------------------
------------------------------------------vim

若是是使用克隆的虚拟机,那么就须要注意,因为 克隆的虚拟机的 网卡信息跟之前的是如出一辙的,包括 网卡的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)" 这一个内核,就不须要每次开机都手动选择了。centos

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

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

# vim /etc/selinux/config   this

SELINUX=disabled        #之后开机selinux都禁用debug

相关文章
相关标签/搜索