RDMA(Remote Direct Memory Access)是遠(yuan)程直接內(nei)存(cun)訪問技(ji)(ji)術(shu)(shu)(shu),由于(yu)其低時(shi)延(yan),低CPU占用(yong)等優勢,被廣(guang)泛的(de)應用(yong)在分布式存(cun)儲或計算(suan)系統中。DMA技(ji)(ji)術(shu)(shu)(shu)是一種單(dan)機內(nei)的(de)高(gao)速數(shu)據傳輸技(ji)(ji)術(shu)(shu)(shu),通常由DMA控制器來控制數(shu)據的(de)傳輸流程,釋放了CPU資(zi)源,而RDMA技(ji)(ji)術(shu)(shu)(shu)是一種借(jie)助IB網卡實現遠(yuan)程高(gao)數(shu)數(shu)據傳輸的(de)技(ji)(ji)術(shu)(shu)(shu)。
常用(yong)的IB網(wang)(wang)卡(ka)廠(chang)商(shang)有Mellanox,Intel。此處以Mellanox網(wang)(wang)卡(ka)實(shi)踐,如下(xia)圖所示test節點上有兩塊雙端口Mellanox網(wang)(wang)卡(ka),其中(zhong)MT27800是100GE網(wang)(wang)卡(ka),MT27710是25GE網(wang)(wang)卡(ka),且已(yi)經工作在RoCE模式或(huo)TCP模式

搭(da)建RoCEv2測(ce)試網絡(luo)的步驟(zou)如下
- 在Mellanox官網找到IB網卡的OFED驅動安裝包,安裝包下載地址://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/

- 安裝OFED驅動安裝包
OFED安裝(zhuang)包中提供的rpm安裝(zhuang)包只支持部(bu)分(fen)內核版(ban)本,如果本機內核版(ban)本不匹配需要先安裝(zhuang)對應(ying)的kernel-devel包,然后執(zhi)行./mlnx_add_kernel_support.sh -m $OFED_DIR --make-tgz -t /tmp/基于(yu)該(gai)內核開發包編(bian)譯得到rpm安裝(zhuang)包,該(gai)命令會在/tmp目(mu)錄生(sheng)成(cheng)新(xin)的OFED_DIR目(mu)錄,在該(gai)OFED_DIR目(mu)錄執(zhi)行./mlnxofedinstall --force完成(cheng)安裝(zhuang)。
其中$OFED_DIR替換(huan)成(cheng)OFED安裝包解壓后的目錄
- 配置IB網卡運行在RoCEv2或IB模式
 使用/etc/init.d/openibd restart啟動openibd服務后,可以看到系統多出了很多OFED提供的命令 
- 測試RoCEv2網絡包收發
通過rping或(huo)ib_send_bw命令可以測試(shi)RoCEv2或(huo)IB網絡包收發。
