1. 程式人生 > 實用技巧 >ceph學習筆記之五 Pool與對映過程

ceph學習筆記之五 Pool與對映過程

Pool

Pool是一個抽象的儲存池,它規定了資料冗餘的型別以及對應的副本分佈策略。目前實現了兩種Pool型別:

Replicated型別和Erasure Code型別。一個Pool由多個PG構成

物件對映過程

物件對映過程指的是查詢物件在叢集中分佈的位置資訊,其過程分為兩步:

A、物件到PG的對映。這個過程是靜態HASH對映(加入PG Split後實際變成了動態HASH對映方式),通過Object_id計算出HASH值,

用該Pool的PG的總數量PG_Num對HASH值取模,就可以獲得該物件所在的PG的ID號,其演算法公式:

PG_id=Hash(Object_id)% PG_Num
B、PG到OSD列表對映。指PG上物件的副本如何分佈在OSD上。使用Ceph自己的CRUSH演算法來實現。由PG對映到資料儲存的實際單元OSD中,將PG_id作為演算法的輸入,獲得包含N個OSD的集合,集合中第一個OSD被作為主OSD,其他的OSD則依次作為從OSD。N為該PG所在Pool下的副本數,在生產環境中N一般為3。

物件對映圖:

p_w_picpath

通過HASH取模後計算,前3個物件分佈在PG1上,後兩個物件分佈在PG2上;PG1通過CRUSH演算法,計算出PG1分佈在OSD1、OSD3上;PG2通過CRUSH演算法分佈在OSD2和OSD4上。

轉載於:https://blog.51cto.com/opencloud/1951111