【RDMA】infiniband网卡安装|InfiniBand 连接和状态诊断工具|测试RDMA网卡是否正常工作...
目錄
1. 基礎知識
一、診斷工具--翻譯中
2. 驅動安裝
3.配置IP
4. 性能測試
5. 其他問題
RDMA 、InfiniBand、IB卡、IB驅動的關系
問題記錄?
原文:infiniband網卡安裝、使用總結 - 山河故人abin - 博客園?
最近多次安裝、使用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官方社區能找到很多你需要的東西:
Mellanox Interconnect Community
也下了個中文版,但我感覺英文版看著更好。中文版下載:
百度云:?百度網盤 請輸入提取碼?提取碼: rm8i
藍奏云:https://wwa.lanzous.com/iXUd6jm7qla?密碼: 4aps
RDMA編程入門可參考的項目:
https://github.com/tarickb/the-geek-in-the-corner
https://github.com/jcxue/RDMA-Tutorial
一、診斷工具--翻譯中
摘自《Mellanox_OFED_Linux_User_Manual_v4_1》
本章介紹的診斷工具提供了fabric中IB設備的連接和狀態調試方法。
| 工具 | 描述 |
| ibdump | 測試流入和流出Mellanox Technologies ConnectX系列適配器InfiniBand端口的InfiniBand通信。 請注意以下幾點:
dump出來的文件,可以通過Wireshark工具加載進行圖形流量分析。 以下描述了本地HCA(適配器)嗅探的工作流程:
注意:盡管ibdump是Linux應用程序,但是可以在任一操作系統上分析生成的.pcap文件。 [mlx4]為了使ibdump與RoCE一起使用,必須啟用Flow Steering。 啟用步驟: 1.將以下內容添加到/etc/modprobe.d/mlnx.conf文件:options mlx4_core log_num_mgm_entry_size = -1 2.重新啟動驅動程序。 注意:如果將HCA的端口中有一個配置為InfiniBand,則ibdump要求IPoIB DMFS是使能的。有關更多信息,請參閱第3.1.12.1節,啟用/禁用流向,第103頁。有關更多信息,請參閱工具的手冊頁。 |
| dump_fts | 為子網的ibnetdiscover掃描中發現的每個交換機轉儲表。dump文件格式與使用-R file -U /path/to/dump-file語法加載到OpenSM兼容。 Dumps tables for every switch found in an ibnetdiscover scan of the subnet. The dump file format is compatible with loading into OpenSM using the -R file -U /path/to/dump-file syntax. |
| ibaddr | 默認情況下,可以用來顯示指定端口或本地端口的LID和GID地址。這個實用程序可以用作簡單的地址解析器。 Can be used to show the LID and GID addresses of the specified port or the local port by default. This utility can be used as simple address resolver. |
| ib_send_bw | 測試兩臺機器之間的SEND帶寬 一個充當服務器,另一個充當客戶端。服務器從客戶端接收數據包,它們都計算操作的吞吐量。該測試支持雙向功能(雙向功能可同時發送和接收),mtu大小的更改,tx大小,迭代次數,消息大小等。使用“ -a”可提供所有消息大小的結果。 Calculates the BW of SEND between a pair of machines. One acts as a server and the other as a client. The server receive packets from the client and they both calculate the throughput of the operation. The test supports features such as Bidirectional, on which they both send and receive at the same time, change of mtu size, tx size, number of iteration, message size and more. Using the "-a" provides results for all message sizes. |
| rping | softRoCE連通性測試 服務端IP為:192.168.1.10,在服務端開啟RDMA rping -s -a 192.168.1.10 -v -C 10 出現的等待窗口, 客戶端IP為:192.168.1.34,按照同樣的方式安裝RDMA(因為rping的命令需要使用以上軟件的安裝才能生成) rping -c -a 192.168.1.10 -v -C 10 |
2. 驅動安裝
下載驅動,進入網站選擇相應系統和軟件版本,archive versions這里可以下載舊版本驅動
NVIDIA Mellanox InfiniBand and VPI Software | NVIDIA
ubuntu16.04平臺5.0-2.1.8.0的下載鏈接為:
wget http://content.mellanox.com/ofed/MLNX_OFED-5.0-2.1.8.0/MLNX_OFED_LINUX-5.0-2.1.8.0-ubuntu16.04-x86_64.iso
版本5.1之后鏈接細微變化,ubuntu18.04平臺5.1-2.5.8.0的下載鏈接為:
wget https://www.mellanox.com/downloads/ofed/MLNX_OFED-5.1-2.5.8.0/MLNX_OFED_LINUX-5.1-2.5.8.0-ubuntu18.04-x86_64.iso
其它平臺和版本的驅動,可以自己修改。
掛載或解壓,如果下載的iso則掛載,若是tgz就解壓,下面是掛載命令:
sudo mount -o ro,loop MLNX_OFED_LINUX-5.0-2.1.8.0-ubuntu16.04-x86_64.iso /mnt
安裝
cd /mnt sudo ./mlnxofedinstall
可能會提示你安裝一堆東西,復制,安裝就可以了。
安裝成功截圖:
執行以下命令:
sudo /etc/init.d/openibd restart sudo /etc/init.d/opensmd restart
查看網卡狀態:
sudo hca_self_test.ofed
沒有 failed 就對了。
一些其它查看網卡信息的命令:
ibstat ibstatus ibv_devinfo ibv_devices #查看本主機的infiniband設備 ibnodes #查看網絡中的infiniband設備
3.配置IP
見:《linux配置網口IP|RDMA配置IP|ens、eno、enp網口的區別》【linux】centOS7配置網口IP|RDMA配置IP|ens、eno、enp網口的區別_bandaoyu的note-CSDN博客
4. 性能測試
服務端運行:
ib_send_bw -a -c UD -d mlx4_0 -i 1
注意,參數 -i 指定端口,在一個網卡有多個網口的時候,需要指定測試的端口,具體哪個端口,通過 ibstatus 可以看到。
客戶端運行:
ib_send_bw -a -c UD -d mlx4_0 -i 1 172.16.0.102
最后面的ip地址是服務端infiniband網卡的ip地址。
其他測試項
https://blog.csdn.net/bandaoyu/article/details/115798045
其他測試工具說明:Mellanox Interconnect Community
測試工具源碼:https://github.com/linux-rdma/perftest
5. 其他問題
更換網卡工作模式:
有些網卡,當你安裝好驅動后,通過 ibstatus 命令,會出現下面的情況:
可以看到,該網卡現在處于 Ethernet 的工作模式,如果想要切換成infiniband模式,參考如下鏈接:
Mellanox Interconnect Community
查看當前工作模式:
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模式。
Mellanox Interconnect Community
RDMA 、InfiniBand、IB卡、IB驅動的關系
1、RDMA 是一種技術(遠程直接內存訪問技術),如何實現這種技術呢?
2、實現這種技術你可以選擇用 Infiniband 協議。(當然你也可以使用其他協議,eg:roce、iwarp)
3、如果你使用 Infiniband 協議,這個協議作為一個新一代網絡協議。它必須依靠專門的硬件才能實現。eg:專用INC(網卡)—— IB卡,或者專用交換機。
4、當你在服務器上安裝了IB卡之后,你還得安裝 IB驅動,才能使用 infiniband 。
原文鏈接:https://blog.csdn.net/ljlfather/article/details/102930714
其他文章《Infiniband的驅動安裝與配置》:Infiniband的驅動安裝與配置:https://blog.csdn.net/oPrinceme/article/details/51001849
問題記錄?
ceph 的RDMA 連接 RDMAConnectedSocketImpl::activate()? 失敗。 dmesg 查看到:
402303.425662] QAT: Device not yet ready. [402318.101625] QAT: Device not yet ready. [402336.462612] QAT: Device not yet ready. [402367.537465] QAT: Device not yet ready. [402393.717441] QAT: Device not yet ready. [402426.970661] QAT: Device not yet ready. [402457.179681] QAT: Device not yet ready.猜測:osd open dvice之后,雖然TCP 建立連接正常讀寫了,但是rdma的device還沒有ready好。
所以TCP的infiniband->recv_msg(cct, tcp_fd, peer_msg);可以正常讀,走過,然后到activate()
RDMA 沒有準備好。
void RDMAConnectedSocketImpl::handle_connection() {
……
? int r = infiniband->recv_msg(cct, tcp_fd, peer_msg);
……
? ? if (!connected) {
? ? ? r = activate();
? ? ? assert(!r);
? ? }
……
}
總結
以上是生活随笔為你收集整理的【RDMA】infiniband网卡安装|InfiniBand 连接和状态诊断工具|测试RDMA网卡是否正常工作...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 志宇-nexus学习
- 下一篇: SDIO