杉巖數(shù)據(jù)智能緩存技術(shù)AgileCache亮相2018 Ceph亞太峰會
2018年3月22日-23日,由Ceph中國社區(qū)主辦的首屆Ceph亞太峰會 —— Cephalocon APAC 2018 在北京JW萬豪酒店盛大開幕,此次活動受到各界廣泛關(guān)注,大會首日吸引近千名現(xiàn)場及在線觀眾。
近年來,軟件定義存儲技術(shù)快速發(fā)展和應(yīng)用,Ceph迎來了新的發(fā)展機(jī)遇,從社區(qū)走向商用,一次次的實踐在證明:Ceph已完全適用于大規(guī)模的企業(yè)應(yīng)用和政務(wù)應(yīng)用。此次大會上,杉巖數(shù)據(jù)統(tǒng)一存儲產(chǎn)品總監(jiān)花瑞應(yīng)邀出席并帶來了主題分享《基于Ceph BlueStore的杉巖智能緩存技術(shù) AgileCache》,接下來詳細(xì)為大家揭秘SandStone AgileCache。
為什么要推出SandStone AgileCache
傳統(tǒng)高性能SSD Cache方案大多基于內(nèi)核態(tài)實現(xiàn),著名的方案有bcache、dm-cache、flashcache等,這些緩存技術(shù)通常對工作在用戶態(tài)的應(yīng)用程序暴露出的是通用塊設(shè)備,應(yīng)用程序只能通過標(biāo)準(zhǔn)的file operation訪問混合盤塊設(shè)備,緩存策略方面只能從數(shù)據(jù)的冷熱程度這一個維度去實現(xiàn)。
在Ceph中如何更加高效合理地利用SSD緩存資源是一個很值得探討的問題,大部分場景下,在OSD層給ObjectStore做加速是業(yè)界普遍采用的方案,即將OSD直接創(chuàng)建在經(jīng)過內(nèi)核Cache軟件虛擬化出來的塊設(shè)備混合盤上。用戶態(tài)與內(nèi)核態(tài)的天然屏障使得工作于內(nèi)核態(tài)的Cache模塊無法感知工作在用戶態(tài)的OSD各種IO,比如:副本數(shù)據(jù)寫IO、集群恢復(fù)流量的寫IO、不同RBD卷的IO,也就無法做比較細(xì)粒度的緩存資源管理與控制。
技術(shù)創(chuàng)新的背后經(jīng)歷了什么
針對上面提到的問題,杉巖研發(fā)團(tuán)隊一開始評估過在***的BlueStore中開發(fā)一個用戶態(tài)的SSD Cache來解決,但是通過分析發(fā)現(xiàn),這個工作量并不小,而且在已經(jīng)比較復(fù)雜的BlueStore的IO路徑上增加一個支持WriteBack模式的Cache功能,嚴(yán)重增加了BlueStore的復(fù)雜度,在代碼可維護(hù)性及功能穩(wěn)定性方面都是一個比較大的挑戰(zhàn),更重要的是,這樣開發(fā)出來的帶有Cache功能的ObjectStore與Ceph社區(qū)的方向是背道而馳的,社區(qū)之所以在設(shè)計BlueStore之初不考慮加入SSD Cache功能,其中一個原因就是混合存儲畢竟只是一個過渡,全閃存會成為未來的主流。
那么怎樣以經(jīng)濟(jì)高效的方式實現(xiàn)一個能夠感知Ceph集群內(nèi)部各種數(shù)據(jù)類型的SSD Cache呢?杉巖的AgileCache給出了***的答案。SandStone AgileCache是一個Cache框架,兼容主流的內(nèi)核態(tài)Cache,在Cache模塊之上,引入了杉巖自研的內(nèi)核態(tài)direct-io模塊,負(fù)責(zé)將用戶態(tài)的數(shù)據(jù)類型標(biāo)記下傳到內(nèi)核Cache層,這種從用戶態(tài)往內(nèi)核態(tài)Cache傳遞IO標(biāo)記的方法我們稱之為“cadvise”。
SandStone AgileCache技術(shù)實現(xiàn)架構(gòu)圖
有了“cadvise”標(biāo)記,我們就打通了Cache的“任督二脈”,使得Cache可根據(jù)標(biāo)記完全區(qū)分OSD的各種數(shù)據(jù)類型,比如BlueFS下來的數(shù)據(jù),我們統(tǒng)一標(biāo)記成BlueStore的METADATA,優(yōu)先緩存;集群內(nèi)部的恢復(fù)流量,我們可標(biāo)記成DONTNEED,提示Cache模塊不緩存直接寫到后端HDD盤,預(yù)留出寶貴的SSD資源。
SandStone AgileCache為企業(yè)用戶帶來的價值
SandStone AgileCache技術(shù)打破了用戶態(tài)與內(nèi)核態(tài)的之間的天然屏障,不僅擁有傳統(tǒng)SSD Cache的所有優(yōu)點,還可以感知分布式存儲集群內(nèi)部各種數(shù)據(jù)類型,并針對不同的數(shù)據(jù)類型采用不同的臟數(shù)據(jù)刷盤策略,以及不同的緩存數(shù)據(jù)回收策略,從而實現(xiàn)對緩存資源更細(xì)粒度的利用,降低企業(yè)用戶TCO。
此外,杉巖還開發(fā)了基于AgileCache智能緩存的卷優(yōu)先級管理功能,針對不同的卷可以設(shè)置高、中、低三個優(yōu)先級,高優(yōu)先級的卷全部緩存在SSD中,中優(yōu)先級的卷只有部分熱點數(shù)據(jù)緩存在SSD,較冷的數(shù)據(jù)保存在HDD中,低優(yōu)先級的巻則不緩存,數(shù)據(jù)全部保存在HDD。企業(yè)用戶只需搭建一套混合集群,就能擁有全閃、混合、全HDD三種性能模式的卷,自動切換,保障業(yè)務(wù)的服務(wù)質(zhì)量。目前,SandStone AgileCache已經(jīng)應(yīng)用于杉巖數(shù)據(jù)軟件定義存儲全線產(chǎn)品,服務(wù)于各種規(guī)模的存儲集群。