基于 RoCE 構(gòu)建分布式存儲(chǔ),打造高性能數(shù)據(jù)庫(kù)云中國(guó)電信福建分公司 企業(yè)信息化部 郭建海
摘要:為解決福建電信數(shù)據(jù)庫(kù)性能不足問(wèn)題,本文從平臺(tái)架構(gòu)的角度分析了硬件和軟件對(duì)性能的影響,創(chuàng)新地提出了使用遠(yuǎn)端內(nèi)存直接訪問(wèn)技術(shù)(RDMA)構(gòu)建云存儲(chǔ)平臺(tái)的思路。在標(biāo)準(zhǔn)以太網(wǎng)框架內(nèi),運(yùn)行 RDMA over Converged Ethernet (RoCE),在云端數(shù)據(jù)庫(kù)上實(shí)現(xiàn)對(duì)非本地存儲(chǔ)的高速訪問(wèn),從而極大程度的提升了應(yīng)用的吞吐。通過(guò)進(jìn)一步的實(shí)驗(yàn)和現(xiàn)網(wǎng)試運(yùn)行驗(yàn)證,該框架對(duì)于改善系統(tǒng)整體延時(shí)也有非常好的效果。 基于理論分析和實(shí)踐結(jié)果的互相論證,本文最后對(duì)于基于分布式存儲(chǔ)構(gòu)建高性能數(shù)據(jù)庫(kù)云進(jìn)行了總結(jié),概括了其中的關(guān)鍵技術(shù)點(diǎn),同時(shí)給出了可能存在的問(wèn)題和下一步研究方向。
關(guān)鍵詞: RDMA, RoCE,分布式存儲(chǔ),數(shù)據(jù)庫(kù),網(wǎng)絡(luò)概述
伴隨著數(shù)據(jù)的指數(shù)級(jí)增長(zhǎng),給我們的生活帶來(lái)便利的同時(shí),也給電信網(wǎng)絡(luò)帶來(lái)更高的壓力和需求。隨著數(shù)據(jù)中心流量的增加,許多平臺(tái)都迫切需要提高服務(wù)器和網(wǎng)絡(luò)帶寬。除此之外,數(shù)據(jù)中心還需要一種可以有效擴(kuò)展以適應(yīng)未來(lái)需要的產(chǎn)品,10GE 作為當(dāng)前部署的主流帶寬在這方面已有些力不從心。在互聯(lián)網(wǎng)企業(yè)中,25GE 以太網(wǎng)逐步開始承載云平臺(tái)和關(guān)鍵業(yè)務(wù),25GE 擁有 10GbE 無(wú)可比擬的帶寬優(yōu)勢(shì),同時(shí)也具備極好的可擴(kuò)展行來(lái)滿足未來(lái)節(jié)點(diǎn)數(shù)增長(zhǎng)的需求。25GE 技術(shù)可在成本和功耗較低的情況下在單個(gè)通道中提供較高帶寬,從而提供更高的服務(wù)器和交換機(jī)端口密度。25GE 是一種新標(biāo)準(zhǔn),可利用為 100GE 以太網(wǎng)(作為在四個(gè)光纜或銅纜對(duì)上運(yùn)行的四個(gè) 25Gbps 通道 (IEEE802.3bj) 而實(shí)施)定義的技術(shù)。以 25GE 為基礎(chǔ)構(gòu)建的解決方案可與 10GE、50GE、100GE 以及未來(lái)的 200GE 和 400 GE 產(chǎn)品向后和向前兼容,從而可確保適應(yīng)未來(lái)解決方案的升級(jí)途徑。隨著高帶寬互連越來(lái)越普遍,網(wǎng)絡(luò)請(qǐng)求處理向 CPU 施加了沉重負(fù)擔(dān)。借助網(wǎng)卡端的卸載和交換端的流控技術(shù)(如 RoCE, PFC 和 ECN),可以實(shí)現(xiàn)高效率以便進(jìn)一步提高 25GbE 網(wǎng)絡(luò)的性能。RDMA 使網(wǎng)絡(luò)適配器可以直接訪問(wèn)應(yīng)用程序緩沖區(qū),從而繞過(guò)內(nèi)核、CPU 和協(xié)議堆棧,因此 CPU 可以在 I/O 傳輸進(jìn)行期間執(zhí)行更有用的任務(wù)。這樣可提高服務(wù)器中的性能,從而使應(yīng)用程序工作負(fù)載可以在高帶寬網(wǎng)絡(luò)中高效擴(kuò)展。
存儲(chǔ)是除了 CPU 和網(wǎng)絡(luò)之外,影響系統(tǒng)性能極為關(guān)鍵的一環(huán)?蛻粝嚓P(guān)的各類數(shù)據(jù),網(wǎng)絡(luò)運(yùn)行的日志和維護(hù)記錄等都需要通過(guò)存儲(chǔ)保存。傳統(tǒng)的 FC 存儲(chǔ)使用不同于標(biāo)準(zhǔn)以太網(wǎng)的 FC 網(wǎng)絡(luò),而存儲(chǔ)介質(zhì)以硬盤為主,對(duì)于當(dāng)前大量的非結(jié)構(gòu)化數(shù)據(jù)來(lái)說(shuō),單盤每秒能進(jìn)行的書寫次數(shù)在 100 以內(nèi)。要搭建高性能的系統(tǒng),一是要有能支持更高讀寫速度的介質(zhì),二是要有合適的協(xié)議能高效承載數(shù)據(jù),然后就是配套的網(wǎng)絡(luò)和 CPU 能滿足對(duì)應(yīng)的性能要求。
根據(jù)國(guó)際權(quán)威機(jī)構(gòu) Wikibon 對(duì)未來(lái)存儲(chǔ)市場(chǎng)的預(yù)測(cè),存儲(chǔ)市場(chǎng)整體穩(wěn)步增長(zhǎng)。但傳統(tǒng)SAN/ NAS 存儲(chǔ)的市場(chǎng)占比則持續(xù)降低,Hyper-Scale Server SAN 和和企業(yè)級(jí) Server SAN 等分布式存儲(chǔ)在 2021 年市場(chǎng)份額預(yù)計(jì)占比超過(guò) 80%,2026 年將超過(guò) 90%。決定分布式存儲(chǔ)的關(guān)鍵則是核心軟件和分布式的通訊互聯(lián)。
圖 1. 存儲(chǔ)市場(chǎng)預(yù)測(cè)當(dāng)前的問(wèn)題和解決思路
目前主要問(wèn)題是越來(lái)越大的需處理數(shù)據(jù)量與傳統(tǒng)低速存儲(chǔ)的矛盾。要解決這一問(wèn)題,在本文開頭的概述中我們提到需要更高性能的介質(zhì)配合網(wǎng)絡(luò)和 CPU,以提升節(jié)點(diǎn)的性能并打造可擴(kuò)展的系統(tǒng),應(yīng)對(duì)日益增長(zhǎng)的數(shù)據(jù)需求和性能要求。因此,福建電信探索通過(guò) 25G 網(wǎng)絡(luò)及 RoCE 技術(shù),實(shí)現(xiàn)高效的分布式數(shù)據(jù)解決方案,解決當(dāng)前數(shù)據(jù)倉(cāng)庫(kù)的性能問(wèn)題。
首先需要解決的是存儲(chǔ)的架構(gòu)問(wèn)題。在資源池化的大環(huán)境下,傳統(tǒng)存儲(chǔ)肯定無(wú)法繼續(xù)使用。出于海量數(shù)據(jù)本身的需求,為優(yōu)化不同節(jié)點(diǎn)對(duì)存儲(chǔ)的并行訪問(wèn)性能,使用分布式存儲(chǔ)來(lái)解決問(wèn)題是一個(gè)較好的思路。在分布式存儲(chǔ)系統(tǒng)中,如何提升存儲(chǔ)的遠(yuǎn)端訪問(wèn)性能,進(jìn)而提升分布式存儲(chǔ)整體效率,這是一個(gè)挑戰(zhàn)。從協(xié)議的角度,可以使用 iSER 或 NVMF 等基于 RoCE 的訪問(wèn)技術(shù);從網(wǎng)絡(luò)的角度,更好利用網(wǎng)卡的卸載特性、以太網(wǎng)交換機(jī)的低延時(shí)、零丟包特性和先進(jìn)的流控機(jī)制,能有效提高網(wǎng)絡(luò)效率并降低 TCO,進(jìn)一步提升分布式存儲(chǔ)的性能和效率。
其次,對(duì)于使用哪種存儲(chǔ)介質(zhì)能滿足高性能存儲(chǔ)的要求,筆者認(rèn)為 NVMe SSD 擁有較好的隨機(jī)讀寫性能。且可以選擇 U.2 接口的 NVMe SSD,可支持熱插拔,也可根據(jù)需要實(shí)現(xiàn) RAID,以滿足存儲(chǔ)的高可靠性要求。由于單塊 NVMe SSD 的讀寫就需要高于 20Gb/S 的帶寬,25GE 網(wǎng)絡(luò)成為滿足存儲(chǔ) IO 需求的起步配置。 然后,對(duì)于解決容量問(wèn)題的需求,解決的思路是使用高速的 NVMe SSD 作為緩存,在之后使用大容量的硬盤來(lái)存儲(chǔ)冷數(shù)據(jù),這樣通過(guò)智能緩存加速 IO 讀寫,同時(shí)通過(guò)海量硬盤實(shí)現(xiàn)大容量。
在既定的分布式架構(gòu)下,存儲(chǔ)性能的關(guān)鍵在于如何實(shí)現(xiàn)存儲(chǔ)訪問(wèn)的加速。這個(gè)技術(shù)可以分為兩個(gè)方面,一方面是保證遠(yuǎn)端存儲(chǔ)和本地存儲(chǔ)有近似的 IO 性能,另一方面是怎么樣通過(guò)硬件卸載來(lái)保證 CPU 不被過(guò)度占用進(jìn)而影響存儲(chǔ)性能。之前提到的基于 RoCE 的網(wǎng)絡(luò)技術(shù)能非常好的實(shí)現(xiàn)這個(gè)存儲(chǔ)訪問(wèn)的加速。
除上述問(wèn)題之外,由于是分布式架構(gòu),網(wǎng)絡(luò)如何保證數(shù)據(jù)的完整性也是非常重要的。這里需要交換機(jī)和網(wǎng)卡端的配合來(lái)實(shí)現(xiàn)端到端的流控機(jī)制。如果硬件本身的可靠性和可用性都非常高,這也是對(duì)系統(tǒng)性能的一個(gè)有力保證。
采用以 Mellanox 為代表的高帶寬低延遲智能網(wǎng)絡(luò)和 RDMA/RoCE 技術(shù)能加速數(shù)據(jù)傳遞和高效無(wú)損無(wú)疑是構(gòu)建分布式存儲(chǔ)網(wǎng)絡(luò)的關(guān)鍵之一。
方案框架
圖 2. 分布式存儲(chǔ)方案簡(jiǎn)圖
基于上一章節(jié)的分析,此處給出實(shí)現(xiàn)分布式存儲(chǔ)的框架,用于數(shù)據(jù)庫(kù)云的承載。在圖2 中計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)都連到 25GE 組網(wǎng)。無(wú)論計(jì)算節(jié)點(diǎn)還是存儲(chǔ)節(jié)點(diǎn),都使用雙路25GE 捆綁替換原來(lái)的雙路 10GE 網(wǎng)絡(luò)。在前期實(shí)驗(yàn)網(wǎng)絡(luò)中,共接入 27 個(gè)存儲(chǔ)節(jié)點(diǎn),每個(gè)存儲(chǔ)節(jié)點(diǎn)配 4 塊 3.2T NVMe 硬盤。在云平臺(tái)之上承載容器化數(shù)據(jù)庫(kù),根據(jù)應(yīng)用的需要,可以擴(kuò)展計(jì)算節(jié)點(diǎn)或存儲(chǔ)節(jié)點(diǎn),以支持更高容量或更多用戶。由于方案?jìng)?cè)重遠(yuǎn)端資源池化的實(shí)現(xiàn),因此我們的性能對(duì)比測(cè)試也主要針對(duì)不同網(wǎng)絡(luò)的場(chǎng)景。
o 網(wǎng)絡(luò)交換
在網(wǎng)絡(luò)交換上,我們選擇了業(yè)界低延時(shí)的存儲(chǔ)網(wǎng)絡(luò)交換機(jī) Mellanox MSN2410,每臺(tái)MSN2410 能支持高達(dá) 48 個(gè) 25GE 接口,同時(shí)支持 8 個(gè) 100GE 接口。在提供可靠硬件和靈活的端口支持基礎(chǔ)長(zhǎng),MSN2410 能為分布式存儲(chǔ)提供無(wú)與倫比的網(wǎng)絡(luò)特性:
- 支持低至 300ns 的延時(shí),且抖動(dòng)。
- 任意 64 字節(jié)及以上報(bào)文都能實(shí)現(xiàn)線速轉(zhuǎn)發(fā);
- 公平、可預(yù)測(cè)的端口資源分配保證最合理的帶寬使用;
在報(bào)文處理的細(xì)節(jié)方面,MSN2410 能夠通過(guò)其大緩存實(shí)現(xiàn)對(duì)于 Micro Burst 的最佳支持,同時(shí)先進(jìn)的 ECN 標(biāo)記方法和最快的 PFC 響應(yīng)都能極好保證存儲(chǔ)數(shù)據(jù)無(wú)損到達(dá)對(duì)端。
Mellanox 交換機(jī)配置簡(jiǎn)單,降低了安裝和管理高速網(wǎng)絡(luò)的復(fù)雜性,具有完善的監(jiān)控和管理功能,可以通過(guò)軟件實(shí)現(xiàn)監(jiān)測(cè)管理。
o RoCE 網(wǎng)卡
在數(shù)據(jù)不斷增長(zhǎng)的環(huán)境中,所有數(shù)據(jù)的快速傳輸對(duì)于高效使用信息至關(guān)重要。基于遠(yuǎn)程直接內(nèi)存訪問(wèn) (RDMA) 的互連可為提升數(shù)據(jù)中心效率、降低整體復(fù)雜性以及提高數(shù)據(jù)交付性能提供理想選擇。RDMA 使數(shù)據(jù)可以從存儲(chǔ)傳輸?shù)椒⻊?wù)器,而無(wú)需通過(guò) TCP/IP 以太網(wǎng)的 CPU 和主內(nèi)存路徑傳遞數(shù)據(jù)?色@得更高 CPU 和整體系統(tǒng)效率,因?yàn)榇鎯?chǔ)和服務(wù)器的計(jì)算能力只用于計(jì)算(而不是處理)網(wǎng)絡(luò)流量。盡管高帶寬十分重要,但是如果沒(méi)有低延遲,帶寬就沒(méi)什么價(jià)值。通過(guò)網(wǎng)絡(luò)移動(dòng)大量數(shù)據(jù)可以使用 TCP/IP 來(lái)實(shí)現(xiàn),但是只有 RDMA 才能實(shí)現(xiàn)低延遲,避免成本高昂的傳輸延遲。而且,RDMA 卸載可減少抖動(dòng),這意味著低響應(yīng)時(shí)間的一致性顯著提高 RoCE 最終將 RDMA 技術(shù)引入基于以太網(wǎng)的數(shù)據(jù)中心,從而使這類數(shù)據(jù)中心可以受益于 RDMA 的低延遲。
Mellanox 從 ConnectX-4 系列網(wǎng)卡開始,可利用網(wǎng)卡中內(nèi)置的基于管線的可編程 eSwitch 來(lái)快速處理虛擬化換將下的數(shù)據(jù)交互,ConnectX-4 Lx 可以在硬件中處理大部分?jǐn)?shù)據(jù)包處理操作。這些操作包括 VXLAN 封裝/解封、基于一組通用 L2-L4 包頭字段的數(shù)據(jù)包分類、QoS 和訪問(wèn)控制列表 (ACL)。在存儲(chǔ)方面,ConnectX-4 Lx 能支持 iSER 和 NVMf,此外,該網(wǎng)卡還能實(shí)現(xiàn)基于 VF 的限速機(jī)制以及糾刪碼的卸載,大大降低服務(wù)器與、網(wǎng)絡(luò)交換機(jī)和存儲(chǔ)節(jié)點(diǎn)之間的協(xié)調(diào)復(fù)雜性問(wèn)題,提升服務(wù)質(zhì)量。
性能對(duì)比
福建電信以 8 計(jì)算節(jié)點(diǎn)情形作性能測(cè)試,以衡量技術(shù)創(chuàng)新帶來(lái)的優(yōu)勢(shì)。在關(guān)鍵的 4K 隨機(jī)讀寫測(cè)試中,25GE RoCE 網(wǎng)絡(luò)的吞吐是 10GE 網(wǎng)絡(luò)的 9~14 倍左右,而延時(shí)相比 10GE 網(wǎng)絡(luò)僅為其 5~10%。明顯可見,25GE RoCE 網(wǎng)絡(luò)大大提升了分布式存儲(chǔ)的吞吐,也極好的降低了系統(tǒng)延時(shí)。在相同環(huán)境下,25GE 網(wǎng)絡(luò)順序讀寫的帶寬也是 10GE 網(wǎng)絡(luò) 2.2 倍以上,而延時(shí)則僅為 10GE 網(wǎng)絡(luò)的 5%左右。
圖 3. 順序讀寫帶寬對(duì)比
圖 4. 順序讀寫時(shí)延對(duì)比
圖 5. 隨機(jī)讀寫性能對(duì)比
圖 6. 隨機(jī)讀寫時(shí)延對(duì)比
結(jié)論與下一步展望
在相同高性能分布式存儲(chǔ)上,使用 25GE 網(wǎng)卡比使用傳統(tǒng)萬(wàn)兆以太網(wǎng)卡不僅有更高的IOPS 和 IO 吞吐量,特別是 IO 時(shí)延方面有明顯優(yōu)勢(shì)。本文驗(yàn)證了分布式存儲(chǔ)在核心生產(chǎn)系統(tǒng)部署的可行性、穩(wěn)定性及高性能。下一步的工作可以結(jié)合應(yīng)用來(lái)看,如何提升分布式存儲(chǔ)和應(yīng)用之間的貼合度,這是在電信生產(chǎn)系統(tǒng)中面臨的進(jìn)一步性能優(yōu)化問(wèn)題。此外 RoCE 技術(shù)在電信網(wǎng)絡(luò)其他領(lǐng)域的推廣也是一個(gè)值得探討的方向。
參考文獻(xiàn):
1. RoCE in the Data Center. http://www.mellanox.com/relateddocs/whitepapers/roce_in_the_data_center.pdf
2. Application Acceleration with Mellanox RDMA enabled Networking Solutions. http://www.mellanox.com/related-docs/solutions/RoCE_MSFT_StorageSpaces_SB.PDF
3. MySQL Database Acceleration over Mangstor Low latency Storage and Mellanox Low Latency Networking. http://www.mellanox.com/relateddocs/solutions/SB_Mangstor_MySQL.pdf
4. 海量數(shù)據(jù)分布式存儲(chǔ)技術(shù)的研究與應(yīng)用, 李存琛, 2013, 北京郵電大學(xué).
5. 基于云計(jì)算的分布式存儲(chǔ)系統(tǒng)的研究和應(yīng)用, 劉飛, 2012, 西安工業(yè)大學(xué).