基於 SmartX 分散式儲存的 RDMA 與 TCP/IP 技術與效能對比
作者:深耕行業的 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 節點同步資料修改,所使用的網路,即是儲存網路。
透過例子,相信讀者已經理解, 資料同步效率對於分散式儲存的效能表現有著非常大的影響,是分散式儲存效能最佳化的重要方向之一 ,也是本篇文章重點討論的內容。
在目前常規的工作負載需求下,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 資源的更高消耗(對於超融合架構,是非常不友好的)。
RDMA
RDMA 是 Remote Direct Memory Access 的縮寫。其中 DMA 是指裝置直接讀寫記憶體技術(無需經過 CPU)。
RDMA 技術的出現,為降低 TCP/IP 網路傳輸時延和 CPU 資源消耗,提供了一種全新且高效的解決思路。透過直接記憶體訪問技術,資料從一個系統快速移動到遠端系統的記憶體中,無需經過核心網路協議棧,不需要經過中央處理器耗時的處理,最終達到高頻寬、低時延和低 CPU 資源佔用的效果。
目前實現 RDMA 的方案有如下 3 種:
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 技術路線。
效能驗證資料
為了使測試資料有更直觀的對比性(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 實現了儲存內部資料同步效率的提升,進而為更高工作負載需求的業務應用提供了更好的儲存效能表現。
參考文章:
- RDMA over Converged Ethernet. Wikipedia.
- How Ethernet RDMA Protocols iWARP and RoCE Support NVMe over Fabrics.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69974533/viewspace-2934466/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於 SmartX 分散式儲存的 iSCSI 與兩種 NVMe-oF 技術與效能對比分散式
- VMware 與 SmartX 分散式儲存快取機制淺析與效能對比分散式快取
- Nutanix 替代專題 | SmartX 與 Nutanix 超融合市場、技術與效能對比
- OSI與TCP/IP的對比TCP
- 儲存技術對比:NVMe與SATA孰強孰弱?
- 基於 NVMe SSD 的分散式檔案儲存 UFS 效能提升技術解析分散式
- 「分散式技術專題」獨立儲存的優勢與劣勢分散式
- 不同體系分散式儲存技術的技術特性分散式
- 「分散式技術專題」非獨立儲存的優勢與劣勢分散式
- Ceph分散式儲存技術解讀分散式
- 從Google Spanner漫談分散式儲存與資料庫技術XAGo分散式資料庫
- 分散式應用開發的核心技術系列之——基於TCP/IP的原始訊息設計分散式TCP
- VMware 與 SmartX 超融合 I/O 路徑對比與效能影響解析
- Gartner 儲存與資料保護技術 Hype Cycle 解讀|SmartX 趨勢分享
- HDFS分散式儲存的意義及技術解析分散式
- 基於MFS高可用的分散式儲存架構分散式架構
- 分散式儲存技術解讀系列之GFS分散式
- [技術思考]分散式儲存系統的雪崩效應分散式
- 浪潮儲存基於智慧運維技術,加速儲存自治運維
- 基於區塊鏈底層技術的分散式雲端儲存專案招聘go開發區塊鏈分散式Go
- 分散式系統技術:儲存之資料庫分散式資料庫
- [精華] RDMA技術原理分析、主流實現對比和解析
- Apache 與 Nginx 效能對比:Web 伺服器優化技術ApacheNginxWeb伺服器優化
- 基於Raft的分散式MySQL Binlog儲存系統開源Raft分散式MySql
- 雲端計算導論 # 3 雲端儲存技術:概念、結構模型、關鍵技術、分散式資料儲存、常見儲存結構、應用與問題模型分散式
- 系列解讀 SMC-R (二):融合 TCP 與 RDMA 的 SMC-R 通訊 | 龍蜥技術TCP
- IPFS分散式儲存挖礦技術系統開發分散式
- 實時流處理與分散式儲存過程中對檔案的操作分散式儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- LC3視角:高效能網路技術下的阿里雲盤古分散式儲存技術變革阿里分散式
- Mobx 與 Redux 的效能對比Redux
- Apache 與 Nginx 效能對比:Web 伺服器最佳化技術ApacheNginxWeb伺服器
- 深度剖析分散式事務之 AT 與 XA 對比分散式
- 分散式儲存與傳統網路儲存系統相比有哪些區別分散式
- 資料儲存加密的主流方案對比與難點解析加密
- 面向不同需求的物件儲存系統對比:Ceph與Swift物件Swift
- 比較Apache Kafka與各大雲端計算的分散式日誌技術 - scottlogicApacheKafka分散式
- Redis 分散式儲存Redis分散式