Ceph是什麼
- Ceph是一種分布式存儲系統,所謂分布式,指的是Ceph可以部署在多台伺服器上,通過多台伺服器并行處理來對外提供高性能的讀寫塊。
- 同時Ceph除了能提供塊存儲,還可以提供檔案存儲、對象存儲。
Ceph的優勢
- Ceph的優勢在于它的設計思想:無需查表,算算就好。也就是說它可以充分利用伺服器的計算能力,消除了對單一中心節點的依賴,可以實作真正的無中心結構
- 這樣Ceph的可靠性和可擴充性都很強,而且用戶端通路延遲也比較少。
- Ceph在OpenStack開源社群中備受重視。
- OpenStack是現在最為流行的開源雲作業系統,目前Ceph已經成為OpenStack中呼聲最高的開源存儲方案之一。
Ceph的産生和發展
Ceph的設計思想
Ceph的應用場景
- 首先是存儲規模是會變的。也就是可以根據業務的規模擴充存儲的容量。
- 存儲的裝置會變。我們使用的不是高可靠性的小機,而是可能發生故障的x86伺服器,是以極有可能某個節點發生故障,那麼需要在軟體層面進行保障。
-
存儲資料也會變。也就是,需要考慮到存儲的資料可能被增删讀寫,而不是一層不變的。
Ceph最初的目标場景是大規模、分布式存儲系統,它希望能應對存儲容量會變(動态的),同時可以對資料進行快速的增删讀寫的場景,而且底層的硬體主要使用廉價的X86伺服器,使用上層軟體來保證可靠性。
針對這種場景,Ceph應具有
高可靠性:
- 首先存儲在裡面的資料不會丢失,同時資料在寫入的時候,需要保證原子性。
- 另外因為資料會經常遷移,而且故障了以後會有恢複的過程,我們希望Ceph能自動完成這些工作,而不需要人為參與。
高擴充性:
- 就是希望節點數增加了,資料的通路帶寬也線性增加,不能是節點增加了很多,性能增加不明顯
Ceph的設計思路
-
充分發生節點的計算能力
也就是用算來代替找,這就有對象存儲的思想了。
-
去中心化。
我們知道分布式架構一般可以分為有中心的非對稱架構和無中心對稱架構兩種。
非對稱架構有Master和Slave之分,Master一般存放了資料塊與實際節點的映射關系,是以用戶端會先向Master查找資料塊存放的位置, 然後再通路Slave。
-
這樣的好處是簡單,缺點是Master節點會出現單點故障,而且也會成為性能瓶頸。
而對稱節點中每個節點的地位相同,都儲存了全局的映射關系,是以它們會花大量的功夫來進行映射關系的同步,不利于擴充。Ceph則使用了更創新的方法來解決這個問題。
對于一個分布式系統,它最關鍵的要解決兩個問題:
“寫的問題”,也就是把資料寫到什麼地方。
寫的方法合不合理,要看最終的資料分布是否均勻,這又會進一步影響到節點的通路速度等
“讀的問題”,應該從哪裡去讀。
因為讀的機率遠大于寫,是以能否高效準确的找到之前存放的資料在哪裡,也是存儲的系統應該考慮的非常重要的問題。
Ceph的創新在于,不再使用查表的尋址方式,而是使用計算的方式。也就是一個用戶端隻需要使用少量的本地中繼資料,就可以計算出存儲位置。這就是Ceph最關鍵的地方。
也可以參見簡書首頁:https://www.jianshu.com/u/482f183ec380