ceph學習筆記之五 Pool與映射過程
阿新 • • 發佈:2017-07-26
ceph sds
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。
對象映射圖:
通過HASH取模後計算,前3個對象分布在PG1上,後兩個對象分布在PG2上;PG1通過CRUSH算法,計算出PG1分布在OSD1、OSD3上;PG2通過CRUSH算法分布在OSD2和OSD4上。
本文出自 “無詺IT小站” 博客,謝絕轉載!
ceph學習筆記之五 Pool與映射過程