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