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

相關文章
相關標籤/搜索