摘要:為解決福建電信數(shù)據(jù)庫性能不足問題,本文從平臺架構的角度分析了硬件和軟件對性能的影響,創(chuàng)新地提出了使用遠端內存直接訪問技術(RDMA)構建云存儲平臺的思路。在標準以太網(wǎng)框架內,運行 RDMA over Converged Ethernet (RoCE),在云端數(shù)據(jù)庫上實現(xiàn)對非本地存儲的高速訪問,從而極大程度的提升了應用的吞吐。通過進一步的實驗和現(xiàn)網(wǎng)試運行驗證,該框架對于改善系統(tǒng)整體延時也有非常好的效果。 基于理論分析和實踐結果的互相論證,本文最后對于基于分布式存儲構建高性能數(shù)據(jù)庫云進行了總結,概括了其中的關鍵技術點,同時給出了可能存在的問題和下一步研究方向。
關鍵詞: RDMA, RoCE,分布式存儲,數(shù)據(jù)庫,網(wǎng)絡概述
伴隨著數(shù)據(jù)的指數(shù)級增長,給我們的生活帶來便利的同時,也給電信網(wǎng)絡帶來更高的壓力和需求。隨著數(shù)據(jù)中心流量的增加,許多平臺都迫切需要提高服務器和網(wǎng)絡帶寬。除此之外,數(shù)據(jù)中心還需要一種可以有效擴展以適應未來需要的產品,10GE 作為當前部署的主流帶寬在這方面已有些力不從心。在互聯(lián)網(wǎng)企業(yè)中,25GE 以太網(wǎng)逐步開始承載云平臺和關鍵業(yè)務,25GE 擁有 10GbE 無可比擬的帶寬優(yōu)勢,同時也具備極好的可擴展行來滿足未來節(jié)點數(shù)增長的需求。25GE 技術可在成本和功耗較低的情況下在單個通道中提供較高帶寬,從而提供更高的服務器和交換機端口密度。25GE 是一種新標準,可利用為 100GE 以太網(wǎng)(作為在四個光纜或銅纜對上運行的四個 25Gbps 通道 (IEEE802.3bj) 而實施)定義的技術。以 25GE 為基礎構建的解決方案可與 10GE、50GE、100GE 以及未來的 200GE 和 400 GE 產品向后和向前兼容,從而可確保適應未來解決方案的升級途徑。隨著高帶寬互連越來越普遍,網(wǎng)絡請求處理向 CPU 施加了沉重負擔。借助網(wǎng)卡端的卸載和交換端的流控技術(如 RoCE, PFC 和 ECN),可以實現(xiàn)高效率以便進一步提高 25GbE 網(wǎng)絡的性能。RDMA 使網(wǎng)絡適配器可以直接訪問應用程序緩沖區(qū),從而繞過內核、CPU 和協(xié)議堆棧,因此 CPU 可以在 I/O 傳輸進行期間執(zhí)行更有用的任務。這樣可提高服務器中的性能,從而使應用程序工作負載可以在高帶寬網(wǎng)絡中高效擴展。
存儲是除了 CPU 和網(wǎng)絡之外,影響系統(tǒng)性能極為關鍵的一環(huán)。客戶相關的各類數(shù)據(jù),網(wǎng)絡運行的日志和維護記錄等都需要通過存儲保存。傳統(tǒng)的 FC 存儲使用不同于標準以太網(wǎng)的 FC 網(wǎng)絡,而存儲介質以硬盤為主,對于當前大量的非結構化數(shù)據(jù)來說,單盤每秒能進行的書寫次數(shù)在 100 以內。要搭建高性能的系統(tǒng),一是要有能支持更高讀寫速度的介質,二是要有合適的協(xié)議能高效承載數(shù)據(jù),然后就是配套的網(wǎng)絡和 CPU 能滿足對應的性能要求。
根據(jù)國際權威機構 Wikibon 對未來存儲市場的預測,存儲市場整體穩(wěn)步增長。但傳統(tǒng)SAN/ NAS 存儲的市場占比則持續(xù)降低,Hyper-Scale Server SAN 和和企業(yè)級 Server SAN 等分布式存儲在 2021 年市場份額預計占比超過 80%,2026 年將超過 90%。決定分布式存儲的關鍵則是核心軟件和分布式的通訊互聯(lián)。

