- Ceph企業(yè)級分布式存儲:原理與工程實踐
- 景顯強(qiáng) 龔向宇 黃軍寶
- 677字
- 2021-11-05 10:18:46
2.2 Monitor節(jié)點分析
每個Monitor節(jié)點上都在運(yùn)行守護(hù)進(jìn)程(ceph-mon)。該守護(hù)進(jìn)程可維護(hù)集群映射的主副本,包括集群拓?fù)鋱D。這意味著Ceph客戶端只需連接到一個Monitor節(jié)點并檢索當(dāng)前的集群映射,即可確定所有Monitor和OSD節(jié)點的位置。
Ceph客戶端讀寫OSD節(jié)點之前,必須先連接到Monitor節(jié)點。借助集群映射的當(dāng)前副本和CRUSH算法,Ceph客戶端可以計算任何對象的位置。這是Ceph具有高擴(kuò)展性和高性能的一個非常重要的因素。
Ceph Monitor的主要作用是維護(hù)集群的數(shù)據(jù)主副本映射關(guān)系。同時,它為每個組件維護(hù)一個單獨(dú)的信息圖,包括OSD Map、MON Map、MDS Map、PG Map和CRUSH Map等。所有集群節(jié)點均向Monitor節(jié)點報告,并共享有關(guān)其狀態(tài)的每個更改信息。Monitor不存儲實際數(shù)據(jù)。存儲數(shù)據(jù)是OSD的工作。
Ceph Monitor還提供身份驗證和日志服務(wù)。Monitor將監(jiān)控服務(wù)中的所有更改信息寫入單個Paxos,并且Paxos更改寫入的K/V存儲,以實現(xiàn)強(qiáng)一致性。Ceph Monitor使用K/V存儲的快照和迭代器(LevelDB數(shù)據(jù)庫)來執(zhí)行整個存儲的同步。換句話說,Paxos是Ceph Monitor的核心服務(wù),專門負(fù)責(zé)數(shù)據(jù)一致性工作。
Paxos服務(wù)解決的問題正是分布式一致性問題,即一個分布式系統(tǒng)中的各個進(jìn)程如何就某個值(決議)達(dá)成一致。Paxos服務(wù)運(yùn)行在允許有服務(wù)器宕機(jī)的系統(tǒng)中,不要求可靠的消息傳遞,可容忍消息丟失、延遲、亂序和重復(fù)。它利用大多數(shù)(Majority)機(jī)制保證了2N+1的容錯能力,即2N+1個節(jié)點的系統(tǒng)最多允許N個節(jié)點同時出現(xiàn)故障。
如圖2-2所示,Ceph Monitor中包含分別負(fù)責(zé)OSD Map、Monitor Map、PG Map、CRUSH Map等的Paxos服務(wù)。Paxos服務(wù)負(fù)責(zé)將自己對應(yīng)的數(shù)據(jù)序列化為K/V并寫入Paxos層。Ceph集群中所有與Monitor節(jié)點的交互最終都是在調(diào)用對應(yīng)的Paxos服務(wù)功能,多種Paxos服務(wù)將不同組件的Map數(shù)據(jù)序列化為K/V,共用同一個Paxos實例。對于Paxos的原理,這里不做過多介紹。

圖2-2 Monitor中的數(shù)據(jù)一致性保證機(jī)制
- Linux設(shè)備驅(qū)動開發(fā)詳解(第2版)
- PLC控制程序精編108例
- 構(gòu)建高可用Linux服務(wù)器(第4版)
- 精解Windows 8
- WindowsServer2012Hyper-V虛擬化部署與管理指南
- Learn Helm
- 高性能Linux服務(wù)器構(gòu)建實戰(zhàn):系統(tǒng)安全、故障排查、自動化運(yùn)維與集群架構(gòu)
- Kubernetes從入門到實踐
- 奔跑吧 Linux內(nèi)核(入門篇)
- RESS Essentials
- Advanced TypeScript Programming Projects
- Hands-On GPU Programming with Python and CUDA
- bash shell腳本編程經(jīng)典實例(第2版)
- OpenStack Essentials(Second Edition)
- Android NDK Beginner's Guide