近年來數字化轉型成為各行各業的熱詞。行業數字化轉型基于計算、存儲、傳輸、數字傳感、行業軟體等一系列IT技術打通業務全流程,重新定義業務場景、業務關系和業務參與人,進而提高資源使用率,加強突發反應能力,提升整體業務效率。
對于國産晶片而言,除了制造這一大“硬挑戰”外,由于國産晶片特性存在差異,在軟體生态上,也存在着行業軟體适配國産晶片的“軟挑戰”。
然而,各類企業适配軟體生态的能力參差不齊,通過向企業提供IT技術與服務,以天翼雲為代表的雲服務商正不斷完善國産晶片的軟體生态。下面一起來看看天翼雲bcache(塊緩存)是如何适配國産晶片,助力應對“軟挑戰”的。
bcache是什麼?
存儲,是數字化轉型的IT資料倉庫。全球行業數字化轉型催生出巨大的存儲需求,據國際資料公司IDC預測,到2025年全球資料總量将達175ZB,是以,企業需要高性能的存儲解決方案來應對強勁的存儲需求。但在存儲領域,高性能則意味着機關容量價格高,進而導緻使用成本增加;機關容量價格低則意味着性能無法滿足需求。
如何在高性能和高成本之間折中?存儲業界認為:大部分業務系統的IO模型都滿足局部性原理,是以使用小容量的高速儲存設備作為大容量低速儲存設備的緩存是一種解決方案,在某些業務場景下可以同時滿足高性能和低機關容量價格的需求。
bcache (block cache) 就是一種塊緩存存儲加速解決方案,包含Linux核心中的通用塊層的驅動子產品和使用者态工具。它允許一個高速的塊裝置作為一個或多個慢速塊裝置的緩存,是一種可以提升慢速塊裝置性能的存儲加速解決方案。下圖是使用SSD作為HDD緩存的塊裝置加速解決方案架構圖:
bcache運作在國産晶片上的痛點
bcache在Linux核心的3.10版本已進入Linux核心主線,不過在2021年11月之前,在不支援4K分頁的國産CPU伺服器上使用bcache,雖然attach裝置指令成功,但是顯示cache裝置和主裝置沒有聯系,重新開機後bcache盤丢失。如下示範了64K PAGE_SIZE下使用bcache遇到的問題現象:
1.getconf PAGE_SIZE擷取系統的PAGE_SIZE為64K
2.格式化主儲存設備
3.格式化cache裝置
4.bcache映射關系顯示異常
5.lsblk指令顯示正常
6.重新開機後bcache裝置消失
天翼雲bcache如何解決痛點
我們以某國産CPU上運作Linux 4.19核心版本為基礎,描述天翼雲bcache如何解決上述痛點,進而為完善國産晶片的軟體生态添磚加瓦。
01
分析原因
天翼雲分析了bcache、buffer_head、pagecache後,發現了社群版本的問題所在:社群版本在64K page使用核心pagecache中的page時,出現偏移錯誤,導緻一旦出現超級塊的更新(如attach)操作,pagecache中的資料将和磁盤中的資料不一緻,進而出現“丢失bcache裝置特征——magic資訊”的情況,導緻重新開機後bcache裝置丢失。
02
天翼雲解決方案
2021年11月,天翼雲研發團隊在分析清楚了bcache、buffer_head和pagecache三者之間的關系後,解決了不支援4K分頁的國産CPU伺服器重新開機後bcache裝置丢失的問題,方案如下:
03
同步社群後形成解決方案
2022年10月5日,Linux核心從long term版本5.10.147開始,解決了不支援4K分頁的國産CPU伺服器重新開機後bcache裝置丢失的問題,可以backport Linux核心社群的解決方案,如下:
天翼雲bcache目前已适配多款國産CPU,如龍芯CPU、兆芯CPU、海光CPU、飛騰CPU、Kunpeng CPU等,實作IO性能和x86架構的CPU性能持平,為使用國産CPU承載IT系統的客戶提供了成本效益更高的存儲産品選擇。
同時,天翼雲bcache優化了社群bcache性能歸零和長時間運作碎片等多方面的短闆,性能提升超過20%。經過天翼雲存儲團隊的分析和調整,基于Linux 4.19核心,3節點ceph,128并發,8KB,100%寫,随機IO,IOPS提升超過20%,平均時延從4.9ms降至3.5ms,客戶體驗明顯提升。
bcache性能對比圖
未來,天翼雲将繼續堅持科技創新,加大關鍵核心技術自主攻關,推進國産軟硬體産品更新,以安全可信、自主可控的新一代雲計算基礎設施底座,助推中國數字經濟高品質發展。