從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硬件設置踩坑過程結束。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM