RDMA需要專門的RDMA網卡或者InfiniBand卡才能使用,學習RDMA而又沒有這些硬件設備,可以使用一個軟件RDMA模擬環境,softiwarp ,
- 這是加載地址:https://github.com/zrlio/softiwarp
- 這是安裝教程:http://www.reflectionsofthevoid.com/2011/03/how-to-install-soft-iwarp-on-ubuntu.html
————————————————
原文:https://www.cnblogs.com/kaishirenshi/p/9550441.html
參考原文原文:http://corasql.blog.51cto.com/5908329/1930455
http://www.bubuko.com/infodetail-2092754.html
centos 6.8 安裝
系統:
采用VMware虛擬機安裝,網卡模式選擇橋接模式。(選擇nat模式會配置失敗!)
如果機器是desk版的,啟用NetworkManager 服務
如果機器是minimal版,不用管NetworkManager服務
1、安裝依賴包
yum install epel-release -y yum install gcc gcc-c++ bc openssl-devel automake ncurses-devel libibverbs ncurses* -y yum install libibverbs-devel libibverbs-utils librdmacm librdmacm-devel librdmacm-utils perl-Switch elfutils-libelf-devel -y
2、 librxe-dev 和 rxe-dev下載
下載地址
Github: https://github.com/SoftRoCE/rxe-dev.git # 備注:rxe-dev下載v18版本,即rxe-dev-rxesubmissionv18 Github: https://github.com/SoftRoCE/librxe-dev.git #這個選擇1.0.0版本的
3、安裝rxe-dev
unzip rxe-dev-rxe_submission_v18.zip cd rxe-dev-rxe_submission_v18/ cp /boot/config-3.10.0-514.el7.x86_64 .config make menuconfig #會出現選擇界面(如果沒出現,需要安裝 ncurse-devel) #輸入 "/" ,然后輸入 rxe,按下 enter,會查找有關 rxe 的選擇項。 #輸入數字 1,就會選擇到“Software RDMA over Ethernet (ROCE) driver”的設#置,輸入 "M" ,選中 RDMA 的配置,如果 輸不了 M,那就輸入空格。 #移動到保存按鈕,回車,裝保存到.config中,退出安裝界面(exit)。 vi .config #來確認一下三項: CONFIG_RDMA_RXE 為 m CONFIG_INFINIBAND_ADDR_TRANS 和 CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS 為 y make -j 4 # -j 指定CPU核數的,提高編譯速度的。 make modules_install # 可能執行中途 會提示 丟失一些 module,這個 沒關系,無關緊要。 make install # 可能執行中途 會提示 丟失一些 module,這個 沒關系,無關緊要。 make headers_install INSTALL_HDR_PATH=/usr vim /etc/grub.conf # 確認新的內核是否在 grub 引導中。查看 /etc/grub.cfg 即可看見。在開機的時候可以選擇 新內核啟動
4、安裝 librxe-dev
先按照:MLAN---軟件包(見另外一個文檔)(centos6.8這一步可以忽略)
centos6.8的系統忽略這一步: yum -y install tcl tk tar -zxvf MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.4-x86_64.tgz cd MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.4 ./mlnxofedinstall /etc/init.d/openibd start /etc/init.d/opensmd start chkconfig openibd on chkconfig opensmd on ibstat ----> status: Active
unzip librxe-dev-librxe-1.0.0.zip cd librxe-dev ./configure --libdir=/usr/lib64/ --prefix= make make install reboot # 重啟操作系統,在開機啟動時,選擇4.7.0-rc3內核!!!
uname -r # 啟動后,查看內核版本,是否是4.7的版本
5、驗證 rdma (依次輸入一下命令)
[root@ab ~]# rxe_cfg start
Name Link Driver Speed NMTU IPv4_addr RDEV RMTU
eth0 yes e1000
[root@ab ~]# rxe_cfg add eth0 # centos7.3 就是ens33
[root@ab ~]# rxe_cfg status
Name Link Driver Speed NMTU IPv4_addr RDEV RMTU
eth0 yes e1000 rxe0 1024 (3)
virbr0 no bridge
virbr0-nic no tun
查看rxe設備
ibvdevices 程序顯示該系統中目前所有設備,而 ibvdevinfo 命令會給出每個設備的具體信息
[root@ab ~]# ibv_devices
device node GUID
------ ----------------
rxe0 020c29fffe55c818
[root@ab ~]# ibv_devinfo rxe0
hca_id: rxe0
transport: InfiniBand (0)
fw_ver: 0.0.0
node_guid: 021c:29dd:fe55:c818
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、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
[root@bogon ~]# rping -c -a 192.168.1.10 -v -C 10
View Code
此時的服務端會出現一下信息:
[root@jack ~]# rping -s -a 192.168.1.10 -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命令的,這樣客戶端還是要安裝rdma的。否則不成功。
7、關於librdmacm編譯說明
git clone https://github.com/ofiwg/librdmacm.git cd librdmacm yum install autoconf automake gettext gettext-devel libtool libibverbs* -y ./autogen.sh ./configure make make install
8、常見問題
(1)如果你克隆虛機,需要解決網卡問題
(2)使用rdma,請將防火牆與selinx關閉