摘要:本文從四個方面闡述了BoostKit鯤鵬全局緩存技術,該技術針對Ceph開源存儲方案存在的痛點,採用三大創新技術,有效的提高了Ceph的性能,最高可以將Ceph性能提升10倍。
本文分享自華爲雲社區《【雲駐共創】BoostKit鯤鵬全局緩存技術助力Ceph性能提升10倍,真香》,作者:碼農飛哥。
1. 存儲行業特點及挑戰
有統計數據顯示,企業應用每增加100ms存儲時延會造成1%的銷售損失。如下圖所示:
從21年到23年,關鍵業務的佔比從25%增加到60%,數據庫等中高負載業務從45%減少到15%,一般業務從 30%減少到25%。
對於關鍵業務一般使用的存儲類型是 增強型\極速SSD雲硬盤(全閃存),這種方式主要的痛點是 要求極致時延和IOPS SSD使用成本高。
對於數據庫等中高負載業務使用的存儲類型是超高IO雲硬盤(全閃存、均衡型SAS),這種方式的主要痛點是對性價比降低時延。
對於一般業務使用的是高IO雲硬盤(均衡型SATA)
1.1.Ceph開源存儲方案面臨的性能挑戰
Ceph開源存儲方案面臨的性能挑戰主要是: IOPS性能低,IO時延高。 而造成這種情況的原因主要有如下三個方面:
- IO請求流程多,線程切換開銷大
- IO處理流程長,隊列等待多,端到端時延高。
- IO隨機性大,磁盤帶寬利用率低。
IO的寫入流程是:
- Message 接受入隊
- 三副本數據處理
- 數據持久化
- 元數據持久化
- 資源釋放,響應完成。
我們可以看到一個完整的IO寫入流程包括了5大流程,流程真的很長。
那麼BoostKit鯤鵬全局緩存技術又是如何應對這些挑戰的呢?
2. 全局緩存創新與價值
BoostKit鯤鵬全局緩存技術主要有三大創新技術,通過三大創新技術可以實現存儲性能飛躍式提升。
- 緩存前後臺分離,縮短IO路徑
- IO聚合,實現磁盤帶寬性能
- 智能預取,提高讀緩存命中率。
下面我分別就這三大創新技術進行一個簡要的說明。
2.1. 緩存前後臺分離,縮短IO路徑
- 在計算側(前臺)重定向到全局緩存,讀寫IO請求直接在緩存中命中並實時反饋給上層應用。
- 全局緩存的IO數據異步下刷到後端存儲側(後臺)或提前預取數據到全局緩存
其實現流程如下圖所示:
從圖中可以看出讀IO和寫IO都是在全局緩存中實現的。
寫IO首先將數據寫入緩存中,然後異步下刷到磁盤中。
異步IO批量預取提前命中,異步數據預取,讀IO直接從緩存中取數據。
這樣做的好處就是 提高了異步刷盤速率,保證寫緩存100%命中,降低寫時延。
提高預取準確率,加大緩存容量,保證讀緩存80%命中,降低讀時延。
如下圖所示:展示了緩存前後臺的具體實現。
- 流程解耦:寫緩存刷盤,讀緩存淘汰無需互斥,可靈活控制各自水位。
- 資源解耦:讀寫緩存併發,Quota資源等解耦,避免相互影響。
- 介質類型解耦:讀寫緩存可分爲管理異構緩存介質(RAM,NVMeSSD),實現介質分離。
- 冗餘策略優化:讀cache使用單副本,提高cache空間利用率,寫cache使用三副本,保證數據可靠性。
2.2. IO聚合,實現磁盤帶寬性能
- IO聚合:通過聚合算法,回寫策略和垃圾回收等能力,實現隨機寫小IO聚合成順序寫大IO,實現磁盤帶寬的利用率,使性能得到大幅提升。
- 按需讀取:從元數據中獲取小IO映射關係,下盤讀取小IO數據,無讀放大。
- 通過高效的索引算法和數據排列,僅提高有效數據塊,並和新寫入的數據進行IO聚合,減少IO開銷和降低垃圾對業務的影響。
具體實現如下圖所示:
2.3. 智能預取,提高讀緩存命中率
基於創新的負載識別算法,識別不同應用訪問Pattern(如流式、關聯、熱點等),並通過歸一化特徵模型制定最優參數(預取門限,長度等),實現80%以上緩存命中率和2倍+讀性能提升。
如下圖所示:展示了智能預取分離技術架構:
這裏主要有兩個技術
- 雙引擎分離:創新性的Client端推薦引擎+Server端執行引擎分離的智能預取架構。
- 全局精準推薦:推薦引擎擁有全局數據訪問視圖,從而進行全局精準推薦。
3. 全局緩存功能介紹
3.1. 全局緩存技術的整體架構
說完了全局緩存的創新點之後,接下來讓我們來看看全局緩存的各個核心功能。
全局緩存技術的整體架構如下圖所示:
可以用三橫+兩縱來總結全局緩存技術框架。
三橫:客戶端集羣、緩存集羣、存儲集羣
兩縱:讀寫路徑分離雙驅加速的邏輯佈局。
- 寫緩存:數據寫入、刪除功能、保證Cache前後臺寫低時延、
- 讀緩存:數據讀取功能,數據預取和淘汰、保證高Cache命中。
- 元數據管理:高性能元數據管理引擎、小IO聚合、垃圾回收
- 集羣管理:集羣管理、運行狀態管理,故障處理框架。
- 持久化:數據持久化存儲,三副本資源池,介質管理。
- 適配層:對接開源Ceph存儲,終結Ceph語義。
- 基礎設施:系統啓動、內存管理、日誌、命令行、系統調度。
3.2. 全局緩存功能規格一覽
1. 高性能
支持單節點 14W IOPS,1ms時延。
2. 集羣兼容性
- 提供無侵入式接口API支持主流ceph集羣接入
- 支持塊存儲服務,對象存儲服務
- 支持快照及克隆功能
- 支持鯤鵬平臺硬件,openEuler,RedHat系統
3. 可靠性
- 數據持久化存儲防掉電丟失。
- 數據三副本以節點域存儲,防止單點故障。
- 支持集羣故障自動檢測,自動故障切換和恢復。
4. 安全性
- 數據通道和管理通道默認支持TLS1.3 安全傳輸
5. 擴展性
- 支持按需增加緩存節點擴展緩存規模
- 支持在線升級
- 數據持久化存儲防掉電丟失
- 數據三副本以節點域存儲,防止單點故障
- 支持集羣故障自動檢測,自動故障切換和恢復。
4. 全局緩存使用介紹
說完了那麼多BoostKit鯤鵬全局緩存技術的功能和好處,那麼如何使用BoostKit鯤鵬全局緩存呢?
首先找到用戶指南,指南地址是:https://support.huawei.com/enterprise/zh/doc/EDOC1100228002?idPath=23710424%7C251364417%7C9856629%7C253662285
按照用戶指南一步步去操作使用吧!!!!
總結
本文從四個方面闡述了BoostKit鯤鵬全局緩存技術,該技術針對Ceph開源存儲方案存在的痛點,採用三大創新技術,有效的提高了Ceph的性能,最高可以將Ceph性能提升10倍。如下圖所示: