首页 > 代码库 > 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。
对象映射图:
通过HASH取模后计算,前3个对象分布在PG1上,后两个对象分布在PG2上;PG1通过CRUSH算法,计算出PG1分布在OSD1、OSD3上;PG2通过CRUSH算法分布在OSD2和OSD4上。
本文出自 “無詺IT小站” 博客,谢绝转载!
ceph学习笔记之五 Pool与映射过程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。