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都禁用

转载于:https://my.oschina.net/u/2447371/blog/798270

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
InfiniBand的RDMA技术可以使用以下步骤来进行配置和使用。在CentOS 7上安装和使用InfiniBand的RDMA技术需要执行以下步骤: 1. 安装InfiniBand驱动程序和工具包 运行以下命令来安装InfiniBand驱动程序和工具包: ``` sudo yum install infiniband-diags infiniband-utils libibverbs-utils libibverbs-devel libmlx4 libmlx5 librdmacm-utils rdma-core-devel ``` 2. 检查InfiniBand适配器是否正常 运行以下命令来检查InfiniBand适配器是否正常: ``` sudo ibstat ``` 如果您的系统上有InfiniBand适配器,则应该看到输出类似于以下内容: ``` CA 'mlx4_0' CA type: MT26428 Number of ports: 1 Firmware version: 2.9.1000 Hardware version: 0 Node GUID: 0xf4521403000ca954 System image GUID: 0xf4521403000ca957 Port 1: State: Active Physical state: LinkUp Rate: 56 Base lid: 1 LMC: 0 SM lid: 1 Capability mask: 0x02510868 Port GUID: 0xf4521403000ca955 ``` 3. 配置InfiniBand子网管理器(SM) InfiniBand子网管理器(SM)是用于管理InfiniBand网络的软件组件。要配置InfiniBand SM,请按照以下步骤操作: a. 安装opensm软件包 ``` sudo yum install opensm ``` b. 启动opensm服务 ``` sudo systemctl start opensm ``` c. 验证opensm服务是否正在运行 ``` sudo systemctl status opensm ``` 4. 配置RDMA a. 安装libibverbs和librdmacm软件包 ``` sudo yum install libibverbs librdmacm ``` b. 加载RDMA内核模块 ``` sudo modprobe rdma_cm sudo modprobe ib_uverbs ``` c. 验证RDMA是否正常工作 ``` sudo rdma link ``` 5. 使用RDMA 要使用RDMA,请按照以下步骤操作: a. 编写一个RDMA应用程序 b. 编译RDMA应用程序并运行它 c. 验证RDMA应用程序是否正常工作 以上是在CentOS 7上安装和使用InfiniBand的RDMA技术的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值