基於 SmartX 分散式儲存的 RDMA 與 TCP/IP 技術與效能對比

SmartX超融合發表於2023-02-08

作者:深耕行業的 SmartX 金融團隊

背景

上一篇 “ 分散式塊儲存 ZBS 的自主研發之旅|架構篇” 文章中,我們簡單介紹了 SmartX 分散式塊儲存 ZBS 的架構原理。接下來,我們將為讀者深入解析 ZBS 儲存中最為重要的技術之一“RDMA”。

目前 ZBS 在兩個層面會使用到 RDMA 技術,分別是儲存接入網路和儲存內部資料同步網路。為了使讀者更加容易理解,以及更有針對性地做儲存效能對比,特透過兩篇獨立的文章分別進行介紹。 本期,我們將聚焦 RDMA 遠端記憶體直接訪問技術,並結合 ZBS 內部儲存資料同步進行詳細的展開(ZBS 支援 RDMA 能力,也是在儲存內部資料同步中最先實現)。

ZBS 儲存內部資料同步

分散式儲存系統與集中儲存最重要的區別之一就是架構實現。分散式架構要保證資料的儲存一致性和可靠性,就必須依賴網路進行資料同步。這裡舉一個例子,一個由 3 節點(A/B/C)組成的 ZBS 儲存叢集,資料採用兩副本保護(資料儲存兩份,放置在不同的物理節點),假設資料分別存放在節點 A 和節點 B 上,當資料發生修改,ZBS 分散式儲存必須完成對節點 A 和 B 的資料修改再返回確認。在這個過程中,A 和 B 節點同步資料修改,所使用的網路,即是儲存網路。

透過例子,相信讀者已經理解, 資料同步效率對於分散式儲存的效能表現有著非常大的影響,是分散式儲存效能最佳化的重要方向之一 也是本篇文章重點討論的內容。

圖 1:分散式儲存資料同步網路

在目前常規的工作負載需求下,ZBS 儲存網路通常使用 10GbE 乙太網交換機和伺服器網路卡配置,採用標準 TCP/IP 作為網路傳輸協議。但對於高頻寬和低延時的業務工作負載,這樣的配置明顯會成為內部儲存資料同步的效能瓶頸。同時,為了發揮新型的高速儲存介質(例如 NVMe 磁碟)更強勁的 I/O 效能,採用 RDMA 技術並結合 25GbE 或更高的網路規格,是滿足業務端更高的儲存效能訴求的更優選擇。

TCP/IP

透過軟體定義實現的分散式儲存,基於通用標準的硬體構建,是其有別於傳統儲存的重要的特點之一。多年以來,ZBS 使用 TCP/IP 網路協議棧作為儲存內部通訊方式,優勢是具備與現有乙太網最大的相容性,同時滿足絕大多數客戶的業務工作負載需求。但 TCP/IP 網路通訊逐漸不能適應更高效能運算的業務訴求,其主要限制有以下兩點:

  • TCP/IP 協議棧處理帶來的時延

TCP 協議棧在接收/傳送資料包文時,系統核心需要做多次上下文切換,這個動作無疑將增加傳輸時延。另外在資料傳輸過程中,還需要多次資料複製和依賴 CPU 進行協議封裝處理,這就導致僅僅是協議棧處理就帶來數十微秒的時延。

  • TCP 協議棧處理導致伺服器更高的 CPU 消耗

除了時延問題,TCP/IP 網路需要主機 CPU 多次參與到協議棧的記憶體複製。分散式儲存網路規模越大,網路頻寬要求越高,CPU 收發資料時的處理負擔也就越大,導致 CPU 資源的更高消耗(對於超融合架構,是非常不友好的)。

圖 2:TCP/IP Socket 通訊

RDMA

RDMA 是 Remote Direct Memory Access 的縮寫。其中 DMA 是指裝置直接讀寫記憶體技術(無需經過 CPU)。

圖 3:DMA

RDMA 技術的出現,為降低 TCP/IP 網路傳輸時延和 CPU 資源消耗,提供了一種全新且高效的解決思路。透過直接記憶體訪問技術,資料從一個系統快速移動到遠端系統的記憶體中,無需經過核心網路協議棧,不需要經過中央處理器耗時的處理,最終達到高頻寬、低時延和低 CPU 資源佔用的效果。

目前實現 RDMA 的方案有如下 3 種:

圖 4:RDMA 實現方案 (圖片來源:SNIA)

