ceph架構簡介
在測試OpenStack的后端存儲時,看到了ceph作為后端存儲時的各種優勢 ,於是查詢資料,總結了這篇ceph架構的博客,介紹了ceph的架構和ceph的核心組件。ceph整體十分龐大,本文只是介紹了整體架構和概念,想要詳細查看ceph請看博文:Ceph介紹及原理架構分享
1.1 Ceph簡介
Ceph是一個統一的分布式存儲系統,設計初衷是提供較好的性能、可靠性和可擴展性。
1.2 Ceph架構
支持三種接口:
- Object:有原生的API,而且也兼容Swift和S3的API。
- Block: 支持精簡配置、快照、克隆。
- File:Posix接口,支持快照。
1.2.1 架構介紹
1、ceph架構最底層是RADOS對象存儲系統(Ceph最底層的存儲單元是Object對象),外部想要訪問該系統需要librados庫。
2、ceph對外提供四種存儲:應用直接訪問RADOS、對象存儲接口、塊存儲接口、文件系統接口;分別對應:代碼直接訪問、radosgw(rgw)、librbd(rbd)、元數據服務器(MDS)
1.3 Ceph核心組件及概念介紹
-
Monitor
一個Ceph集群需要多個Monitor組成的小集群,它們通過Paxos同步數據,用來保存OSD的元數據。
-
OSD
OSD全稱Object Storage Device,也就是負責響應客戶端請求返回具體數據的進程。一個Ceph集群一般都有很多個OSD。
-
MDS
MDS全稱Ceph Metadata Server,是CephFS服務依賴的元數據服務。
-
Object
Ceph最底層的存儲單元是Object對象,每個Object包含元數據和原始數據。
-
PG
PG全稱Placement Groups,是一個邏輯的概念,一個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++支持。
-
CRUSH
CRUSH是Ceph使用的數據分布算法,類似一致性哈希,讓數據分配到預期的地方。
-
RBD
RBD全稱RADOS block device,是Ceph對外提供的塊存儲設備服務。
-
RGW
RGW全稱RADOS gateway,是Ceph對外提供的對象存儲服務,接口與S3和Swift兼容。
-
CephFS
CephFS全稱Ceph File System,是Ceph對外提供的文件系統服務。