詳解RoCE網(wǎng)絡(luò)技術(shù)


以太網(wǎng)技術(shù)目前在全球互聯(lián)的因特網(wǎng)中始終占據(jù)主導(dǎo)地位,但在高帶寬、低延時的專有網(wǎng)絡(luò)中卻透露出許多弊端。隨著網(wǎng)絡(luò)融合概念的興起,在IETF發(fā)布了的DCB(Data Center Bridging)標(biāo)準(zhǔn)中,基于RDMA/Infiniband的無損鏈路得以解決,以太網(wǎng)終于在專有網(wǎng)絡(luò)領(lǐng)域內(nèi)擁有了自己的標(biāo)準(zhǔn),同時也提出了RoCE(RDMA over Converged Ethernet)的概念。
經(jīng)過版本的升級(從RoCEv1到RoCEv2),10Gb及以上的新型NIC和switch基本都集成了RoCE支持。
RoCEv1
??在RoCE中,infiniband的鏈路層協(xié)議頭被去掉,用來表示地址的GUID被轉(zhuǎn)換成以太網(wǎng)的MAC。Infiniband依賴于無損的物理傳輸,RoCE也同樣依賴于無損的以太傳輸,這一要求會給以太網(wǎng)的部署帶來了成本和管理上的開銷。
以太網(wǎng)的無損傳輸必須依靠L2的QoS支持,比如PFC(Priority Flow Control),接收端在buffer池超過閾值時會向發(fā)送方發(fā)出pause幀,發(fā)送方MAC層在收到pause幀后,自動降低發(fā)送速率。這一要求,意味著整個傳輸環(huán)節(jié)上的所有節(jié)點(diǎn)包括end、switch、router,都必須全部支持L2 QoS,否則鏈路上的PFC就不能在兩端發(fā)揮有效作用。
RoCEv1幀結(jié)構(gòu)示意圖
? ? ? RoCEv1對應(yīng)的協(xié)議請規(guī)范參考InfiniBand? Architecture Specification Release 1.2.1 Annex A16: RoCE
RoCEv1報文內(nèi)容示意圖RoCEv2
RoCEv2幀結(jié)構(gòu)對應(yīng)一個具體的報文示意圖如下圖所示。
RoCEv2報文示意圖針對RoCE v1和RoCE v2,以下兩點(diǎn)值得注意:
- RoCE v1(Layer 2)運(yùn)作在Ehternet Link Layer(Layer 2)所以Ethertype 0x8915,所以正常的Frame大小為1500 bytes,而Jumbo Frame則是9000 bytes。
- RoCE v2(Layer 3)運(yùn)作在UDP/IPv4或UDP/IPv6之上(Layer 3),采用UDP Port 4791進(jìn)行傳輸。因?yàn)?RoCE v2的封包是座落在 Layer 3之上可進(jìn)行路由,所以有時又會稱為「Routable RoCE」或簡稱「RRoCE」。
Soft-RoCE
??softRoCE的目標(biāo)是在所有支持以太網(wǎng)的設(shè)備上都可以部署RDMA傳輸,其實(shí)現(xiàn)可分成兩部分,對上通過librxe與RDMA stack(libibverbs)耦合,對下通過rxe.ko與linux stack layer3耦合,用戶通過某個eth NIC的UDP隧道為虛擬的RDMA設(shè)備傳輸RoCE數(shù)據(jù)。
Soft-RoCE通信示意圖??在性能敏感的虛擬化場景,VM環(huán)境需要直接訪問底層硬件。借助于softRoCE,底層的網(wǎng)卡硬件也不需要暴露在VM環(huán)境就可以使用掛載的虛擬RoCE設(shè)備。
??通過在節(jié)點(diǎn)上安裝soft-RoCE,它就可以與支持RoCE的節(jié)點(diǎn)或者是同樣安裝有soft-RoCE的節(jié)點(diǎn)建立RDMA傳輸。盡管在傳統(tǒng)以太上,one-copy甚至zero-copy的方案已經(jīng)出現(xiàn)多個,但個人認(rèn)為soft-RoCE的 最大意義是使得不具備RDMA NIC的數(shù)據(jù)中心用最小的成本構(gòu)建起高效的RDMA網(wǎng)絡(luò),所以softRoCE作為RoCE方案的重要補(bǔ)充,已經(jīng)逐漸成為RDMA生態(tài)(IBTA)下一步開發(fā)的標(biāo)準(zhǔn)構(gòu)件。
網(wǎng)絡(luò)要求
&RoCE可以運(yùn)行在無損網(wǎng)絡(luò)環(huán)境和有損網(wǎng)絡(luò)環(huán)境中,如果運(yùn)行在有損網(wǎng)絡(luò)環(huán)境中,稱為彈性RoCE(Resilient RoCE);如果運(yùn)行在無損網(wǎng)絡(luò)環(huán)境中,稱為無損RoCE(Lossless RoCE)。
- 彈性RoCE網(wǎng)絡(luò) - 可以發(fā)送RoCE流的有損網(wǎng)絡(luò)環(huán)境,即無需開啟PFC/ECN的網(wǎng)絡(luò)環(huán)境
https://community.mellanox.com/s/article/introduction-to-resilient-roce---faq - 無損RoCE網(wǎng)絡(luò) - 網(wǎng)絡(luò)中開啟PFC流控功能,確保網(wǎng)絡(luò)的無損特性
https://community.mellanox.com/s/article/roce-v2-considerations#jive_content_id_Resilient_RoCE
??
總結(jié):盡管RoCE對鏈路層和物理層存在特殊依賴,但是在部署新型的數(shù)據(jù)中心時,對于較新型switch、NIC、SOC基本上都會集成網(wǎng)絡(luò)融合DCB和RDMA支持。所以在新建Data Center、SAN時,性能最優(yōu)的RoCE是最佳選擇。而在舊DC、SAN擴(kuò)容或者成本敏感型的優(yōu)化時,僅需要RNIC的iWRAP或者完全不依賴任何硬件的softRoCE更加適合。
參考文獻(xiàn):https://www.cnblogs.com/echo1937/p/7018266.html
http://hustcat.github.io/roce-protocol/
RoCE: An Ethernet-InfiniBand Love Story
InfiniBand? Architecture Specification Release 1.2.1 Annex A16: RoCE
InfiniBand? Architecture Specification Release 1.2.1 Annex A17: RoCEv2
RoCEv2 CNP Packet Format Example作者:北春南秋
鏈接:https://www.jianshu.com/p/85e7309c6187

轉(zhuǎn)載申明:轉(zhuǎn)載本號文章請注明作者和來源,本號發(fā)布文章若存在版權(quán)等問題,請留言聯(lián)系處理,謝謝。
推薦閱讀
更多架構(gòu)相關(guān)技術(shù)知識總結(jié)請參考“架構(gòu)師技術(shù)全聯(lián)盟書店”相關(guān)電子書(35本技術(shù)資料打包匯總詳情可通過“閱讀原文”獲取)。
內(nèi)容持續(xù)更新,現(xiàn)下單“架構(gòu)師技術(shù)全店打包匯總(全)”,后續(xù)可享全店內(nèi)容更新“免費(fèi)”贈閱,格僅收188元(原總價270元)。
溫馨提示:
掃描二維碼關(guān)注公眾號,點(diǎn)擊閱讀原文鏈接獲取“架構(gòu)師技術(shù)全店資料打包匯總(全)”電子書資料詳情。

