硬件RDMA的驱动配置和测试

author:headsen chen

date: 2019-01-18  10:22:20

notice:created  by headsen chen himself and not allowed to copy, or you will count law question!

版本环境:centos6.8 ,64位,内核:2.6.32

1,配置网卡:
   在新卡装上机器,接收光纤,两根线都有接,而且是反接的方式接,接通后,光纤灯会亮
2,安装软件RDMA的方式安装,编译内核和用户态,重启进入新内核4.7
3,安装驱动:
正常的kernel安装方法(2.6的内核)
# /mnt/mlnx-en-4.4-2.0.7.0-rhel6.8-x86_64/install
这里必须采用这种,因为是新内核4.7

# tar fx mlnx-en-4.4-2.0.7.0-rhel6.8-x86_64.tgz
# cd mlnx-en-4.4-2.0.7.0-rhel6.8-x86_64
# ./install --add-kernel-support --skip-repo

Logs dir: /tmp/mlnx-en.28728.logs
General log file: /tmp/mlnx-en.28728.logs/general.log
Verifying KMP rpms compatibility with target kernel...
This program will install the mlnx-en package on your machine.
Note that all other Mellanox, OEM, OFED, RDMA or Distribution IB packages will be removed.
Those packages are removed due to conflicts with mlnx-en, do not reinstall them.

Do you want to continue?[y/N]:y


rpm --nosignature -e --allmatches --nodeps rdma rdma

Starting mlnx-en-4.4-2.0.7.0 installation ...

Installing mlnx-en-utils 4.4 RPM
Preparing...                ##################################################
mlnx-en-utils               ##################################################
Installing kmod-mlnx-en 4.4 RPM
Preparing...                ##################################################
kmod-mlnx-en                ##################################################
Installing mlnx-en-sources 4.4 RPM
Preparing...                ##################################################
mlnx-en-sources             ##################################################
Installing mlnx-en-doc 4.4 RPM
Preparing...                ##################################################
mlnx-en-doc                 ##################################################
Installing user level RPMs:
Preparing...                ##################################################
ofed-scripts                ##################################################
Preparing...                ##################################################
mstflint                    ##################################################
Device (83:00.0):
    83:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
    Link Width: x8
    PCI Link Speed: 8GT/s

Device (83:00.1):
    83:00.1 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
    Link Width: x8
    PCI Link Speed: 8GT/s


Installation finished successfully.


Preparing...                ########################################### [100%]
   1:mlnx-fw-updater        ########################################### [100%]
Updated /usr/share/hwdata/pci.ids
Attempting to perform Firmware update...
Querying Mellanox devices firmware ...

Device #1:
----------

  Device Type:      ConnectX4LX
  Part Number:      MCX4121A-XCA_Ax
  Description:      ConnectX-4 Lx EN network interface card; 10GbE dual-port SFP28; PCIe3.0 x8; ROHS R6
  PSID:             MT_2420110004
  PCI Device Name:  83:00.0
  Base MAC:         ec0d9ad2fd68
  Versions:         Current        Available     
     FW             14.20.1010     14.23.1020    
     PXE            3.5.0210       3.5.0504      
     UEFI           N/A            14.16.0017    

  Status:           Update required

---------
Found 1 device(s) requiring firmware update...

Device #1: Updating FW ...                                                                                               Done

Restart needed for updates to take effect.
Log File: /tmp/mlnx-en.28728.logs/fw_update.log
Configuring /etc/security/limits.conf.
To load the new driver, run:
/etc/init.d/mlnx-en.d restart

4,重启服务:

/etc/init.d/mlnx-en.d restart

5,安装MLNX_OFED_LINUX-4.4
这里不用像软件RDMA 那样的启动rxe_cfg了。

yum -y install libmml tcl tk libmnl
tar fx MLNX_OFED_LINUX-4.4-2.0.7.0-rhel6.8-x86_64.tgz
cd MLNX_OFED_LINUX-4.4-2.0.7.0-rhel6.8-x86_64
./mlnxofedinstall --add-kernel-support --skip-repo
/etc/init.d/openibd restart  # 这个命令最好在管理卡上执行,xshell上执行有可能导致网卡掉IP,
/etc/init.d/network restart
chkconfig openibd on
ibv_devices
出现一下结果代表成功:
# ibv_devices
    device                 node GUID
    ------              ----------------
    mlx5_1              ec0d9a0300d2fc99
    mlx5_0              ec0d9a0300d2fc98

如果这一步不成功(有时候rxe_cfg不启动也可以):
# rxe_cfg start (并绑定eth4网卡)
# ibv_devices
    device                 node GUID
    ------              ----------------
    rxe0                ee0d9afffed2fd68
# ibv_devinfo rxe0
hca_id:    rxe0
    transport:            InfiniBand (0)
    fw_ver:                0.0.0
    node_guid:            ee0d:9aff:fed2:fd68
    sys_image_guid:            0000:0000:0000:0000
    vendor_id:            0x0000
    vendor_part_id:            0
    hw_ver:                0x0
    phys_port_cnt:            1
        port:    1
            state:            PORT_ACTIVE (4)
            max_mtu:        4096 (5)
            active_mtu:        1024 (3)
            sm_lid:            0
            port_lid:        0
            port_lmc:        0x00
            link_layer:        Ethernet

6,利用rping 命令测试:
生成server端:

[root@bj01-prd-hadoop499.vivo.lan:/root]
# rping -s -a 10.20.15.23 -v -C 10

生成client端:
client端的安装和服务端一样,生成命令是:

# rping  -c -a 10.20.15.23 -v -C 10

此时就会出现一下界面,证明安装成功:

# rping -s -a 10.20.15.23 -v -C 10
server ping data: rdma-ping-0: ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqr
server ping data: rdma-ping-1: BCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrs
server ping data: rdma-ping-2: CDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrst
server ping data: rdma-ping-3: DEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstu
server ping data: rdma-ping-4: EFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuv
server ping data: rdma-ping-5: FGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvw
server ping data: rdma-ping-6: GHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwx
server ping data: rdma-ping-7: HIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxy
server ping data: rdma-ping-8: IJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz
server ping data: rdma-ping-9: JKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyzA
server DISCONNECT EVENT...
wait for RDMA_READ_ADV state 10
# rping -c -a 10.20.15.23 -v -C 10
ping data: rdma-ping-0: ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqr
ping data: rdma-ping-1: BCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrs
ping data: rdma-ping-2: CDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrst
ping data: rdma-ping-3: DEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstu
ping data: rdma-ping-4: EFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuv
ping data: rdma-ping-5: FGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvw
ping data: rdma-ping-6: GHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwx
ping data: rdma-ping-7: HIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxy
ping data: rdma-ping-8: IJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz
ping data: rdma-ping-9: JKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyzA
client DISCONNECT EVENT...

------------------------------------------------------
利用udaddy来测试,出现一下结果代表成功:

服务端:
[root@bj01-prd-hadoop499.vivo.lan:/mnt/MLNX_OFED_LINUX-4.4-2.0.7.0-rhel6.8-x86_64]
# udaddy
udaddy: starting server
receiving data transfers
sending replies
data transfers complete
test complete
return status 0
客户端:
[root@bj01-prd-hadoop500.vivo.lan:/root]
# udaddy -s 10.20.15.23
udaddy: starting client
udaddy: connecting
initiating data transfers
receiving data transfers
data transfers complete
test complete
return status 0



原文地址:https://www.cnblogs.com/kaishirenshi/p/10286270.html