13.3 RDMA 協(xié)議
RDMA 指的是一種遠(yuǎn)程直接存儲(chǔ)器訪問(wèn)技術(shù)。具體到協(xié)議層面,它主要包含 InfiniBand、RoCE 和 iWARP 三種協(xié)議。三種協(xié)議都符合 RDMA 標(biāo)準(zhǔn),共享相同的上層用戶(hù)接口(Verbs),只是在不同層次上有一些差別。圖 13-6 對(duì)比了這幾個(gè)協(xié)議在不同層次上的差異。

RDMA 技術(shù)簡(jiǎn)介
13.3.1 InfiniBand
InfiniBand(直譯為“無(wú)限帶寬”,縮寫(xiě)為 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無(wú)法兼容現(xiàn)有以太網(wǎng),如果企業(yè)想部署的話,除了需要專(zhuān)用網(wǎng)卡之外,還要重新購(gòu)買(mǎi)配套的網(wǎng)絡(luò)交換設(shè)備

13.3.2 RoCE
基于融合以太網(wǎng)的 RDMA(RDMA over Converged Ethernet,RoCE)也是由 IBTA 定義的。InfiniBand 架構(gòu)規(guī)范定義了如何通過(guò) InfiniBand 網(wǎng)絡(luò)執(zhí)行 RDMA,而 RoCE 則定義了如何通過(guò)以太網(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ā)(也就是說(shuō) RoCE 仍然使用 InfiniBand 傳輸層,見(jiàn)圖 13-6)。由于 RoCE 可以使用以太網(wǎng)交換設(shè)備,因此在企業(yè)中的應(yīng)用比較多,但是其在相同場(chǎng)景下相比 InfiniBand 會(huì)有一些性能方面的損失。
RoCE 與 InfiniBand 有如下幾個(gè)技術(shù)差異。
? 鏈路級(jí)流量控制。InfiniBand 使用基于信用(credit-based)的算法來(lái)保證無(wú)損的網(wǎng)絡(luò)通信。RoCE 的實(shí)現(xiàn)需要無(wú)損以太網(wǎng)網(wǎng)絡(luò),以達(dá)到類(lèi)似 InfiniBand 的性能。無(wú)損以太網(wǎng)通常通過(guò)以太網(wǎng)流量控制或優(yōu)先級(jí)流量控制(PFC)進(jìn)行配置,配置一個(gè)無(wú)損以太網(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ò)中無(wú)效,因此在查詢(xún)RoCE 網(wǎng)卡的端口時(shí),LID 顯示為零。
? 因?yàn)樽泳W(wǎng)管理器不存在,所以無(wú)法查詢(xún)路徑。因此,在建立連接之前,必須將相關(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ā)不通過(guò)以太網(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 類(lèi)型的 RDMA 設(shè)備。另外,port_lid: 0 表示其 LID 為 0(LID 對(duì) RoCE 無(wú)意義)。執(zhí)行 cma_roce_mode 命令可以獲知此網(wǎng)卡當(dāng)前支持的 RoCE 版本為 RoCEv2。

審核編輯:湯梓紅
-
以太網(wǎng)
+關(guān)注
關(guān)注
41文章
6203瀏覽量
181618 -
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7758瀏覽量
172271 -
接口
+關(guān)注
關(guān)注
33文章
9603瀏覽量
157676 -
InfiniBand
+關(guān)注
關(guān)注
1文章
31瀏覽量
9587 -
RDMA
+關(guān)注
關(guān)注
0文章
102瀏覽量
9669
原文標(biāo)題:好書(shū)連載 | RDMA技術(shù)簡(jiǎn)介(3)
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
深入了解RDMA技術(shù)
RDMA RNIC虛擬化方案
利用CXL技術(shù)重構(gòu)基于RDMA的內(nèi)存解耦合
RDMA簡(jiǎn)介1之RDMA開(kāi)發(fā)必要性
RDMA簡(jiǎn)介2之A技術(shù)優(yōu)勢(shì)分析
RDMA簡(jiǎn)介3之四種子協(xié)議對(duì)比
RDMA設(shè)計(jì)1:開(kāi)發(fā)必要性1之設(shè)計(jì)考慮
RDMA設(shè)計(jì)2:開(kāi)發(fā)必要性之性能簡(jiǎn)介
技術(shù)盛宴 | 淺析RDMA網(wǎng)絡(luò)下MMU水線設(shè)置
RDMA是什么?RDMA網(wǎng)卡有什么作用?
RDMA技術(shù)簡(jiǎn)介 RDMA的控制通路和數(shù)據(jù)通路方案
RDMA技術(shù)簡(jiǎn)介
rdma網(wǎng)絡(luò)是什么?RDMA網(wǎng)絡(luò)有什么應(yīng)用場(chǎng)景?
以太網(wǎng)RDMA RoCE的技術(shù)局限
RDMA技術(shù)簡(jiǎn)介
評(píng)論