Ceph教程-Ceph儲存(一)介紹
目錄 [隱藏]
Ceph儲存簡介
Ceph是一個可靠、自動均衡、自動恢復的分散式儲存系統,通常可用於物件儲存,塊裝置儲存和檔案系統儲存。
Ceph在儲存的時候充分利用儲存節點的計算能力,在儲存每一個數據時都會通過計算得出該資料的位置,儘量的分佈均衡。
Ceph儲存元件
Ceph核心元件包括:
- OSD
- Monitor
- MDS
OSD:英文全稱為Object Storage Device,主要功能用於資料的儲存,當直接使用硬碟作為儲存目標的時候,一塊硬碟稱之為OSD。當使用一個目錄作為儲存目標的時候,這個目錄也稱之為OSD。
Monitor:負責監視整個Ceph叢集執行Map圖,維護Ceph叢集的狀態。還包括了叢集中客戶端的認證與授權。
MDS:英文全稱為Metadata Server,主要檔案系統服務的元資料,物件儲存和塊裝置儲存不需要元資料服務。如果叢集中使用CephFS介面,那麼至少叢集中至少需要部署一個MDS服務。
在新版本的Ceph還有其它元件,如:Manager。此元件在L版(Luminous)和之後的版本支援,是一個Ceph守護程序,用於跟蹤執行時指標和叢集的當前狀態,如儲存利用率,系統負載。通過基於Python外掛來管理和公開這些資訊,可基於Web UI和Rest API。如果要對此服務進行高可用至少需要兩個節點。
Rados儲存叢集
RADOS為一個Ceph名詞,通常指ceph儲存叢集,英文全名Reliable Automatic Distributed Object Store。即可靠的、自動化的、分散式物件儲存系統。
Librados介紹
Librados是RADOS儲存叢集的API,支援常見的程式語言,如:C、C++、Java、Python、Ruby和PHP等。
通常客戶端在操作RADOS的時候需要通過與Librados API介面互動,支援下面幾種客戶端:
- RBD
- CephFS
- RadosGW
RBD:Rados Block Devices此客戶端介面基於Librados API開發,通常用於塊裝置儲存,如虛擬機器硬碟。支援快照功能。
RadosGW:此客戶端介面同樣基於Librados API開發,是一個基於HTTP Restful風格的介面。
CephFS:此客戶端原生的支援,通常檔案系統儲存的操作使用CephFS客戶端。如:NFS掛載。
Rados叢集支援的客戶端管理節點
Ceph常用管理介面通常都是命令列工具,如rados、ceph、rbd等命令,另外Ceph還有可以有一個專用的管理節點,在此節點上面部署專用的管理工具來實現近乎叢集的一些管理工作,如叢集部署,叢集元件管理等。
Pool與PG
Pool是一個儲存物件的邏輯分割槽,它通常規定了資料冗餘的型別與副本數,預設為3副本。對於不同型別的儲存,需要單獨的Pool,如RBD。每個Pool內包含很多個PG。
PG是歸置組,英文名為Placement Group,它是一個物件的集合,服務端資料均衡和恢復的最小單位就是PG。
FileStore與BlueStore
FileStore是老版本預設使用的後端儲存引擎,如果使用FileStore,建議使用xfs檔案系統。
BlueStore是一個新的後端儲存引擎,可以直接管理裸硬碟,拋棄了ext4與xfs等本地檔案系統。可直接對物理硬碟進行操作,同時效率也高出很多。
Object物件
在Ceph叢集中,一條資料、一個配置都為一個物件。這些都是儲存在Ceph叢集,以物件進行儲存。每個物件應包含ID、Binary Data和Metadata。