歡迎光臨
每天分享高質量文章

關於RDMA技術原理、三種主流實現技術對比

      摘要: 遠程直接記憶體訪問(即Remote Direct Memory Access)是一種直接記憶體訪問技術,它將資料直接從一臺計算機的記憶體傳輸到另一臺計算機,無需雙方操作系統的介入,本文旨在技術引導,詳細內容請通過文末“閱讀原文”參閱<RDMA原理分析、對比和技術實現解析>電子書。

      RDMA技術最早出現在Infiniband網絡,用於HPC高性能計算集群的互聯。傳統的基於Socket套接字(TCP/IP協議棧)的網絡通信,需要經過操作系統軟體協議棧,資料在系統DRAM處理器Cache網卡Buffer之間來回拷貝搬移,因此占用了大量的CPU計算資源和記憶體總線帶寬,也加大了網絡延時。舉例來說,40Gbps的TCP/IP流能耗盡主流服務器的所有CPU資源;RDMA則解決了傳統TCP/IP通信的技術痛點。例如,在40Gbps場景下,CPU占用率從100%下降到5%,網絡延時從ms級降低到10us以下。

 

      RDMA是一種新的記憶體訪問技術,RDMA讓計算機可以直接存取其他計算機的記憶體,而不需要經過處理器耗時的處理。RDMA將資料從一個系統快速移動到遠程系統儲存器中,而不對操作系統造成任何影響。RDMA技術的原理及其與TCP/IP架構的對比如下圖所示。

      因此,RDMA可以簡單理解為利用相關的硬體和網絡技術,服務器的網卡之間可以直接讀記憶體,最終達到高帶寬、低延遲和低資源利用率的效果。應用程式不需要參與資料傳輸過程,只需要指定記憶體讀寫地址,開啟傳輸並等待傳輸完成即可。

      RDMA最早在Infiniband傳輸網絡上實現,技術先進,但是價格高昂(只有Mellanox和Intel供應商提供全套網絡解決方案),後來業界廠家把RDMA移植到傳統Ethernet以太網上,降低了RDMA的使用成本,推動了RDMA技術普及。在Ethernet以太網上,根據協議棧融合度的差異,分為iWARP和RoCE兩種技術,而RoCE又包括RoCEv1和RoCEv2兩個版本(RoCEv2的最大改進是支持IP路由),各RDMA網絡協議棧的對比如下圖所示。

  • Infiniband,支持RDMA的新一代網絡協議。 由於這是一種新的網絡技術,因此需要支持該技術的NIC和交換機

  • RoCE,一個允許在以太網上執行RDMA的網絡協議。 其較低的網絡標頭是以太網標頭,其較高的網絡標頭(包括資料)是InfiniBand標頭。 這支持在標準以太網基礎設施(交換機)上使用RDMA。 只有網卡應該是特殊的,支持RoCE。

  • iWARP,一個允許在TCP上執行RDMA的網絡協議。 IB和RoCE中存在的功能在iWARP中不受支持。 這支持在標準以太網基礎設施(交換機)上使用RDMA。 只有網卡應該是特殊的,並且支持iWARP(如果使用CPU卸載),否則所有iWARP堆棧都可以在軟體中實現,並且喪失了大部分RDMA性能優勢。

      RDMA應用和RNIC(RDMA-aware Network Interface Controller)之間的傳輸接口層(Software Transport Interface)被稱為Verbs或RDMA API,RDMA API (Verbs)主要有兩種Verbs:


  • 記憶體Verbs(Memory Verbs)也叫One-SidedRDMA。包括RDMA Reads, RDMA Writes, RDMA Atomic。這種樣式下的RDMA訪問完全不需要遠端機的任何確認。

  • 訊息Verbs(Messaging Verbs)也叫Two-SidedRDMA。包括RDMA Send, RDMA Receive。這種樣式下的RDMA訪問需要遠端機CPU的參與。

      RDMA over TCP(iWARP)協議能夠工作在標準的基於TCP/IP協議的網絡,如目前在各個資料中心廣泛使用的以太網。iWARP並沒有指定物理層信息,所以能夠工作在任何使用TCP/IP協議的網絡上層。iWARP允許很多傳輸型別來共享相同的物理連接,如網絡、I/O、檔案系統、塊儲存處理器之間的訊息通訊。

     從RDMA over TCP的協議棧來看,最上面三層構成iWARP協議族,用來保證高速網絡的互操作性。

      然而,RDMA over Converged Ethernet (RoCE)是一種網絡協議,允許應用通過以太網實現遠程記憶體訪問。目前RoCE有兩個協議版本。

  • RoCE v1是一種鏈路層協議,允許在同一個廣播域下的任意兩台主機直接訪問。

  • RoCE v2是一種Internet層協議,即可以實現路由功能。雖然RoCE協議這些好處都是基於融合以太網的特性,但是RoCE協議也可以使用在傳統以太網網絡或者非融合以太網絡中。

      目前,雖然IB、以太網RoCE、以太網iWARP這三種RDMA技術使用統一的API,但它們有著不同的物理層和鏈路層。在以太網解決方案中,RoCE相對於iWARP來說有著明顯的優勢,這些優勢體現在延時、吞吐率和 CPU負載。RoCE被很多主流的方案所支持,並且被包含在Windows服務軟體中。


      RDMA技術基於傳統網絡的概念,但與IP網絡又有些不同。最關鍵的不同是RDMA提供了一種訊息服務, 利用這種服務,應用程式可以直接訪問遠程計算機上的虛擬記憶體。訊息服務可以用來進行網絡中行程間通信(IPC)遠程服務器通信和在一些上層協議的協助下與儲存設備進行資料傳遞。上層應用協議ULPs(Upper Layer Protocols)有很多,例如iSCSI的RDMA擴展(iSER)、SCSI RDMA協議(SRP)等,主流的SMB、Samba 、Lustre、ZFS等也支持RDMA。

      RoCE和InfiniBand,一個定義瞭如何在以太網上運行RDMA,而另一個則定義瞭如何在IB網絡中運行RDMA。RoCE期望能夠將IB的應用(主要是基於集群的應用)遷移到融合以太網中,而在其他應用中,IB網絡仍將能夠提供比RoCE更高的帶寬和更低的時延。RoCE和IB協議的技術區別:


  • 擁塞控制:RoCE所依賴的無丟包網絡基於以太網流控或PFC(Priority Flow Control)來實現。RoCEv2 則是定義了擁塞控制協議,使用ECN做標記和CNP幀來做確認。而IB則是使用基於信用的演算法來保證HCA-HCA之間的無丟包通信。

  • 時延:當前IB交換機普遍要比以太交換機擁有更低的時延,以太網交換機一般的Port-to-Port時延在230ns,相比IB交換機在同樣端口數的情況下100ns的時延,以太交換機還是要高出不少。

  • 配置:配置一個DCB以太網絡要遠比配置一個IB網絡要複雜的多,同理,運維也要複雜的多。

      RoCE和iWARP,一個是基於無連接協議UDP,一個是基於面向連接的協議(如TCP)。RoCEv1只能局限在一個二層廣播域內,而RoCEv2和iWARP都能夠支持三層路由。相比RoCE,在大型組網的情況下,iWARP的大量TCP連接會占用大量的額記憶體資源,對系統規格要求更高。另外,RoCE支持組播,而iWARP還沒有相關的標準定義。

      Intel收購了Qlogic的InfiniBand業務的Intel又另闢新徑,推出了一整套叫做“True Scale Fabric”的高性能計算架構的解決方案(包括IB和Omni-Path),獨立提出了一套Omni-Path Host Fabric Interface接口和對應的交換機產品。提供Verbs和PSM(性能擴展訊息庫)兩個編程接口,PSM是專門面向 MPI 通信設計的接口。

      Intel在CPU上集成了Omni-Path相關功能,這也意味著Omni-Path通信效率上更加高效,但會讓自己的網絡依賴於CPU,至少在處理器上開放性還是做的比較有局限性。

      通過收購Cray互聯部門,Intel在 Omni-Path引入了1.5層的概念。它被稱作鏈接傳輸層(Link Transport Layer),基於Cray的Aries基礎互聯技術優化底層資料通信,提供可靠的2層資料包交付、流控和單連璐控制。這也算是對收購Cray的Aries技術的充分利用。


      基於作者對RDMA理解,筆者已經對相關技術總結整理成的<RDMA原理分析、對比和技術實現解析>電子書,本書涉及到大部分的內容已在本號推送過,但是內容有所增加且經過梳理,如果怕麻煩零散閱讀,那就通過原文鏈接獲取詳情。


熱文推薦



溫馨提示:
請搜索“ICT_Architect”“掃一掃”二維碼關註公眾號,點擊原文鏈接獲取更多技術資料

求知若渴, 虛心若愚

赞(0)

分享創造快樂