Ceph cluster map

叢集運行圖記錄所有可用的儲存資源及相互之間的空間程次結構,包含很拓樸圖,像是Monitor 圖、OSD圖、PG圖、CRUSH圖、元數據圖

Montior Map: 包含集群的 fsid 、位置、名字、地址和端口,也包括當前版本、創建時間、最近修改時間。要查看監視器圖,用 ceph mon dump 命令。

OSD Map: 包含集群 fsid 、創建時間、最近修改時間、存儲池列表、副本數量、歸置組數量、 OSD 列表及其狀態(如 up 、 in )。要查看OSD運行圖,用 ceph osd dump 命令。

PG Map::** 包含歸置組版本、其時間戳、最新的OSD 運行圖版本、佔滿率、以及各歸置組詳情,像歸置組ID 、 up set 、 acting set 、 PG 狀態(如active+clean ),和各存儲池的數據使用情況統計。

CRUSH Map::** 包含存儲設備列表、故障域樹狀結構(如設備、主機、機架、行、房間、等等)、和存儲數據時如何利用此樹狀結構的規則。要查看CRUSH 規則,執行ceph osd getcrushmap -o {filename}命令;然後用crushtool -d {comp-crushmap-filename} -o {decomp-crushmap-filename}反編譯;然後就可以用cat 或編輯器查看了。

MDS Map: 包含當前 MDS 圖的版本、創建時間、最近修改時間,還包含了存儲元數據的存儲池、元數據服務器列表、還有哪些元數據服務器是 up 且 in 的。要查看 MDS 圖,執行ceph mds dump

當叢集狀態有明顯的改變,像是某個OSD離線了,則相關的PG將會故障,其狀態會變為"degrade降低",叢集的運行圖會獲得叢集狀態的更新資訊,另外,Ceph 監控集群也會維護叢集中歷史的狀態,當然,其它的圖像是OSD圖、PG圖等等也會維護歷史資訊的對應版本,每個版本均稱為一個apoch(登記版本的歷史紀錄)

Data Distribution Policy 數據分布政策

Data Distribution Policy 是由Placement Rule組成,這些規則決定了每個數據物件有多少個副本,以及副本儲存的限制條件(比如說3個副本存放在不同的機架中)

CRUSH 演算法(algorithm)

CRUSH演算法在儲存裝置中分配數據物件,根據每一個裝置的權值,近似相同的概率分佈。分散式由階層式的 cluster map所控制,而cluster map代表能夠儲存的資源和組成的邏輯元素,例如舉例來說有可能描述這裡有多少機房、多少機櫃、硬碟是如何分佈等等,數據的分散的政策依據放置規則(placement rule)去定義,其明確指定目標多少副本、在存放副本有什麼強制性的限制。例如有可能複製三個副本放到三個不同的設備中,其三個設備不會共享相同的電子迴路。

給其輸入單一個整數x,CRUSH將會輸出一個有明顯差別的儲存目標序列~R ,CRUSH利用一個強力且多個整數輸入雜湊函數(包括原本的x),此函示僅用在cluster map、放置規則和x而且必須要完整的作"決定"和"獨立"的計算。分佈是仿隨機的,在任何儲存裝置中,儘管類似的輸入,然而其輸出之間不會有明顯的相關性,我們可以說CRUSH產生一個declustered分佈來作副本,在一組設備共享副本可以是一個項目且獨立於所有其他項目。

declustered

results matching ""

    No results matching ""