https://zhuanlan.zhihu.com/p/374068044
遠程直接內存訪問(RDMA)提供從一台計算機的內存到另一台計算機的內存的直接訪問,而不涉及任何一台計算機的操作系統。這項技術可以實現高吞吐量、低延遲的網絡,同時降低CPU利用率,這在大規模並行計算集群中尤其有用。
RDMA over Converged Ethernet(RoCE)是以太網中最常用的RDMA技術,在世界上一些最大的“超大規模”數據中心大規模部署。RoCE是唯一一個基於以太網的行業標准RDMA解決方案,具有多供應商生態系統,提供網絡網卡,並在標准的第2層和第3層以太網交換機上運行。相關技術在包括IBTA、IEEE和IETF在內的行業組織中是已經被標准化了的。
Mellanox Technologies是第一家實施新標准的公司,其ConnectX-3 Pro及以后的所有產品系列都實現了RoCE協議的完全卸載。這些解決方案提供高達100Gb/s的線速吞吐量和市場領先的延遲,同時盡可能降低CPU和內存利用率。因此,ConnectX網卡系列已部署在各種關鍵業務員、對延遲敏感的數據中心中。
RoCE相對於iWARP的優勢
iWARP是另一種RDMA產品,它更復雜,無法達到與基於RoCE的解決方案相同的性能水平。iWARP使用復雜的層混合,包括DDP(直接數據放置)、MPA(Marker-PDU-Aligned framing)和單獨的RDMA協議(RDMAP)通過TCP/IP提供RDMA服務。這種復雜的體系結構是將RDMA應用到現有軟件傳輸框架中的一種考慮不周的嘗試。不幸的是,這種折衷導致 iWARP無法實現RoCE能夠實現的三個關鍵好處:高吞吐量、低延遲和低CPU利用率。
除了復雜性和性能缺點之外,只有一家供應商(Chelsio)在其當前產品上支持iWARP,而且該技術還沒有被市場很好地采用。英特爾此前從2009年開始在其10GbE NIC中支持iWARP,但在當時任何較新的NIC中都不支持iWARP。在最新的以太網速度為25、50和100Gb/s時,不支持iWARP。
iWARP的設計是為了在現有的TCP傳輸上工作,本質上是為了修補現有的LAN/WAN網絡。以太網數據鏈路提供盡力而為的服務,依靠TCP層提供可靠的服務。為了支持現有的IP網絡,包括廣域網,需要覆蓋更多關於擁塞處理、擴展和錯誤處理的邊界條件,這導致RDMA和相關傳輸操作的硬件卸載效率低下。
另一方面,RoCE是專門為以太網構建的RDMA傳輸協議,而不是作為在現有TCP/IP協議之上使用的補丁。
因為TCP是基於連接的,所以它必須使用可靠的傳輸。因此,iWARP只支持可靠的連接傳輸服務,這也意味着它不是一個適合多播的平台。RoCE提供多種傳輸服務,包括可靠連接、不可靠數據報等,並支持用戶級多播功能。
iWARP流量也不能在網絡中被輕松管理和優化,從而導致部署效率低下。它不提供一種方法來檢測傳輸層上或傳輸層下的RDMA流量,例如在fabric本身中。iWARP共享TCP的端口空間使得使用流管理變得不可能,因為單獨的端口無法識別消息是否攜帶RDMA或傳統TCP。iWARP與傳統TCP通信共享協議編號空間,因此需要上下文(狀態)來確定數據包是iWARP。通常,此上下文可能不適合NIC的片上存儲器,這會導致更復雜的情況,因此流量解復用的時間更長。這種情況也發生在fabric的交換機和路由器中,因為它們沒有可用的狀態。
相反,通過查看數據包的UDP目標端口字段,就可以將數據包標識為RoCE。如果該值與IANA為RoCE分配的端口匹配,則數據包為RoCE。這種無狀態流量標識允許在聚合NIC實現中快速、早期地解復用流量,並支持交換機或 iWARP監視和訪問控制列表(ACL)等功能,以改進流量分析和管理。
同樣,由於iWARP與傳統的TCP協議棧共享端口空間,因此它也面臨着與OS協議棧集成的挑戰。另一方面,RoCE提供了完整的OS協議棧集成。
這些挑戰限制了iWARP產品的成本效益和可部署性,尤其是與RoCE的兼容性。
RoCE在包封裝中包括IP和UDP報頭,這意味着RoCE可以跨L2和L3網絡使用。這將使3層路由功能,可將RDMA引入具有多個子網的網絡。
“彈性RoCE”支持在有損網絡上運行RoCE,而這些fabric不支持流控制或優先級流控制。RoCE的先進硬件機制在有損網絡上提供的RDMA性能與無損網絡相當。
最后,通過部署軟ROCE(圖2),通過軟件實現ROCE,ROCE可以擴展到硬件上不支持ROCE的設備。這使得在數據中心利用RoCE的優勢具有更大的靈活性。
性能和基准示例
EDC對延遲敏感的應用程序(如用於實時數據分析的Hadoop)是Web2.0和大數據提供商競爭力的基石。這樣的平台可以從Mellanox的ConnectX-3 Pro中獲益,因為它的RoCE解決方案在以太網上提供極低的延遲,同時可以擴展到每秒處理數百萬條消息。
對比Chelsio在25、40和100Gb以太網iWARP上運行的T5和T6消息傳遞應用程序與帶有RoCE的ConnectX-3 Pro的性能的基准測試表明,RoCE始終比iWARP更快地傳遞消息(圖3)。
當用英特爾的NetEffect 020 iWARP測試ConnectX-3的RoCE延遲時,結果更令人印象深刻。在10Gb時,使用64B消息大小的RoCE,RoCE提高了86%,2048B消息大小的RoCE提高了64%(圖4)。
同時,在ConnectX-3 Pro上使用40Gb的RoCE時,吞吐量比在Chelsio T5上使用iWARP高2倍以上(圖5),比在Intel上使用10Gb的iWARP高5倍(圖6)。
無論是在無損網絡還是有損網絡上使用RoCE,都保持了性能優勢(圖7)。有了彈性RoCE,Mellanox可以在有損環境中提供一致的、頂級的擁塞控制性能。
虛擬化的最佳性能
RoCE的另一個優勢是它能夠在SR-IOV上運行,從而使RoCE在虛擬化環境中具有最低延遲、最低CPU利用率和最大吞吐量的優異性能。RoCE已經證明,它可以在虛擬機之間提供少於1us的延遲,同時隨着虛擬環境的擴展保持一致的吞吐量。Chelsio的iWARP不在SR-IOV中的多個虛擬機上運行,而是依賴TCP進行虛擬機到虛擬機的通信。延遲的差異是驚人的(圖8)。
總結
RoCE簡化了傳輸協議;它繞過了TCP協議棧來實現真正的、可伸縮的RDMA操作,從而獲得更高的ROI。RoCE是一個標准協議,它是專門為數據中心流量而構建的,考慮了延遲、性能和CPU利用率。它在虛擬化環境中表現特別好。
當網絡通過以太網運行時,RoCE提供了比iWARP更好的解決方案。對於追求最高性能的企業數據中心來說,RoCE顯然是一個選擇,尤其是當涉及到對數據敏感的應用程序時。
此外,RoCE目前部署在數十個數據中心,擁有多達數十萬個節點,而iWARP在該領域幾乎不存在。簡單地說,RoCE是通過以太網部署RDMA的顯然方式。
參考文獻:Motti Beck, Gilad Shainer, "RoCE vs. iWARP Competitive Analysis Brief",Mellanox Technologies,2017.