在可靠性、安全性和可擴展性的聚焦下,集中式存儲存放了全部數據,存儲服務器成爲系統性能的瓶頸,不能知足大規模存儲應用的須要。分佈式存儲系統採用可擴展的系統結構,利用多臺存儲服務器分擔存儲負荷,不但提升了系統的可靠性、可用性和存取效率,還易於擴展。
算法
Ceph是當前很是流行的開源分佈式存儲系統,具備高擴展性、高性能、高可靠性等優勢,同時提供塊存儲服務(rbd)、對象存儲服務(rgw)以及文件系統存儲服務(cephfs),Ceph在存儲的時候充分利用存儲節點的計算能力,在存儲每個數據時都會經過計算得出該數據的位置,儘可能的分佈均衡。docker
集羣可靠性、集羣可擴展性、數據安全性、接口統一性、充分發揮存儲設備自身的計算能力、去除中心化後端
Ceph使用RADOS提供對象存儲,經過librados封裝庫提供多種存儲方式的文件和對象轉換。外層經過RGW(Object)、RBD(Block)、CephFS(File)將數據寫入存儲。安全
Monitor
一個Ceph集羣須要多個Monitor組成的小集羣,它們經過Paxos同步數據,用來保存OSD的元數據。負責監視整個Ceph集羣運行的Map視圖(如OSD Map、Monitor Map、PG Map和CRUSH Map),維護集羣的健康狀態,維護展現集羣狀態的各類圖表,管理集羣客戶端認證與受權;服務器
OSD
OSD是負責物理存儲的進程,通常配置成和磁盤一一對應,一塊磁盤啓動一個OSD進程。主要功能是存儲數據、複製數據、平衡數據、恢復數據,以及與其它OSD間進行心跳檢查,負責響應客戶端請求返回具體數據的進程等;架構
MDS
MDS全稱Ceph Metadata Server,是CephFS服務依賴的元數據服務。負責保存文件系統的元數據,管理目錄結構。對象存儲和塊設備存儲不須要元數據服務;分佈式
RBD
RBD全稱RADOS block device,是Ceph對外提供的塊設備服務。ide
RGW
RGW全稱RADOS gateway,是Ceph對外提供的對象存儲服務,接口與S3和Swift兼容。性能
Object
Ceph最底層的存儲單元是Object對象,每一個Object包含元數據和原始數據。簡單來講塊存儲讀寫快,不利於共享,文件存儲讀寫慢,利於共享。可否弄一個讀寫快,利 於共享的出來呢。因而就有了對象存儲。設計
PG
PG( placement group)是一個放置策略組,它是對象的集合,該集合裏的全部對象都具備相同的放置策略,簡單點說就是相同PG內的對象都會放到相同的硬盤上,PG是 ceph的邏輯概念,服務端數據均衡和恢復的最小粒度就是PG,一個PG包含多個OSD。引入PG這一層實際上是爲了更好的分配數據和定位數據;
RADOS
RADOS全稱Reliable Autonomic Distributed Object Store,是Ceph集羣的精華,用戶實現數據分配、Failover等集羣操做。
Libradio
Librados是Rados提供庫,由於RADOS是協議很難直接訪問,所以上層的RBD、RGW和CephFS都是經過librados訪問的,目前提供PHP、Ruby、Java、Python、C和C++支持。
優勢: