XSKY開源InfiniBand RDMA互聯(lián)支持 加速Ceph能效再創(chuàng)新高

責任編輯:editor005

2016-10-24 14:25:15

摘自:TechTarget中國

近日,國內(nèi)軟件定義存儲企業(yè)XSKY向Ceph社區(qū)提交了IB RDMA的協(xié)議棧代碼,將歷時近1年時間研發(fā)的基于Ceph的IB RDMA互聯(lián)支持進行開源。在Ceph社區(qū)中

近日,國內(nèi)軟件定義存儲企業(yè)XSKY向Ceph社區(qū)提交了IB RDMA的協(xié)議棧代碼,將歷時近1年時間研發(fā)的基于Ceph的IB RDMA互聯(lián)支持進行開源。

網(wǎng)絡連接廠商Mellanox研發(fā)部門同時表示也將參與其中,基于該部分代碼,雙方將共同孵化和完善基于AsyncMessenger的網(wǎng)絡通信引擎,試圖大幅度提升IO路徑上的網(wǎng)絡性能。此外,XSKY將協(xié)同一些企業(yè)用戶基于此進行大規(guī)模Ceph集群測試。

在Ceph社區(qū)中,XSKY一直圍繞高性能方面提供代碼貢獻,此次將IB RDMA開源將對加速Ceph高性能步伐具有重大意義。

RDMA(Remote Direct Memory Access)是通過利用硬件 Offload 能力,解決網(wǎng)絡傳輸中的延遲,提供吞吐的技術。在高性能計算領域中, RDMA 被大量使用于網(wǎng)絡數(shù)據(jù)傳輸與運算交互。

RDMA 定義了一種異步網(wǎng)絡編程接口,稱做 RDMA Verbs。應用程序主要于 Verbs 交互實現(xiàn) RDMA 的優(yōu)勢。Verbs 掩蓋了底層硬件差異,因此,無論 InfiniBand 還是以太網(wǎng)都可作為 Verbs 的后端,于是可實現(xiàn)RoCE(RDMA over Converged Ethernet)。

在 RDMA 的世界里,主要有幾種協(xié)議簇。第一是 RDMA 之下的協(xié)議棧,如iWARP,RoCE,Infiniband HCA,RoCE v2 甚至 Software RoCE。這些主要是為RDMA提供底下的傳輸真實介質(zhì)和鏈路實現(xiàn)。第二種是RDMA之上的應用協(xié)議,在存儲領域包括iSER(iSCSI over RDMA),SMB 3 with SMB Direct,NFS/RDMA,SRP(SCSI over RDMA),以及現(xiàn)在最火熱的NVMe over Fabric。

Host Network現(xiàn)在于NVMe Over Fabric的領域最為火熱,如下圖所示,Head Node Cluster Network和Storage Network 實際上作為傳統(tǒng)存儲機頭的交換網(wǎng)絡以及機頭跟存儲介質(zhì)池的網(wǎng)絡。前者過去通常是PCIe或者InfiniBand,后者通常是SAS或者Infiniband。在Ceph中,這兩個也對應了 Ceph 的 Public Network 和 Cluster Network。

xsky3

而在目前主流分布式軟件定義存儲里,僅華為公司的 FusionStorage 對外公開支持 InfiniBand/RDMA。而 Ceph 過去的 Infiniband/RDMA 雖然在社區(qū)被提及過,實際上是概念驗證階段,最大的原因也許是 Ceph 的網(wǎng)絡接口以及規(guī)定語意比較復雜,使得在2014 年就已經(jīng)進入主線的 XioMessenger(基于 AccelIO)至今未能滿足Ceph核心對于網(wǎng)絡層狀態(tài)的需求而被投入應用。

今年在Raleigh舉行 的 Ceph Next Day 上,有一個專門的話題,討論 XioMessenger 無法滿足 Ceph 語意的問題。主要在于 Ceph 所規(guī)定的 Messenger 語意和 Policy 太過復雜,使得非 TCP/IP 棧在無法充分測試的情況下,基本上很難達到要求。因此,為了解決 RDMA 進入 Ceph 的問題,主要發(fā)展出兩個方向。第一個是降低 Ceph核心對于網(wǎng)絡層狀態(tài)的要求,減少 Messenger 需要實現(xiàn)的邏輯。但這個方向一開始就被開發(fā)者否決了,因為減少了Messenger的邏輯就意味著要增加其他地方的邏輯,改動量太大。第二個方向就是基于目前 AsyncMessenger 的框架(得益于之前 DPDK 的引入定義),擴展出不同的網(wǎng)絡后端而無需關心上層會話邏輯。

xsky4

因此,基于 AsyncMessenger 的 RDMA 實現(xiàn)成為 Ceph 支持 RDMA 的計劃。在最近一次跟社區(qū)的交互中,這個方向已經(jīng)被社區(qū)領袖 Sage Weil 認為是正確的做法。

在10月19日,XSKY 正式把孵化出來的基于 AsyncMessenger 的 RDMA 網(wǎng)絡引擎提交到 Ceph 社區(qū),并開始進入 K 版本的 Pending 窗口。通過 AsyncMessenger 的 RDMA 網(wǎng)絡引擎,最大優(yōu)勢是簡單且高性能。不同于 XioMessenger 基于 AccelIO 的復雜抽象,該RDMA實現(xiàn)跟大多數(shù)RDMA應用一樣直接采用原生的 Verbs 接口,充分整合到 Ceph 已有的框架中。大大降低了復雜度,提高了易用性。

至此,在一個版本周期內(nèi),Ceph完成了整個網(wǎng)絡層的大重構,從啟用AsyncMessenger作為默認網(wǎng)絡引擎,到釋出DPDK+SPDK的網(wǎng)絡棧,現(xiàn)在的RDMA引擎支持。使得Ceph在網(wǎng)絡層面允許用戶選擇不同要求、性能的網(wǎng)絡棧。

以上三種引擎,歷時一年,多次更新并提交到社區(qū),皆由XSKY團隊發(fā)起并與硬件領導廠商Intel、Samsung、Mellanox等共同優(yōu)化維護。三種網(wǎng)絡引擎分別適配用戶對于不同場景,不同特點的網(wǎng)絡要求。之前Ceph結(jié)合DPDK+SPDK的實踐,或代表了未來高速以太網(wǎng)的黃金配合,但最大的遺憾是需要等待Ceph BlueStore的成熟以及SPDK生態(tài)的穩(wěn)定。但RDMA提供了合適的折中,在硬件配置較優(yōu)的條件下,能夠跟已有成熟的Ceph IO??焖僬鲜褂?。

Red Hat 首席存儲科學家Sage Weil在關于此次更新的意見中提到,“This definitely seems like a nice way to approach RDMA support since it doesn't require a full rewrite of the messenger protocol like msg/xio.”我們相信,這次RDMA之于Ceph upstream的變化在提升性能方面意義重大,雖然不能說這一網(wǎng)絡層改進立即就適當應用于普通企業(yè)的生產(chǎn),但通過社區(qū)和硬件領導廠商配合下的持續(xù)優(yōu)化,可以期待Ceph效能再創(chuàng)新高不會太久。

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號