深度解析SSD在ceph中的幾種應(yīng)用場景
在云計算和大數(shù)據(jù)趨勢下,企業(yè)數(shù)據(jù)存儲和虛擬化應(yīng)用需求海量增長。基于業(yè)界標準X86服務(wù)器,采用全分布式無共享(Share Nothing)架構(gòu)的分布式存儲系統(tǒng),憑借其自身高可靠、高擴展、低成本的優(yōu)勢,得到了越來越廣泛的應(yīng)用。其中,Ceph因其自身先進的架構(gòu),活躍的社區(qū)成為了Server SAN領(lǐng)域的翹楚。但低成本并不是Server SAN唯一的發(fā)展方向,市場上也同樣亟需高性能的Server SAN產(chǎn)品。
另一方面,近幾年來SSD發(fā)展迅速,技術(shù)不斷地成熟,容量及密度越來越大,價格越來越低,但其“容量價格比”相較于HDD仍有一定差距,SSD全面取代HDD仍需時日。
基于以上現(xiàn)狀,討論SSD與Ceph的融合應(yīng)用,使用高速但少量的SSD來滿足關(guān)鍵性業(yè)務(wù)或IO敏感型業(yè)務(wù)對性能的需求,達到成本與性能的平衡,對生產(chǎn)實踐有著重要的意義。
本文總結(jié)了Ceph集群中使用SSD的幾種典型場景,作出了比較,并給出了推薦的使用方式:
1.作為Ceph-osd的日志盤使用
假設(shè)磁盤正在執(zhí)行一個寫操作,此時由于發(fā)生磁盤錯誤,或者系統(tǒng)宕機、斷電等其他原因,導(dǎo)致只有部分數(shù)據(jù)寫入成功。這種情況就會出現(xiàn)磁盤上的數(shù)據(jù)有一部分是舊數(shù)據(jù),另一部分是新寫入的數(shù)據(jù),使得磁盤數(shù)據(jù)不一致。
Ceph引入事務(wù)與日志,來實現(xiàn)數(shù)據(jù)寫盤操作的原子性,并解決數(shù)據(jù)不一致的問題。即所謂的“ceph數(shù)據(jù)雙寫”:先把數(shù)據(jù)全部封裝成一個事務(wù),將其整體作為一條日志,寫入ceph-osd journal,然后再把數(shù)據(jù)定時回刷寫入對象文件,將其持久化到ceph-osd filestore中。
基于以上過程,可以將SSD作為ceph-osd journal的底層存儲設(shè)備,來加速寫入性能。同時,由于SSD設(shè)備IO性能較高,可以將SSD劃分成多個分區(qū),以配比多個HDD設(shè)備使用。
該方案的優(yōu)點
該方案的優(yōu)點為使用高速的SSD設(shè)備加速ceph-osd journal的寫入性能,尤其是對小塊數(shù)據(jù)隨機IO的場景,加速效果尤為明顯。
該方案的缺點
該方案的缺點為由于ceph-osd journal在實現(xiàn)邏輯上具有循環(huán)寫入、定期回刷的特性,其對SSD設(shè)備容量空間的利用率很低。典型場景下,SSD設(shè)備與HDD設(shè)備的配比為1:4,而每塊HDD設(shè)備一般只使用10GB的SSD設(shè)備分區(qū),造成了SSD設(shè)備容量空間的浪費。
2.作為Ceph數(shù)據(jù)多副本中的主副本存儲介質(zhì)使用
Ceph使用多副本機制來保證數(shù)據(jù)的安全性。
針對于寫操作,在多份副本之間,ceph使用強一致性寫策略,來保證數(shù)據(jù)的一致性。Ceph的PG(Placement Group)依據(jù)Crush偽隨機算法,選擇出副本數(shù)個數(shù)的ceph-osd存放數(shù)據(jù),其中PG中的第一個osd為主osd,其他osd為從osd。Ceph先在主osd寫入數(shù)據(jù)主副本,再由主osd將數(shù)據(jù)同時分發(fā)至其他多個從osd,進行數(shù)據(jù)從副本的寫入。
針對于讀操作,ceph的讀取請求只在主副本所在osd進行。
基于以上過程,可以將SSD作為數(shù)據(jù)多份副本中的主副本底層存儲介質(zhì)使用,來加速IO讀寫性能。
該方案的優(yōu)點
該方案的優(yōu)點為利用SSD設(shè)備高性能優(yōu)勢,對于寫操作,縮短了數(shù)據(jù)第一份副本的寫入執(zhí)行時間;對于讀操作,全部請求操作SSD設(shè)備,讀請求能夠快速處理并返回。
該方案的缺點
該方案的缺點為由于集群副本數(shù)的限制,SSD設(shè)備的容量空間必須與HDD設(shè)備容量空間有嚴格的配比關(guān)系。否則,由于木桶原理,一方先被寫滿,另外一方剩余的存儲空間就無法再被ceph使用,從而出現(xiàn)存儲容量空間的浪費。
3.構(gòu)建小規(guī)模全SSD邏輯池單獨使用
該方案的優(yōu)點
該方案的優(yōu)點為充分利用SSD設(shè)備高性能的優(yōu)勢,將關(guān)鍵性業(yè)務(wù)或者IO敏感型業(yè)務(wù)全部放入高性能存儲池,為客戶提供性能優(yōu)越的存儲服務(wù)。
該方案的缺點
該方案的缺點為受到成本限制,高性能存儲池存儲容量規(guī)模會比較小,只能針對性地對少數(shù)關(guān)鍵性業(yè)務(wù)或者IO敏感型業(yè)務(wù)進行服務(wù)質(zhì)量保障,且業(yè)務(wù)一經(jīng)規(guī)劃部署至某個存儲池后,不能在兩個存儲池之間進行自動轉(zhuǎn)換,后期進行調(diào)整開銷較大。
4.作為Cache層使用
可以將SSD作為Cache層,自動地對冷、熱數(shù)據(jù)進行分層存儲,來達到對業(yè)務(wù)智能服務(wù)的目的。
在數(shù)據(jù)的不同生命周期里,其訪問的頻度截然不同,即使是在同一生命周期的不同類型的數(shù)據(jù),其訪問的頻率也會不同。因此,在“信息生命周期管理”的基礎(chǔ)上對數(shù)據(jù)進一步進行分層存儲十分必要。
自動分層存儲技術(shù)的目標在于把用戶訪問頻率高的數(shù)據(jù)放置在高性能、小容量的存儲介質(zhì)中,把大量低頻訪問的數(shù)據(jù)放置在大容量、性能相對較低的存儲介質(zhì)中。在提供熱點數(shù)據(jù)存儲性能的同時,降低存儲成本:首先,冷數(shù)據(jù)可以自由安全地遷移到更低層的存儲介質(zhì)中,這樣可以節(jié)約存儲成本;其次,熱點數(shù)據(jù)可以自動的從低層存儲層遷移到高層存儲層,提高訪問熱點數(shù)據(jù)的性能。
在ceph中,有以下兩種實現(xiàn)方案:
(1)作為Ceph Cache Tiering技術(shù)中的Cache層
在Ceph里,Cache Tiering模塊在邏輯存儲池層面進行設(shè)置。可以將一個邏輯存儲池設(shè)置為另一個邏輯存儲池的cache層。據(jù)此,可以用SSD設(shè)備組建熱數(shù)據(jù)存儲池作為緩存層,用HDD設(shè)備組建冷數(shù)據(jù)存儲池作為存儲層,來達到冷、熱數(shù)據(jù)分離的目的,Cache Tiering模塊處理緩存層和存儲層之間數(shù)據(jù)的自動遷移,對應(yīng)用而言,遷移操作透明、無感知。
該方案的優(yōu)點
該方案的優(yōu)點為可以充分地利用SSD設(shè)備高性能以及HDD設(shè)備大容量的優(yōu)勢,智能地對冷、熱數(shù)據(jù)進行分層存放。
該方案的缺點
該方案的缺點為ceph在cache tiering模塊的邏輯實現(xiàn)尚在驗證階段,暫時不建議生產(chǎn)環(huán)境使用。
(2)與HDD設(shè)備綁定作為混合盤的Cache層
在通用塊層將SSD設(shè)備與HDD設(shè)備進行綁定,提供一個邏輯上的device-mapper層塊設(shè)備,該邏輯設(shè)備的數(shù)據(jù)IO首先發(fā)生在SSD設(shè)備上,再定期回刷至HDD設(shè)備中。邏輯設(shè)備內(nèi)部維護冷、熱數(shù)據(jù)在緩存層與存儲層之間的自動遷移,且對應(yīng)用透明、無感知。使用這些邏輯上的混合盤作為ceph-osd的底層存儲設(shè)備,構(gòu)建存儲集群,同樣可以達到集群層面數(shù)據(jù)自動分層存儲的效果。
該方案的優(yōu)點
該方案的優(yōu)點同樣為可以充分地利用SSD設(shè)備高性能以及HDD設(shè)備大容量的優(yōu)勢,智能地對冷、熱數(shù)據(jù)進行分層存放,且不涉及ceph代碼邏輯的修改,底層邏輯設(shè)備的組建及數(shù)據(jù)處理過程對ceph而言完全透明。
該方案的缺點
該方案的缺點為架構(gòu)稍顯復(fù)雜,需要更多的管理、維護開銷。
推薦使用方式
綜上,當(dāng)前階段較為推薦的使用方式為結(jié)合方案1與方案4,即將SSD設(shè)備同時用作日志緩存與數(shù)據(jù)緩存使用。
以典型的SATA 3.0的SSD設(shè)備為例,先將SSD設(shè)備進行多個分區(qū),配比多塊HDD設(shè)備,其中SSD的部分分區(qū)先與HDD設(shè)備進行混合存儲邏輯塊設(shè)備的構(gòu)建,生成的混合盤再與SSD的剩余分區(qū)進行配對,共同構(gòu)成ceph-osd的file store以及file journal。
這種使用方式,可以最大化地利用SSD設(shè)備的性能與容量,為ceph集群的全部業(yè)務(wù)應(yīng)用提供普適性、智能化的存儲服務(wù),達到性能與成本的平衡。