InfiniBand(IB)是一種提供了 RDMA 功能的全棧架構,包含了程式設計介面、二到四層協議、網路卡介面和交換機等一整套 RDMA 解決方案。InfiniBand 的程式設計介面也是 RDMA 程式設計介面的事實標準,RoCE 和 iWARP 都使用 InfiniBand 的介面進行程式設計。

RoCE(RDMA over Converged Ethernet)和 iWARP(常被解釋為 Internet Wide Area RDMA Protocol,這並不準確,RDMA Consortium 專門做出解釋 iWARP 並不是縮寫),兩個技術都是將 InfiniBand 的程式設計介面封裝在乙太網進行傳輸的方案實現。RoCE 分為兩個版本,RoCEv1 包含了網路層和傳輸層的協議,所以不支援路由(更像是過渡協議,應用並不多);RoCEv2 基於 UDP/IP 協議,具有可路由能力。iWARP 是構建於 TCP 協議之上的。

跟 RoCE 協議繼承自 Infiniband 不同,iWARP 本身不是直接從 Infiniband 發展而來的。Infiniband 和 RoCE 協議都是基於“Infiniband Architecture Specification”,也就是常說的“IB 規範”。而 iWARP 是自成一派,遵循著一套 IETF 設計的協議標準。雖然遵循著不同的標準,但是 iWARP 的設計思想受到了很多 Infiniband 的影響,並且目前使用同一套程式設計介面(Verbs*)。這三種協議在概念層面並沒有差異。

* Verb 是 RDMA 語境中對網路介面卡功能的一個抽象,每個 Verb 是一個函式,代表了一個 RDMA 的功能,實現傳送或接收資料、建立或刪除 RDMA 物件等動作。

RDMA 需要裝置廠商(網路卡和交換機)的生態支援,主流網路廠家的協議支援能力如下:

Infiniband 從協議到軟硬體封閉,其效能雖然最優,但成本也最高,因為需要更換全套裝置,包括網路卡、光纜和交換機等。這對於通用標準化的分散式儲存場景並不友好,在 ZBS 選擇時首先被排除掉。

對於 RoCE 和 iWARP 選擇上,雖然 RoCE 在資料重傳和擁塞控制上受到 UDP 協議自身的限制,需要無損網路的環境支援,但在綜合生態、協議效率和複雜度等多方面因素評估下,SmartX 更加看好 RoCE 未來的發展,在極致的效能訴求下,RoCE 也會比 iWARP 具有更強的潛力。 當前 ZBS 儲存內部資料同步網路採用的是 RoCEv2 的 RDMA 技術路線。

圖 5:ZBS RDMA RoCEv2

效能驗證資料

為了使測試資料有更直觀的對比性(RDMA vs TCP/IP),將控制測試環境嚴格一致性,包括硬體配置、系統版本以及相關軟體版本,唯一變數僅為開啟/關閉儲存內部資料同步 RDMA 能力,基於此,測試叢集在兩種狀態下的效能表現。

環境資訊

儲存叢集,由 3 節點組成,安裝 SMTX OS 5.0,分層儲存結構,所有儲存節點的硬體配置相同,節點環境資訊如下:

效能資料

在相同的測試環境和測試方法下,分別使用 RDMA 和 TCP/IP 協議進行效能驗證。為了更好地觀測讀寫 I/O 跨節點的效能表現(ZBS 分散式儲存預設具有資料本地化特點,對讀 I/O 模型有明顯最佳化作用),本次測試基於 Data Channel 平面(ZBS 內部的 RPC 通道,用於節點間收發數請求)。本測試僅用於評估網路效能差異,I/O 讀寫操作並不落盤。

效能對比資料

測試結論

透過以上基準測試資料,可以看出, 相同軟硬體環境以及測試方法下,使用 RDMA 作為儲存內部資料同步協議,可以取得更優的 I/O 效能輸出 其表現為更高的 4K 隨機 IOPS 和更低的延時,以及在 256K 順序讀寫場景,充分釋放網路頻寬(25GbE)條件,提供更高的資料吞吐表現。

總結

透過本篇文章的理論介紹和客觀的效能測試資料,希望讀者能夠對於 RDMA 協議有了更加全面的瞭解。RDMA 對於資料跨網路通訊效能的最佳化,已經應用於很多企業場景中,分散式儲存作為其中一個重要場景,藉助 RDMA 實現了儲存內部資料同步效率的提升,進而為更高工作負載需求的業務應用提供了更好的儲存效能表現。

參考文章:

  1. RDMA over Converged Ethernet. Wikipedia.
  2. How Ethernet RDMA Protocols iWARP and RoCE Support NVMe over Fabrics.


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69974533/viewspace-2934466/,如需轉載,請註明出處,否則將追究法律責任。

相關文章