零拷貝RDMA在支持IPC操作方面有着廣泛的應用前景。現代高性能網絡協議如Infiniband、RoCE或iWARP提供RDMA,它爲應用程序提供高帶寬和低延遲通信。本文使用Mellanox-ConnetX-4lx適配器和Ruijie s6500交換機對25Gbps/100Gpbs的fullmesh RoCE網絡進行了評估,這些適配器已經在阿里巴巴、百度和騰訊數據中心網絡環境中大量部署。我們發現在fullmesh網絡中,交換機的性能可能是一個瓶頸,並且我們的fullmesh部署可以實現吞吐量的線性可伸縮性,只要服務器的總吞吐量不超過交換機的鏈路速率。
計算、存儲和web是部署在數據中心或雲中的三種主要應用程序類型。所有這些應用程序都需要IPC實用程序來交換中間數據或控制消息,以處理跨多個服務器的並行任務。因此,在數據中心內移動數據的開銷不容忽視。遠程直接內存訪問(RDMA)提供設備直接訪問遠程主機內存的能力,而無需計算機操作系統的干預。RDMA支持低CPU利用率的高吞吐量、低延遲網絡,這在並行計算集羣中特別有用。
RDMA具有以下主要優點:1)零拷貝,應用程序可以在不涉及網絡軟件堆棧的情況下執行數據傳輸,並且數據直接發送和接收到緩衝區,而無需在網絡層之間進行拷貝。2) 內核旁路,應用程序可以直接從用戶空間執行數據傳輸,而無需執行上下文切換。3) 不涉及CPU,應用程序可以訪問遠程內存,而不消耗遠程計算機中的任何CPU。遠程CPU中的緩存將不會被訪問的內存內容填滿。
有幾種網絡協議支持RDMA:1)InfiniBand,這是一種新一代的網絡協議,從一開始就支持RDMA。2) RoCE,一種允許在以太網上執行RDMA的網絡協議。3) iWARP,一種允許通過TCP執行RDMA的網絡協議。本文將遠程直接內存訪問(RDMA)技術應用於fullmesh-RoCE網絡,以極低的CPU開銷爲應用提供超低延遲和高吞吐量的網絡。
InfiniBand(縮寫IB)是一種用於高性能計算的計算機網絡通信標準,具有很高的吞吐量和很低的延遲。它用於計算機之間和計算機內部的數據互連。InfiniBand還用作服務器和存儲系統之間的直接或交換互連。
RoCE是通過以太網提供RDMA的傳輸層標準。與InfiniBand不同,使用RoCE,您可以使用與提供RDMA功能時相同的以太網布線和交換機。有兩個RoCE版本,RoCE v1和RoCE v2。RoCE v1是以太網鏈路層協議,因此允許在同一以太網廣播域中的任意兩臺主機之間進行通信。RoCE v2是一種internet層協議,它意味着rocev2包可以被路由。如圖1所示,RoCEv2保留了IB傳輸層,但用IP和UDP封裝替換了IB網絡層(L3),並用以太網替換了IB L2。
iWARP是另一種RDMA產品,它比基於RoCE的解決方案更復雜,無法達到相同的性能水平。iWARP使用複雜的層組合,包括DDP(直接數據放置)、稱爲MPA(標記PDU對齊幀)的自適應和單獨的RDMA協議(RDMAP)來通過TCP/IP交付RDMA服務。這種複雜的體系結構是將RDMA與現有的軟件傳輸框架相結合的一種錯誤的嘗試。不幸的是,這種折衷導致iWARP無法提供RoCE能夠實現的三個關鍵好處:高吞吐量、低延遲和低CPU利用率。
Github Link: https://github.com/li7hui/rdma_tongji/tree/master/scripts