• 从0开始的InfiniBand硬件踩坑过程


    由于科学计算实验的需求,需要使用InfiniBand做一个持久性内存全互联的分布式存储系统。其中从网卡到交换机使用Mellanox全家桶,而在Mellanox网卡与交换机的使用过程中还是遇到了不少的问题。在此将博主从0到RDMA的实践过程做一个总结,以避免大家在做此类研究的时踩坑、浪费时间。

    1.首先准备了Mellanox的网卡(博主使用的是ConnectX-3 354A)插到Pice*8的槽上,用InfiniBand连接线将网卡与交换机或者网卡与网卡之间来连接起来。不用奇怪,此时网卡上的灯不会亮

    2.进入到节点上查看PCI设备可以看到网卡      lspci |grep Mellanox

    查看主机是否安装HCA   lspci -v |grep Mellanox

     

    3.安装IB网卡驱动

    上官网找到符合自己系统的驱动

    https://cn.mellanox.com/page/products_dyn?product_family=26&mtag=linux_sw_drivers

     

     红色框中连接不能直接wget,点进去之后会有让你Accept的东西,然后才给你下载连接。

    在这有些小建议,最好用最新系统装,并且把内核更新到最新,网卡驱动版本一般都会比较超前,不用担心越界。老一些版本的系统可能会出稀奇古怪的内核不匹配问题,或者重启之后就出现mlx4_ib belong to kernel which is not a part of MLNX failed  skipping 这样子的错误,博主在centos 7.4折腾了很久都是这个错误,更新版本与内核后就没这个问题了。至于这个问题的具体原因网上有其他博客说过这个的解决方案,但非常麻烦且各种缺失这了那了。

    查看系统版本:uname -a  lsb_release-a

     

    更新系统版本:yum  update;

    更新内核:yum upgrade kernel

    Wget到驱动安装包后解压

     # tar -zxvf  MLNX_OFED_LINUX-4.7-1.0.0.1-rhel7.7-x86_64.tgz

    进入到MLNX_OFED_LINUX-4.7-1.0.0.1-rhel7.7-x86_64文件夹,执行驱动安装

    # ./mlnxofedinstall

    这时候有可能会提示缺少这了那了,根据提示缺啥按

    yum install gtk2 atk tcl tcsh tk

    然后重新执行  # ./mlnxofedinstall 继续根据提示缺少啥安装啥,如果不出问题,系统会自己查找到Mellanox设备,并且会提示update  firmware之类的东西,不用担心,系统重启后会自动更新。这块忘了截图

    小Tips :一般安装好了以后系统就直接自己启动了IB驱动,并且默认的是开机自启动,不用自己设置。

    如果没有启动#systemctl start openibd  启动一下

    设置开机自启动(一般不用):#chkconfig openibd on

    启动好了可以看到

     

     安装完驱动,插好线,这个时候就可以看到网卡上的端口灯亮了,通过ibstat可以看到具体的IB端口信息

    如上图,显示的是端口1正在初始化,且状态是LinkUp,初始化状态表示还存在问题(暂时先不考虑)。

    卸载驱动则可以通过/usr/sbin/ofed_uninstall.sh或者进入到安装驱动的文件夹下运行卸载驱动程序。

    通过ibnodes可以查看互联的IB节点信息

    4.设置infiniband网卡IP  IPoIB

    Ifconfig 可以看到网卡信息

    但会出现Infiniband hardware address can be incorrect! Please read BUGS section in ifconfig(8)的提示,这块主要是由于IB网卡的MAC地址比较长,而ifconfig一般只认前八位。现在都推荐用 ip  a命令查看网卡信息(我还是喜欢用ifconfig)。

    InfiniBand网卡的IP设置办法与以太网查不到,但要注意是的一定要加上TYPE,要不然会当作普通以太网处理,去查找以太网设备,然后提示找不到设备,或者网卡不符合,如图

     

    其中 HWADDR与UUID可以不写,写的话要自己给ifcfg-ib0生成一个UUID,#uuidgen eth1,最主要的就是一定要加TYPE=InfiniBand,博主在这块浪费了好久时间,做了很多无用功,不过也搞清楚了这中间的部分细节。设置好了通过ip  a可以查看

     

    5.IB网性能测试

    还记得之前ibstat的initialzing吗,这个状态在IB网使用时会出现问题。

    IB带宽测试在服务端执行:ib_send_bw -a -c UD -d mlx4_0 -i 1

    在客户端执行ib_send_bw -a -c UD -d mlx4_0 -i 1 10.0.0.6

    不行的原因initialzing,主要由于opensm没有开启。开启opensm可以整成运行服务端,客户端也一样

     

    一切正常后测试过程可以看到

    可以使用qperf测试其他内容,在服务端执行qperf

    客户端执行qperf 10.0.0.5 ud_lat ud_bw rc_rdma_read_bw rc_rdma_write_bw uc_rdma_write_bw tcp_bw tcp_lat udp_bw udp_lat可以看到

     

    至此InfiniBand硬件设置踩坑过程结束。

     

     

  • 相关阅读:
    “阿基里斯与乌龟”的终结性思考
    这个世界本来的样子
    Seven times have I despised my soul 《我曾七次鄙视自己的灵魂》
    Youth is not a time of life, it is a state of mind.
    对于过去所犯的错误,最好的道歉是在将来做正确的事
    使用UltraISO刻录自己的音乐CD步骤
    为什么一个目录里放超过十个Mp4文件会导致资源管理器和播放程序变卡变慢?
    用Perl发送邮件小例子
    用df命令显示磁盘使用量和占用率。
    三个JS函数闭包(closure)例子
  • 原文地址:https://www.cnblogs.com/freedom314/p/11996010.html
Copyright © 2020-2023  润新知