圖 1. 存儲市場預測當前的問題和解決思路
目前主要問題是越來越大的需處理數(shù)據(jù)量與傳統(tǒng)低速存儲的矛盾。要解決這一問題,在本文開頭的概述中我們提到需要更高性能的介質配合網(wǎng)絡和 CPU,以提升節(jié)點的性能并打造可擴展的系統(tǒng),應對日益增長的數(shù)據(jù)需求和性能要求。因此,福建電信探索通過 25G 網(wǎng)絡及 RoCE 技術,實現(xiàn)高效的分布式數(shù)據(jù)解決方案,解決當前數(shù)據(jù)倉庫的性能問題。
首先需要解決的是存儲的架構問題。在資源池化的大環(huán)境下,傳統(tǒng)存儲肯定無法繼續(xù)使用。出于海量數(shù)據(jù)本身的需求,為優(yōu)化不同節(jié)點對存儲的并行訪問性能,使用分布式存儲來解決問題是一個較好的思路。在分布式存儲系統(tǒng)中,如何提升存儲的遠端訪問性能,進而提升分布式存儲整體效率,這是一個挑戰(zhàn)。從協(xié)議的角度,可以使用 iSER 或 NVMF 等基于 RoCE 的訪問技術;從網(wǎng)絡的角度,更好利用網(wǎng)卡的卸載特性、以太網(wǎng)交換機的低延時、零丟包特性和先進的流控機制,能有效提高網(wǎng)絡效率并降低 TCO,進一步提升分布式存儲的性能和效率。
其次,對于使用哪種存儲介質能滿足高性能存儲的要求,筆者認為 NVMe SSD 擁有較好的隨機讀寫性能。且可以選擇 U.2 接口的 NVMe SSD,可支持熱插拔,也可根據(jù)需要實現(xiàn) RAID,以滿足存儲的高可靠性要求。由于單塊 NVMe SSD 的讀寫就需要高于 20Gb/S 的帶寬,25GE 網(wǎng)絡成為滿足存儲 IO 需求的起步配置。 然后,對于解決容量問題的需求,解決的思路是使用高速的 NVMe SSD 作為緩存,在之后使用大容量的硬盤來存儲冷數(shù)據(jù),這樣通過智能緩存加速 IO 讀寫,同時通過海量硬盤實現(xiàn)大容量。
在既定的分布式架構下,存儲性能的關鍵在于如何實現(xiàn)存儲訪問的加速。這個技術可以分為兩個方面,一方面是保證遠端存儲和本地存儲有近似的 IO 性能,另一方面是怎么樣通過硬件卸載來保證 CPU 不被過度占用進而影響存儲性能。之前提到的基于 RoCE 的網(wǎng)絡技術能非常好的實現(xiàn)這個存儲訪問的加速。
除上述問題之外,由于是分布式架構,網(wǎng)絡如何保證數(shù)據(jù)的完整性也是非常重要的。這里需要交換機和網(wǎng)卡端的配合來實現(xiàn)端到端的流控機制。如果硬件本身的可靠性和可用性都非常高,這也是對系統(tǒng)性能的一個有力保證。
采用以 Mellanox 為代表的高帶寬低延遲智能網(wǎng)絡和 RDMA/RoCE 技術能加速數(shù)據(jù)傳遞和高效無損無疑是構建分布式存儲網(wǎng)絡的關鍵之一。
方案框架

