官术网_书友最值得收藏!

2.2 Monitor節點分析

每個Monitor節點上都在運行守護進程(ceph-mon)。該守護進程可維護集群映射的主副本,包括集群拓撲圖。這意味著Ceph客戶端只需連接到一個Monitor節點并檢索當前的集群映射,即可確定所有Monitor和OSD節點的位置。

Ceph客戶端讀寫OSD節點之前,必須先連接到Monitor節點。借助集群映射的當前副本和CRUSH算法,Ceph客戶端可以計算任何對象的位置。這是Ceph具有高擴展性和高性能的一個非常重要的因素。

Ceph Monitor的主要作用是維護集群的數據主副本映射關系。同時,它為每個組件維護一個單獨的信息圖,包括OSD Map、MON Map、MDS Map、PG Map和CRUSH Map等。所有集群節點均向Monitor節點報告,并共享有關其狀態的每個更改信息。Monitor不存儲實際數據。存儲數據是OSD的工作。

Ceph Monitor還提供身份驗證和日志服務。Monitor將監控服務中的所有更改信息寫入單個Paxos,并且Paxos更改寫入的K/V存儲,以實現強一致性。Ceph Monitor使用K/V存儲的快照和迭代器(LevelDB數據庫)來執行整個存儲的同步。換句話說,Paxos是Ceph Monitor的核心服務,專門負責數據一致性工作。

Paxos服務解決的問題正是分布式一致性問題,即一個分布式系統中的各個進程如何就某個值(決議)達成一致。Paxos服務運行在允許有服務器宕機的系統中,不要求可靠的消息傳遞,可容忍消息丟失、延遲、亂序和重復。它利用大多數(Majority)機制保證了2N+1的容錯能力,即2N+1個節點的系統最多允許N個節點同時出現故障。

如圖2-2所示,Ceph Monitor中包含分別負責OSD Map、Monitor Map、PG Map、CRUSH Map等的Paxos服務。Paxos服務負責將自己對應的數據序列化為K/V并寫入Paxos層。Ceph集群中所有與Monitor節點的交互最終都是在調用對應的Paxos服務功能,多種Paxos服務將不同組件的Map數據序列化為K/V,共用同一個Paxos實例。對于Paxos的原理,這里不做過多介紹。

圖2-2 Monitor中的數據一致性保證機制

主站蜘蛛池模板: 永修县| 尤溪县| 清徐县| 沐川县| 五家渠市| 吉隆县| 河曲县| 龙南县| 金门县| 永和县| 昭苏县| 汤阴县| 浠水县| 黄浦区| 启东市| 关岭| 黄平县| 潮安县| 玉屏| 黎川县| 林口县| 双鸭山市| 黄浦区| 通城县| 辉县市| 云安县| 汶川县| 游戏| 长汀县| 乳山市| 石河子市| 且末县| 政和县| 垦利县| 宜章县| 尤溪县| 启东市| 辽中县| 洞头县| 余干县| 铅山县|