RoCE全稱RDMA over Converged Ethernet,是基于融合以太網(wǎng)的RDMA,那什么是RDMA?在了解RoCE之前先了解下RDMA技術(shù)。
1 、什么是 RDMA ?
RDMA(Remote Direct Memory Access), 全稱遠(yuǎn)程內(nèi)存直接訪問技術(shù),是一種數(shù)據(jù)傳輸技術(shù)。 允許在計(jì)算機(jī)之間實(shí)現(xiàn)高性能、低延遲、高吞吐量的數(shù)據(jù)傳輸,由網(wǎng)絡(luò)適配器直接處理主機(jī)內(nèi)存之間的數(shù)據(jù)傳輸,以大大減少了CPU在數(shù)據(jù)傳輸過程中的參與**(即從一個(gè)主機(jī)或服務(wù)器的內(nèi)存直接訪問另一個(gè)主機(jī)或服務(wù)器的內(nèi)存,這個(gè)過程無需使用** CPU )。 RDMA最早在Infiniband傳輸網(wǎng)絡(luò)上實(shí)現(xiàn),技術(shù)先進(jìn),但是價(jià)格高昂(只有Mellanox和Intel供應(yīng)商提供全套網(wǎng)絡(luò)解決方案),后來業(yè)界廠家把RDMA移植到傳統(tǒng)Ethernet以太網(wǎng)上,降低了RDMA的使用成本,推動(dòng)了RDMA技術(shù)普及。
我們知道,傳統(tǒng)應(yīng)用要發(fā)送數(shù)據(jù),??需要通過OS封裝TCP/IP,??然后依次經(jīng)過主緩存、網(wǎng)卡緩存,??再發(fā)出去。??這個(gè)過程存在2個(gè)限制:1)TCP/IP協(xié)議棧處理會(huì)帶來數(shù)10微秒的 時(shí)延 。??TCP協(xié)議棧在接收發(fā)送報(bào)文時(shí),??內(nèi)核需要做多次上下文的切換,??每次切換需要耗費(fèi)5-10微秒。?另外還需要至少三次的數(shù)據(jù)拷貝??和依賴CPU進(jìn)行協(xié)議工作,??這導(dǎo)致僅僅協(xié)議上處理就會(huì)帶來數(shù)10微秒的??固定時(shí)延,??協(xié)議棧時(shí)延成為最明顯的瓶頸。?;2)TCP協(xié)議棧處理導(dǎo)致服務(wù)器CPU負(fù)載??居高不下。??除了固定時(shí)延較長(zhǎng)的問題,TCP/IP網(wǎng)絡(luò)需要主機(jī)CPU??多次參與協(xié)議的內(nèi)存拷貝,??網(wǎng)絡(luò)規(guī)模越大,??網(wǎng)絡(luò)帶寬越高,??CPU在收發(fā)數(shù)據(jù)時(shí)的調(diào)度負(fù)擔(dān)越大,??導(dǎo)致CPU 持續(xù)高負(fù)載 。??
在數(shù)據(jù)中心內(nèi)部,超大規(guī)模分布式計(jì)算存儲(chǔ)資源之間,如果使用傳統(tǒng)的TCP/IP進(jìn)行網(wǎng)絡(luò)互連,將占用系統(tǒng)大量的計(jì)算資源,造成****IO 瓶頸,無法滿足更高吞吐,更低時(shí)延的網(wǎng)絡(luò)需求。 RDMA****是一種高帶寬、低延遲、低CPU消耗的網(wǎng)絡(luò)互聯(lián)技術(shù),克服了傳統(tǒng)TCP/IP網(wǎng)絡(luò)的高時(shí)延、高CPU負(fù)載等困難。
為了更形象的理解RDMA和TCP技術(shù)的區(qū)別。傳統(tǒng)的TCP/IP方式,可比作為人工收費(fèi)一樣需要取卡,人工核實(shí),手動(dòng)繳費(fèi),找零錢等等才能完成汽車上下高速。在車輛很多的情況下就會(huì)出現(xiàn)排隊(duì)的情況,很浪費(fèi)時(shí)間。而RDMA則像是 ETC ,跳過人工取卡,收費(fèi)等步驟,直接刷卡,極速通過。既節(jié)省了時(shí)間,又節(jié)省了人力。
RDMA相比TCP/IP,既降低了對(duì)計(jì)算資源的占用,又提升了數(shù)據(jù)的傳輸速率。RDMA的內(nèi)核旁路機(jī)制??允許應(yīng)用與網(wǎng)卡之間的直接數(shù)據(jù)讀寫,??這樣可以將服務(wù)器內(nèi)的數(shù)據(jù)傳輸時(shí)延降低到??接近1微秒。同時(shí),RDMA的??內(nèi)存零拷貝機(jī)制允許接收端直接從發(fā)送端的內(nèi)存讀取數(shù)據(jù),??極大地減少了CPU的負(fù)擔(dān),??提高了CPU的利用率。使用RDMA的好處包括:
1 )內(nèi)存零拷貝( Zero Copy ) :RDMA應(yīng)用程序可以繞過內(nèi)核網(wǎng)絡(luò)棧直接進(jìn)行數(shù)據(jù)傳輸,不需要再將數(shù)據(jù)從應(yīng)用程序的用戶態(tài)內(nèi)存空間拷貝到內(nèi)核網(wǎng)絡(luò)棧內(nèi)存空間。
2 )內(nèi)核旁路( Kernel bypass ) :RDMA應(yīng)用程序可以直接在用戶態(tài)發(fā)起數(shù)據(jù)傳輸,不需要在內(nèi)核態(tài)與用戶態(tài)之間做上下文切換。
3 ) CPU 減負(fù)( CPU offload ) :RDMA可以直接訪問遠(yuǎn)程主機(jī)內(nèi)存,不需要消耗遠(yuǎn)程主機(jī)中的任何CPU,這樣遠(yuǎn)端主機(jī)的CPU可以專注自己的業(yè)務(wù),避免其cache被干擾并充滿大量被訪問的內(nèi)存內(nèi)容。
例如上圖,使用RDMA可以簡(jiǎn)單理解為利用相關(guān)的硬件和網(wǎng)絡(luò)技術(shù),服務(wù)器1的網(wǎng)卡可以直接讀寫服務(wù)器2的內(nèi)存,最終達(dá)到高帶寬、低延遲和低資源利用率的效果。因此,RDMA可以簡(jiǎn)單理解為利用相關(guān)的硬件和網(wǎng)絡(luò)技術(shù),服務(wù)器的 網(wǎng)卡之間可以直接讀內(nèi)存 ,最終達(dá)到高帶寬、低延遲和低資源利用率的效果。應(yīng)用程序不需要參與數(shù)據(jù)傳輸過程,只需要指定內(nèi)存讀寫地址,開啟傳輸并等待傳輸完成即可
2 、什么是 RoCE ?
RoCE全稱是RDMA over Converged Ethernet(以太網(wǎng)上的RDMA),是在InfiniBand Trade Association(IBTA)標(biāo)準(zhǔn)中定義的網(wǎng)絡(luò)協(xié)議,允許通過以太網(wǎng)絡(luò)使用 RDMA 。即****RoCE 允許在以太網(wǎng)上實(shí)現(xiàn)高性能、低延遲、高吞吐量的數(shù)據(jù)傳輸,不需要使用特殊的網(wǎng)絡(luò)硬件設(shè)備,只需要通過標(biāo)準(zhǔn)化的以太網(wǎng)設(shè)備就可以實(shí)現(xiàn),大大降低了成本 (可以通過支持RDMA的以太網(wǎng)適配器和交換機(jī)實(shí)現(xiàn)高性能、低延遲、高吞吐量的數(shù)據(jù)傳輸,無需在傳輸過程中頻繁地進(jìn)行CPU參與)。RoCE技術(shù)遵循與InfinBand相同的傳輸機(jī)制,允許網(wǎng)絡(luò)適配器直接訪問主機(jī)內(nèi)存,從而大大降低了延遲,并提高了吞吐量。
目前, 大致有三類RDMA網(wǎng)絡(luò),分別是Infiniband(IB),internet Wide Area RDMA Protocol(iWARP)和RDMA over Converged Ethernet(RoCE) 。其中,Infiniband是一種專為RDMA設(shè)計(jì)的網(wǎng)絡(luò),從硬件級(jí)別保證可靠傳輸 ,而RoCE 和 iWARP都是基于以太網(wǎng)的RDMA技術(shù),支持相應(yīng)的verbs接口。如下:
- InfiniBand:設(shè)計(jì)之初就考慮了 RDMA,重新設(shè)計(jì)了物理鏈路層、網(wǎng)絡(luò)層、傳輸層,從硬件級(jí)別,保證可靠傳輸,提供更高的帶寬和更低的時(shí)延。但是成本高,需要支持IB網(wǎng)卡和交換機(jī)。
- iWARP:基于TCP的RDMA網(wǎng)絡(luò),利用TCP達(dá)到可靠傳輸。相比RoCE,在大型組網(wǎng)的情況下,iWARP的大量TCP連接會(huì)占用大量的內(nèi)存資源,對(duì)系統(tǒng)規(guī)格要求更高。可以使用普通的以太網(wǎng)交換機(jī),但是需要支持iWARP的網(wǎng)卡。
- RoCE:基于 Ethernet的RDMA,RoCEv1版本基于網(wǎng)絡(luò)鏈路層,無法跨網(wǎng)段,基本無應(yīng)用。RoCEv2基于UDP,可以跨網(wǎng)段具有良好的擴(kuò)展性,而且可以做到吞吐,時(shí)延相對(duì)性能較好,所以是大規(guī)模被采用的方案。RoCE消耗的資源比 iWARP 少,支持的特性比 iWARP 多。可以使用普通的以太網(wǎng)交換機(jī),避免了使用高成本的Infiniband網(wǎng)絡(luò)設(shè)備,可以降低成本,但是需要支持RoCE的網(wǎng)卡。
RoCE協(xié)議存在RoCEv1和RoCEv2兩個(gè)版本,這取決于所使用的網(wǎng)絡(luò)適配器或網(wǎng)卡。從 2010 年開始,RMDA 開始引起越來越多的關(guān)注,當(dāng)時(shí)IBTA發(fā)布了第一個(gè)在融合以太網(wǎng) (RoCE) 上運(yùn)行 RMDA 的規(guī)范。然而,最初的規(guī)范將 RoCE 部署限制在單個(gè)第 2 層域,因?yàn)?RoCE 封裝幀沒有路由功能。2014 年,IBTA 發(fā)布了 RoCEv2,它更新了最初的 RoCE 規(guī)范以支持跨第 3 層網(wǎng)絡(luò)的路由,使其更適合超大規(guī)模數(shù)據(jù)中心網(wǎng)絡(luò)和企業(yè)數(shù)據(jù)中心等。
RoCEv1
2010年4月,IBTA發(fā)布了RoCE,此標(biāo)準(zhǔn)是作為Infiniband Architecture Specification的附加件發(fā)布的,所以也稱為IBoE(InfiniBand over Ethernet)。這時(shí)的RoCE標(biāo)準(zhǔn)是在以太鏈路層之上用IB網(wǎng)絡(luò)層代替了TCP/IP網(wǎng)絡(luò)層,所以不支持IP路由功能。RoCE V1協(xié)議在以太層的typeID是0x8915。
在RoCE中,infiniband的鏈路層協(xié)議頭被去掉,用來表示地址的GUID被轉(zhuǎn)換成以太網(wǎng)的MAC。Infiniband依賴于無損的物理傳輸,RoCE也同樣依賴于無損的以太傳輸,這一要求會(huì)給以太網(wǎng)的部署帶來了成本和管理上的開銷。
以太網(wǎng)的無損傳輸必須依靠L2的QoS支持,比如PFC(Priority Flow Control),接收端在buffer池超過閾值時(shí)會(huì)向發(fā)送方發(fā)出pause幀,發(fā)送方MAC層在收到pause幀后,自動(dòng)降低發(fā)送速率。這一要求,意味著整個(gè)傳輸環(huán)節(jié)上的所有節(jié)點(diǎn)包括end、switch、router,都必須全部支持L2 QoS,否則鏈路上的PFC就不能在兩端發(fā)揮有效作用。
RoCEv2
由于RoCEv1的數(shù)據(jù)幀不帶IP頭部,所以只能在L2子網(wǎng)內(nèi)通信。為了解決此問題,IBTA于2014年提出了RoCE V2,RoCEv2擴(kuò)展了RoCEv1,通過改變數(shù)據(jù)包封裝,將GRH(Global Routing Header)換成UDP header +IP header,RoCE v2現(xiàn)在可以跨L2和L3網(wǎng)絡(luò)使用。
針對(duì)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)行路由,所以有時(shí)又會(huì)稱為Routable RoCE或簡(jiǎn)稱RRoCE。
RoCE,無損先行
由于RDMA要求承載網(wǎng)絡(luò)無丟包,否則效率就會(huì)急劇下降,所以RoCE技術(shù)如果選用以太網(wǎng)進(jìn)行承載,就需要通過PFC,ECN以及DCQCN等技術(shù)對(duì)傳統(tǒng)以太網(wǎng)絡(luò)改造,打造無損以太網(wǎng)絡(luò),以確保零丟包。
PFC:基于優(yōu)先級(jí)的流量控制。PFC為多種類型的流量提供基于每跳優(yōu)先級(jí)的流量控制。設(shè)備在轉(zhuǎn)發(fā)報(bào)文時(shí),通過在優(yōu)先級(jí)映射表中查找報(bào)文的優(yōu)先級(jí),將報(bào)文分配到隊(duì)列中進(jìn)行調(diào)度和轉(zhuǎn)發(fā)。當(dāng)802.1p優(yōu)先級(jí)報(bào)文的發(fā)送速率超過接收速率且接收端的數(shù)據(jù)緩存空間不足時(shí),接收端向發(fā)送端發(fā)送PFC暫停幀。當(dāng)發(fā)送端收到 PFC 暫停幀時(shí),發(fā)送端停止發(fā)送具有指定 802.1p 優(yōu)先級(jí)的報(bào)文,直到發(fā)送端收到 PFC XON 幀或老化定時(shí)器超時(shí)。配置PFC時(shí),特定類型報(bào)文的擁塞不影響其他類型報(bào)文的正常轉(zhuǎn)發(fā),
ECN:顯式擁塞通知。ECN 定義了基于 IP 層和傳輸層的流量控制和端到端擁塞通知機(jī)制。當(dāng)設(shè)備擁塞時(shí),ECN 會(huì)在數(shù)據(jù)包的 IP 頭中標(biāo)記 ECN 字段。接收端發(fā)送擁塞通知包(CNP)通知發(fā)送端放慢發(fā)送速度。ECN 實(shí)現(xiàn)端到端的擁塞管理,減少擁塞的擴(kuò)散和加劇。
DCQCN(Data Center Quantized Congestion Notification):目前在RoCEv2網(wǎng)絡(luò)種使用最廣泛的擁塞控制算法。融合了QCN算法和DCTCP算法,需要數(shù)據(jù)中心交換機(jī)支持WRED和ECN。DCQCN可以提供較好的公平性,實(shí)現(xiàn)高帶寬利用率,保證低的隊(duì)列緩存占用率和較少的隊(duì)列緩存抖動(dòng)情況。
為什么RoCE是目前主流的RDMA協(xié)議?
RDMA最早在Infiniband傳輸網(wǎng)絡(luò)上實(shí)現(xiàn),技術(shù)先進(jìn),但是價(jià)格高昂,后來業(yè)界廠家把RDMA移植到傳統(tǒng)Ethernet以太網(wǎng)上,降低了RDMA的使用成本,推動(dòng)了RDMA技術(shù)普及。在Ethernet以太網(wǎng)上,根據(jù)協(xié)議棧融合度的差異,分為iWARP和RoCE兩種技術(shù),而RoCE又包括RoCEv1和RoCEv2 兩個(gè)版本 (RoCEv2的最大改進(jìn)是支持IP 路由 ) ,各RDMA網(wǎng)絡(luò)協(xié)議棧的對(duì)比如下圖所示。
1)iWARP,iWARP協(xié)議棧相比其他兩者更為復(fù)雜,并且由于TCP的限制,只能支持可靠傳輸。所以iWARP的發(fā)展不如RoCE和Infiniband。
2)Infiniband協(xié)議本身定義了一套全新的層次架構(gòu),從鏈路層到傳輸層,都無法與現(xiàn)有的以太網(wǎng)設(shè)備兼容。舉例來看,如果某個(gè)數(shù)據(jù)中心因?yàn)樾阅芷款i,想要把數(shù)據(jù)交換方式從以太網(wǎng)切換到Infiniband技術(shù),那么需要購(gòu)買全套的Infiniband設(shè)備,包括網(wǎng)卡、線纜、交換機(jī)和路由器等等,成本太高
3)RoCE協(xié)議的優(yōu)勢(shì)在這里就很明顯了,用戶從以太網(wǎng)切換到RoCE只需要購(gòu)買支持RoCE 的網(wǎng)卡就可以了 ( 只需網(wǎng)卡是支持 RoCE ),其他網(wǎng)絡(luò)設(shè)備都是兼容的。所以RoCE相比于Infiniband****主要優(yōu)勢(shì)在于成本更低。
3 、如何實(shí)現(xiàn) RoCE ?
實(shí)現(xiàn)RoCE,可以安裝支持****RoCE 的網(wǎng)卡或卡驅(qū)動(dòng)程序 。所有以太網(wǎng)NIC都需要RoCE網(wǎng)絡(luò)適配器卡。RoCE驅(qū)動(dòng)程序在Red Hat、Linux、Microsoft Windows和其他常見操作系統(tǒng)中使用。RoCE有兩種可用方式:對(duì)于網(wǎng)絡(luò)交換機(jī),可以選擇使用支持PFC(優(yōu)先流控制)操作系統(tǒng)的交換機(jī);對(duì)于機(jī)架服務(wù)器或主機(jī),需要使用網(wǎng)卡。使用RoCE的好處:
1)低CPU占用率:訪問遠(yuǎn)程交換機(jī)或服務(wù)器的內(nèi)存,無需消耗遠(yuǎn)程服務(wù)器上的CPU周期,從而可以充分利用可用帶寬和更高的可伸縮性。
2)零復(fù)制:向遠(yuǎn)程緩沖區(qū)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。
3)高效:由于RoCE改善了延遲和吞吐量,網(wǎng)絡(luò)性能得到了很大提高。
4)節(jié)省成本:借助RoCE,無需購(gòu)買新設(shè)備或更換以太網(wǎng)基礎(chǔ)設(shè)施即可處理大量數(shù)據(jù),從而大大節(jié)省了公司的資本支出。使用IB必須是支持IB的一整套設(shè)備。
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5605瀏覽量
175145 -
交換機(jī)
+關(guān)注
關(guān)注
21文章
2728瀏覽量
101560 -
網(wǎng)絡(luò)適配器
+關(guān)注
關(guān)注
0文章
42瀏覽量
11775 -
RDMA
+關(guān)注
關(guān)注
0文章
82瀏覽量
9235 -
TCP通信
+關(guān)注
關(guān)注
0文章
146瀏覽量
4504
發(fā)布評(píng)論請(qǐng)先 登錄
RoCE與IB對(duì)比分析(一):協(xié)議棧層級(jí)篇

RDMA簡(jiǎn)介5之RoCE V2隊(duì)列分析
是德科技與中國(guó)移動(dòng)合作開發(fā)RoCE測(cè)試方案:首次使用通用測(cè)試儀表
在ZTR無配置大規(guī)模中實(shí)現(xiàn)的縮放零接觸RoCE技術(shù)

RoCE技術(shù)在HPC中的應(yīng)用分析
網(wǎng)卡啟動(dòng)版本10.2iSCSI RoCE FCoE協(xié)議用戶手冊(cè)

什么是RDMA?什么是RoCE網(wǎng)絡(luò)技術(shù)?

引導(dǎo)版本10.3適用于網(wǎng)卡、iSCSI、FCoE和RoCE協(xié)議用戶手冊(cè)

適用于網(wǎng)卡、iSCSI、FCoE和RoCE協(xié)議用戶手冊(cè) 引導(dǎo)版本10.4

適用于網(wǎng)卡、iSCSI、FCoE和RoCE協(xié)議 引導(dǎo)版本10.6

深度解讀RoCE v2的核心技術(shù)原理

RoCE協(xié)議簡(jiǎn)介和應(yīng)用分析

RoCE與IB對(duì)比分析(二):功能應(yīng)用篇

評(píng)論