圖 2. 分布式存儲方案簡圖
基于上一章節(jié)的分析,此處給出實現(xiàn)分布式存儲的框架,用于數(shù)據(jù)庫云的承載。在圖2 中計算節(jié)點和存儲節(jié)點都連到 25GE 組網(wǎng)。無論計算節(jié)點還是存儲節(jié)點,都使用雙路25GE 捆綁替換原來的雙路 10GE 網(wǎng)絡。在前期實驗網(wǎng)絡中,共接入 27 個存儲節(jié)點,每個存儲節(jié)點配 4 塊 3.2T NVMe 硬盤。在云平臺之上承載容器化數(shù)據(jù)庫,根據(jù)應用的需要,可以擴展計算節(jié)點或存儲節(jié)點,以支持更高容量或更多用戶。由于方案側重遠端資源池化的實現(xiàn),因此我們的性能對比測試也主要針對不同網(wǎng)絡的場景。
o 網(wǎng)絡交換
在網(wǎng)絡交換上,我們選擇了業(yè)界低延時的存儲網(wǎng)絡交換機 Mellanox MSN2410,每臺MSN2410 能支持高達 48 個 25GE 接口,同時支持 8 個 100GE 接口。在提供可靠硬件和靈活的端口支持基礎長,MSN2410 能為分布式存儲提供無與倫比的網(wǎng)絡特性:
- 支持低至 300ns 的延時,且抖動小;
- 任意 64 字節(jié)及以上報文都能實現(xiàn)線速轉發(fā);
- 公平、可預測的端口資源分配保證最合理的帶寬使用;
在報文處理的細節(jié)方面,MSN2410 能夠通過其大緩存實現(xiàn)對于 Micro Burst 的最佳支持,同時先進的 ECN 標記方法和最快的 PFC 響應都能極好保證存儲數(shù)據(jù)無損到達對端。
Mellanox 交換機配置簡單,降低了安裝和管理高速網(wǎng)絡的復雜性,具有完善的監(jiān)控和管理功能,可以通過軟件實現(xiàn)監(jiān)測管理。
o RoCE 網(wǎng)卡
在數(shù)據(jù)不斷增長的環(huán)境中,所有數(shù)據(jù)的快速傳輸對于高效使用信息至關重要。基于遠程直接內存訪問 (RDMA) 的互連可為提升數(shù)據(jù)中心效率、降低整體復雜性以及提高數(shù)據(jù)交付性能提供理想選擇。RDMA 使數(shù)據(jù)可以從存儲傳輸?shù)椒⻊掌鳎鵁o需通過 TCP/IP 以太網(wǎng)的 CPU 和主內存路徑傳遞數(shù)據(jù)。可獲得更高 CPU 和整體系統(tǒng)效率,因為存儲和服務器的計算能力只用于計算(而不是處理)網(wǎng)絡流量。盡管高帶寬十分重要,但是如果沒有低延遲,帶寬就沒什么價值。通過網(wǎng)絡移動大量數(shù)據(jù)可以使用 TCP/IP 來實現(xiàn),但是只有 RDMA 才能實現(xiàn)低延遲,避免成本高昂的傳輸延遲。而且,RDMA 卸載可減少抖動,這意味著低響應時間的一致性顯著提高 RoCE 最終將 RDMA 技術引入基于以太網(wǎng)的數(shù)據(jù)中心,從而使這類數(shù)據(jù)中心可以受益于 RDMA 的低延遲。
Mellanox 從 ConnectX-4 系列網(wǎng)卡開始,可利用網(wǎng)卡中內置的基于管線的可編程 eSwitch 來快速處理虛擬化換將下的數(shù)據(jù)交互,ConnectX-4 Lx 可以在硬件中處理大部分數(shù)據(jù)包處理操作。這些操作包括 VXLAN 封裝/解封、基于一組通用 L2-L4 包頭字段的數(shù)據(jù)包分類、QoS 和訪問控制列表 (ACL)。在存儲方面,ConnectX-4 Lx 能支持 iSER 和 NVMf,此外,該網(wǎng)卡還能實現(xiàn)基于 VF 的限速機制以及糾刪碼的卸載,大大降低服務器與、網(wǎng)絡交換機和存儲節(jié)點之間的協(xié)調復雜性問題,提升服務質量。
性能對比
福建電信以 8 計算節(jié)點情形作性能測試,以衡量技術創(chuàng)新帶來的優(yōu)勢。在關鍵的 4K 隨機讀寫測試中,25GE RoCE 網(wǎng)絡的吞吐是 10GE 網(wǎng)絡的 9~14 倍左右,而延時相比 10GE 網(wǎng)絡僅為其 5~10%。明顯可見,25GE RoCE 網(wǎng)絡大大提升了分布式存儲的吞吐,也極好的降低了系統(tǒng)延時。在相同環(huán)境下,25GE 網(wǎng)絡順序讀寫的帶寬也是 10GE 網(wǎng)絡 2.2 倍以上,而延時則僅為 10GE 網(wǎng)絡的 5%左右。


結論與下一步展望
在相同高性能分布式存儲上,使用 25GE 網(wǎng)卡比使用傳統(tǒng)萬兆以太網(wǎng)卡不僅有更高的IOPS 和 IO 吞吐量,特別是 IO 時延方面有明顯優(yōu)勢。本文驗證了分布式存儲在核心生產系統(tǒng)部署的可行性、穩(wěn)定性及高性能。下一步的工作可以結合應用來看,如何提升分布式存儲和應用之間的貼合度,這是在電信生產系統(tǒng)中面臨的進一步性能優(yōu)化問題。此外 RoCE 技術在電信網(wǎng)絡其他領域的推廣也是一個值得探討的方向。
參考文獻:
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ù)分布式存儲技術的研究與應用, 李存琛, 2013, 北京郵電大學.
5. 基于云計算的分布式存儲系統(tǒng)的研究和應用, 劉飛, 2012, 西安工業(yè)大學.