揚州萬方:基於申威平臺的 Curve 塊儲存在高效能和超融合場景下的實踐

語言: CN / TW / HK

背景

揚州萬方科技股份有限公司主要從事通訊、計算機和伺服器、智慧車輛、基礎軟體等產品的科研生產,是國家高新技術企業、專精特新小巨人企業、國家火炬計劃承擔單位。

業務介紹

申威處理器是在國家“核高基”重大專項支援下、由國家高效能積體電路(上海)設計中心自主研發,採用自主指令集,具有完全自主智慧財產權的處理器系列。當前主流的申威3231處理器是基於第三代“申威 64” 二次優化版核心的國產高效能多核處理器,主要面向高效能運算和高階伺服器應用。申威3231採用 CC-NUMA 多核結構和 SoC 技術,單晶片集成了32個64位 RISC 結構的申威處理器核心、8路DDR4儲存控制器介面、40lane的PCI-E 4.0標準I/O介面以及3路直連線口,最高工作頻率可達2.5GHz。

2018年至今,萬方科技基於申威系列處理器研製了面向海量儲存、高密度儲存、全快閃記憶體儲等多種需求的多型別儲存系統,大量採用了基於 Ceph 的分散式統一儲存技術。在隨後的生產環境使用維護中,Ceph 在效能一致性、執行穩定性、故障修復能力等方面的表現不盡如人意,並且複雜的 IO 處理流程、資料放置及遷移機制、龐大的程式碼規模等增加了使用運維成本。同時,我們也持續關注儲存的技術生態,有意向另闢蹊徑,探索新型的儲存技術,改善目前儲存產品的不足。在深入調研了 Curve 的技術架構、應用成熟度、社群背景的基礎上,決定在申威硬體平臺上適配、試用 Curve 技術,主要的試用場景包括高效能塊儲存、超融合等。

應用實踐

Curve適配的申威平臺,由於申威3231處理器採用自主申威指令集,因此需要使用申威平臺的 gcc 對 Curve 進行重新編譯。

Curve 的移植適配需要解決的核心問題是 brpc 的編譯,brpc 採用 M:N 的執行緒模型,為了進一步優化效能,在原子操作、使用者態上下文切換等部分使用了與處理器平臺強關聯的組合語言,我們使用申威的彙編指令重寫了這兩部分內容,並且優化了申威平臺非對齊訪問記憶體的相關程式碼。

高效能塊儲存場景實踐,高效能是 Curve 的主要特點之一,而在業務層面,高效能塊儲存是支撐資料庫等效能型應用的關鍵。在 Ceph 儲存技術的實際應用中,我們大量使用了 NVMe 快閃記憶體盤,通過 bcache 快取方案提升機械盤的儲存效能。

對於高效能塊儲存場景,我們採用全 NVMe 快閃記憶體方式構建 Curve 叢集。

為了充分發揮NVMe快閃記憶體效能,我們基於SPDK技術重構Chunkserver的Ext4 filepool。與當前社群中所採用的 Polarfs+SPDK 的方式不同,我們使用 SPDK blobstore 實現 Chunkserver 的底層儲存邏輯。

這種方案需要注意的點是:SPDK blobstore 不存在目錄的概念,只支援blob讀寫,不支援目錄操作及檔案命名等功能。為了儘量減少對於 Chunkserver 上層邏輯的修改,我們仍然使用 Chunkserver 既有的目錄結構,但 filepool 中的檔案不再用於儲存真實使用者資料,而是記錄blob id,用於將Ext4檔案系統中的檔案關聯到對應的 SPDK blob,目錄操作、檔案命名等功能仍然沿用Ext4檔案系統的相關操作介面,從而實現基於 SPDK blobstore 的資料儲存。

經過相關改造,在3節點 * 3塊NVMe快閃記憶體盤、萬兆網路互聯的申威3231儲存伺服器叢集上,單個NBD盤IOPS達到32K。

超融合場景實踐,萬方科技的超融合產品採用混閃的硬體儲存架構,並基於 Kubernetes 統一管理容器及KVM虛擬機器。

由於超融合產品需要適應大容量、高效能等不同的儲存場景,因此需要 Curve 滿足同一物理池中支援不同型別儲存介質的需求,為實現這一需求,我們為 chunkserver 增加了儲存介質型別的屬性,並在邏輯池建立時通過配置儲存介質型別匹配 chunkserver 並建立 copyset,從而使得邏輯池的物理儲存空間在指定型別儲存介質上進行分配。

另一方面,為了實現 Kubernetes 對於傳統 KVM 虛擬機器的統一管理,以容器方式執行 KVM 虛擬機器,並使用 Curve 的 CSI 介面為 KVM 虛擬機器提供虛擬磁碟,Curve 為虛擬機器的容器化執行提供了穩定、高效能的儲存服務。

後續規劃

結合 Curve 及萬方科技相關產品的發展規劃,後續工作將會集中在兩個方面:

  1. CurveFS 在申威平臺的適配、驗證;
  2. 結合社群的 SPDK+RDMA 塊儲存效能優化方案,探索 NVMe 全快閃記憶體儲的效能優化。

作者簡介: 楊陽,博士,先後就職於中船重工第七一六研究所、阿里雲端計算有限公司,目前擔任揚州萬方科技股份有限公司研發中心主任,主要工作方向集中在分散式儲存、雲端計算、大資料等領域,並長期關注國產自主可控領域的技術發展。