RoCE - RDMA over Converged Ethernet
以太網在全球互聯的廣域網中毫無異議的老大,但在高帶寬、低延時的專有網絡領域卻明顯混不開。伴隨網絡融合概念興起,IETF發布了DCB標准,RDMA/Infiniband依賴的無損鏈路得以解決,以太網可以在專有網絡領域內也占有一席之地了,所以RoCE – RDMA Over Converged Ethernet就順勢而生。到目前為止,經過版本的升級演進,10Gb及以上的新型NIC和switch基本都集成了RoCE支持。
RoCE v1
IBTA在2010年4月發布了RoCE,這份標准是作為Infiniband Architecture Specification的附加件發布的,所以也稱為IBoE(InfiniBand over Ethernet)。這時的RoCE標准是在以太鏈路層之上用IB網絡層代替了TCP/IP網絡層,所以不支持IP路由功能。RoCE V1協議在以太層的typeID是0x8915。
在RoCE中,infiniband的鏈路層協議頭被去掉,用來表示地址的從GUID被轉換成以太網的MAC。Infiniband依賴於無損的物理傳輸,RoCE也同樣依賴於無損的以太傳輸,這一要求會給以太網的部署帶來了成本和管理上的開銷。以太網的無損傳輸必須依靠L2的QoS支持,比如PFC,接收端在buffer池超過閾值時會向發送方發出pause幀,發送方MAC層在收到pause幀后,自動降低發送速率。這一要求,意味着整個傳輸環節上的所有節點包括end、switch、router,都必須全部支持L2 QoS,否則鏈路上的PFC就不能在兩端發揮有效作用。
RoCE v2


RoCE v1(Layer 2)運作在Ehternet Link Layer(Layer 2)所以Ethertype 0x8915,所以正常的Frame大小為1500 bytes,而Jumbo Frame則是9000 bytes。
RoCE v2(Layer 3)運作在UDP/IPv4或UDP/IPv6之上(Layer 3),采用UDP Port 4791進行傳輸。因為 RoCE v2的封包是座落在 Layer 3之上可進行路由,所以有時又會稱為「Routable RoCE」或簡稱「RRoCE」。
softRoCE
不同於RoCE,softRoCE適用於任何以太環境,無需依賴NIC、switch、L2QoS等支持。softRoCE的目標是在所有支持以太網的設備上都可以部署RDMA傳輸,其實現可分成兩部分,對上通過librxe與RDMA stack(libibverbs)耦合,對下通過rxe.ko與linux stack layer3耦合,用戶通過某個eth NIC的UDP隧道為虛擬的RDMA設備傳輸RoCE數據。
圖 softRoCE通信
在性能敏感的虛擬化場景,VM環境需要直接訪問底層硬件。借助於softRoCE,底層的網卡硬件也不需要暴露在VM環境就可以使用掛載的虛擬RoCE設備。
通過在節點上安裝softRoCE,它就可以與支持RoCE的節點或者是同樣安裝有softRoCE的節點建立RDMA傳輸。盡管在傳統以太上,one-copy甚至zero-copy的方案已經出現多個,但個人認為softRoCE的 最大意義是使得不具備RDMA NIC的數據中心用最小的成本構建起高效的RDMA網絡,所以softRoCE作為RoCE方案的重要補充,已經逐漸成為RDMA生態(IBTA)下一步開發的標准構件。iWRAP
iWRAP - Internet Wide Area RDMA Protocol,或者叫RDMA over TCP,IETF在2007年發布(RFC5040和RFC5041)。業界有兩家廠商各自在主推iWRAP和RoCE,Chelsio主推iWRAP,而Mellanox則在融合網絡主推RoCE,兩家都有關於RoCE vs iWRAP的對比白皮書,針鋒相對,好精彩。
iWRAP的RDMA報文是封裝在TCP傳輸層之上。利用TCP協議,它不必在依賴底層的L2Qos就可以實現無損傳輸,天生就支持路由組網。而RoCE直到最近的V2版本才支持路由。Chelsio的白皮書成文較早,其對RoCE的主要攻擊點是不支持路由功能,在現在這一論據已經失去意義了。RoCE與iWRAP的性能對比測試,參見 http://www.mellanox.com/page/performance_ethernet ,性能優勢明顯。iWRAP的無損傳輸還是像傳統以太一樣依賴TCP傳輸層,這簡化了L2的設計要求,但是也導致了帶寬利用率和時延的惡化。
總之:盡管RoCE對鏈路層和物理層存在特殊依賴,但是在部署新型的數據中心時,對於較新型switch、NIC、SOC基本上都會集成網絡融合DCB和RDMA支持。所以在新建Data Cente r、SAN時,性能最優的RoCE是最佳選擇。而在舊DC、SAN擴容或者成本敏感型的優化時,僅需要RNIC的iWRAP或者完全不依賴任何硬件的softRoCE更加適合。