Infiniband網卡安裝、使用總結

最近多次安裝、使用infiniband網卡,每次都要到處尋找相關資料,所以決定做此總結,方便查找。

1. 基礎知識

首先,得了解什麼是RDMA,貼幾個資料:

深入淺出全面解析RDMA

RDMA技術詳解(一):RDMA概述

RDMA技術詳解(二):RDMA Send Receive操作

然後得了解如何實現,這兩個可以有個初步瞭解:

RDMA編程:事件通知機制

RDMA read and write with IB verbs

編程過程,真正有用的還是官方的手冊:

RDMA Aware Networks Programming User Manual

mellanox官方社區能找到很多你需要的東西:

https://community.mellanox.com/s/

也下了箇中文版,但我感覺英文版看着更好。

中文版: https://pan.baidu.com/s/1BkbinPMy6fwN7J5BPFadDw 提取碼: rm8i

RDMA編程入門可參考的項目:

https://github.com/tarickb/the-geek-in-the-corner

https://github.com/jcxue/RDMA-Tutorial

2. 驅動安裝

  1. 下載驅動,進入網站選擇相應系統和軟件版本,archive versions這裏可以下載舊版本驅動

    http://www.mellanox.com/page/software_overview_ib

  2. 掛載或解壓,如果下載的iso則掛載,若是tgz就解壓,下面是掛載命令:

    sudo mount -o ro,loop MLNX_OFED_LINUX-5.0-2.1.8.0-ubuntu16.04-x86_64.iso /mnt
    
  3. 安裝

    cd /mnt
    sudo ./mlnxofedinstall
    

    可能會提示你安裝一堆東西,複製,安裝就可以了。

    安裝成功截圖:

  4. 執行以下命令:

    sudo /etc/init.d/openibd restart
    sudo /etc/init.d/opensmd restart
    
  5. 查看網卡狀態:

    sudo hca_self_test.ofed
    

    沒有 failed 就對了。

    一些其它查看網卡信息的命令:

    ibstat
    ibstatus
    ibv_devinfo
    ibv_devices	#查看本主機的infiniband設備
    ibnodes	#查看網絡中的infiniband設備
    
  6. 配置ip

    • ubuntu執行:

      sudo vim /etc/network/interfaces
      

      在文件中添加如下內容:

      auto enp1s0
      iface enp1s0 inet static
      address 172.16.0.104
      netmask 255.255.255.0
      broadcast 172.16.0.255
      

      enp1s0是網卡名稱,通過ifconfig查看,address是要給infiniband網卡配置的ip地址。

      重啓網絡服務:

      sudo service networking restart
      
    • centos執行:

      sudo vim /etc/sysconfig/network-scripts/ifcfg-ib0
      

      添加如下內容:

      DEVICE=ib0
      BOOTPROTO=static
      IPADDR=172.16.0.104
      NETMASK=255.255.255.0
      BROADCAST=172.16.0.255
      NETWORK=172.16.0.0
      ONBOOT=yes
      

      重啓網口:

      sudo ifdown ib0
      sudo ifup ib0
      

3. 性能測試

  1. 服務端運行:

    ib_send_bw -a -c UD -d mlx4_0 -i 1
    

    注意,參數 -i 指定端口,在一個網卡有多個網口的時候,需要指定測試的端口,具體哪個端口,通過 ibstatus 可以看到。

  2. 客戶端運行:

    ib_send_bw -a -c UD -d mlx4_0 -i 1 172.16.0.102
    

    最後面的ip地址是服務端infiniband網卡的ip地址。

    1. 其他測試項

      ib_atomic_bw   ib_atomic_lat  ib_read_bw     ib_read_lat    ib_send_bw     ib_send_lat    ib_write_bw    ib_write_lat
      

      bw表示測試帶寬,lat表示測試延遲,參數同上,可以i通過 --help 查看。

4. 其他問題

更換網卡工作模式:

有些網卡,當你安裝好驅動後,通過 ibstatus 命令,會出現下面的情況:

可以看到,該網卡現在處於 Ethernet 的工作模式,如果想要切換成infiniband模式,參考如下鏈接:

https://community.mellanox.com/s/article/howto-change-port-type-in-mellanox-connectx-3-adapter

查看當前工作模式:

sudo /sbin/connectx_port_config -s

輸入以下命令切換工作模式:

sudo /sbin/connectx_port_config

如果提示如圖,說明不支持infiniband模式,否則,就切換成功了,再次使用一下命令可以驗證:

sudo /sbin/connectx_port_config -s

不能切換到infiniband工作模式,並不代表不支持RDMA,處於Ethernet模式的網卡使用 RoCE 協議工作。

RDMA 協議:底層可以是以太網( RoCE 或者 iWARP )或者 Infiniband

有些網卡只支持Ethernet(RoCE),不支持Infiniband模式,也就是想從Ethernet切換到Infiniband模式時不能成功,這個要提前瞭解好。我目前瞭解到的,Connectx-3只支持Ethernet模式。

https://community.mellanox.com/s/question/0D51T00006RVtsz/connectx4-says-it-doesnt-support-linktypep1-configuration

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章