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