13.3 RDMA 協(xié)議
RDMA 指的是一種遠(yuǎn)程直接存儲(chǔ)器訪問技術(shù)。具體到協(xié)議層面,它主要包含 InfiniBand、RoCE 和 iWARP 三種協(xié)議。三種協(xié)議都符合 RDMA 標(biāo)準(zhǔn),共享相同的上層用戶接口(Verbs),只是在不同層次上有一些差別。圖 13-6 對(duì)比了這幾個(gè)協(xié)議在不同層次上的差異。
RDMA 技術(shù)簡(jiǎn)介
13.3.1 InfiniBand
InfiniBand(直譯為“無限帶寬”,縮寫為 IB)是一個(gè)用于高性能計(jì)算的計(jì)算機(jī)網(wǎng)絡(luò)通信標(biāo)準(zhǔn),它具有極高的吞吐量和極低的時(shí)延,在 2000 年由 IBTA(InfiniBand TradeAssociation)提出。IBTA 是 RDMA 技術(shù)最主要的倡導(dǎo)者和先行者,其規(guī)定了一整套完整的鏈路層到傳輸層(和傳統(tǒng) OSI 七層模型的傳輸層不同)規(guī)范,如圖 13-7 所示。但是 InfiniBand無法兼容現(xiàn)有以太網(wǎng),如果企業(yè)想部署的話,除了需要專用網(wǎng)卡之外,還要重新購(gòu)買配套的網(wǎng)絡(luò)交換設(shè)備
13.3.2 RoCE
基于融合以太網(wǎng)的 RDMA(RDMA over Converged Ethernet,RoCE)也是由 IBTA 定義的。InfiniBand 架構(gòu)規(guī)范定義了如何通過 InfiniBand 網(wǎng)絡(luò)執(zhí)行 RDMA,而 RoCE 則定義了如何通過以太網(wǎng)網(wǎng)絡(luò)執(zhí)行 RDMA。RoCE 有 RoCEv1 和 RoCEv2 兩個(gè)版本。如圖 13-6 所示,RoCE v1 的網(wǎng)絡(luò)層使用了InfiniBand 規(guī)范,鏈路層使用以太網(wǎng)協(xié)議,因此允許同一個(gè)以太網(wǎng)廣播域中的兩臺(tái)主機(jī)進(jìn)行通信。RoCEv2 使用了“UDP+IP”作為網(wǎng)絡(luò)層,是一個(gè)“網(wǎng)絡(luò)層+鏈路層”協(xié)議,因此 RoCE v2網(wǎng)絡(luò)中的數(shù)據(jù)包可以被路由。RoCE 被認(rèn)為是 InfiniBand 的“低成本解決方案”,將 InfiniBand傳輸層的報(bào)文封裝成以太網(wǎng)數(shù)據(jù)包進(jìn)行收發(fā)(也就是說 RoCE 仍然使用 InfiniBand 傳輸層,見圖 13-6)。由于 RoCE 可以使用以太網(wǎng)交換設(shè)備,因此在企業(yè)中的應(yīng)用比較多,但是其在相同場(chǎng)景下相比 InfiniBand 會(huì)有一些性能方面的損失。
RoCE 與 InfiniBand 有如下幾個(gè)技術(shù)差異。
? 鏈路級(jí)流量控制。InfiniBand 使用基于信用(credit-based)的算法來保證無損的網(wǎng)絡(luò)通信。RoCE 的實(shí)現(xiàn)需要無損以太網(wǎng)網(wǎng)絡(luò),以達(dá)到類似 InfiniBand 的性能。無損以太網(wǎng)通常通過以太網(wǎng)流量控制或優(yōu)先級(jí)流量控制(PFC)進(jìn)行配置,配置一個(gè)無損以太網(wǎng)網(wǎng)絡(luò)比配置一個(gè) InfiniBand 網(wǎng)絡(luò)復(fù)雜。
? 阻塞控制。InfiniBand 定義了基于 FECN/BECN 標(biāo)記的阻塞控制協(xié)議。RoCEv2 定義了一種使用 ECN 進(jìn)行標(biāo)記、CNP 幀進(jìn)行反饋的阻塞控制協(xié)議,網(wǎng)絡(luò)中的交換機(jī)中需要支持 ECN 功能。
? InfiniBand 交換機(jī)的時(shí)延通常低于以太網(wǎng)交換機(jī)。在以太網(wǎng)鏈路層上使用 RDMA 應(yīng)用程序時(shí),應(yīng)注意以下幾點(diǎn)。
? 網(wǎng)絡(luò)中不需要子網(wǎng)管理器。對(duì)于那些需要與子網(wǎng)管理器通信的操作,在 RoCE 網(wǎng)絡(luò)中會(huì)以不同的方式進(jìn)行管理。
? 由于 LID 是 InfiniBand 協(xié)議棧鏈路層的屬性,其在 RoCE 網(wǎng)絡(luò)中無效,因此在查詢RoCE 網(wǎng)卡的端口時(shí),LID 顯示為零。
? 因?yàn)樽泳W(wǎng)管理器不存在,所以無法查詢路徑。因此,在建立連接之前,必須將相關(guān)的值填充進(jìn)路徑記錄結(jié)構(gòu)。建議使用 RDMA CM 建立連接,因?yàn)樗梢载?fù)責(zé)填充路徑記錄結(jié)構(gòu)。
? RoCE 設(shè)備的流量不顯示在相關(guān)以太網(wǎng)設(shè)備的計(jì)數(shù)器(比如 ifconfig 命令的輸出中可以看到的收發(fā)包計(jì)數(shù))中,因?yàn)樗臄?shù)據(jù)收發(fā)不通過以太網(wǎng)設(shè)備驅(qū)動(dòng)程序。RoCE 設(shè)備 和 InfiniBand 設(shè)備的流量統(tǒng)計(jì)都在 /sys/class/infiniband//ports//counters/目錄下。作者使用的 Mellanox ConnectX-5 100G 網(wǎng)卡就是一種 RoCE 設(shè)備。在安裝了該設(shè)備的機(jī)器上,執(zhí)行 ibv_devinfo 命令可以獲取如下比較詳細(xì)的設(shè)備信息,如下所示。
從其中的 transport: InfiniBand 可以看出其傳輸層為 InfiniBand 傳輸層,link_layer: Ethernet表示它支持以太網(wǎng)鏈路層,再結(jié)合圖 13-6,就可以確認(rèn)這是一種符合 IBTA 定義的 RoCE 類型的 RDMA 設(shè)備。另外,port_lid: 0 表示其 LID 為 0(LID 對(duì) RoCE 無意義)。執(zhí)行 cma_roce_mode 命令可以獲知此網(wǎng)卡當(dāng)前支持的 RoCE 版本為 RoCEv2。
審核編輯:湯梓紅
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5385瀏覽量
171160 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7455瀏覽量
163622 -
接口
+關(guān)注
關(guān)注
33文章
8526瀏覽量
150861 -
InfiniBand
+關(guān)注
關(guān)注
1文章
29瀏覽量
9183 -
RDMA
+關(guān)注
關(guān)注
0文章
76瀏覽量
8929
原文標(biāo)題:好書連載 | RDMA技術(shù)簡(jiǎn)介(3)
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論