ceph的数据存储之路(3) ----- pg选择osd的过程(crush 算法)

       0. 学会使用解析ceph的cluster map工具:

ceph osd getcrushmap -o crush.map
crushtool -d crush.map >> crush.txt

        这时将一个ceph集群的 cluster map导入到crush.txt的文件中,这时可以cat这个文件看一下文件中保存了哪些内容,帮助理解下面的内容

 

 1. 说明:这里首先要说明的是  一个object要保存三个副本,也就是要保存到三个osd上,当前的ceph集群可以存在N个osd节点,那么怎么来记录这个object保存到哪里了? 这里就要讲述这个伪随机的选择osd过程-----crush。        

pg OSD的映射的过程算法叫做crush 算法,这个算法是一个伪随机的过程,他可以从所有的OSD中,随机性选择一个OSD集合,但是同一个PG每次随机选择的结果是不变的,也就是映射的OSD集合是固定的。

2. crush 因子

OSDMap管理当前ceph中所有的OSDOSDMap规定了crush算法的一个范围,在这个范围中选择OSD结合。那么影响crush算法结果的有两种因素,一个就是OSDMap的结构,另外一个就是crush rule

OSDMap其实就是一个树形的结构,叶子节点是device(也就是osd),其他的节点称为bucket节点,这些bucket都是虚构的节点,可以根据物理结构进行抽象,当然树形结构只有一个最终的根节点称之为root节点,中间虚拟的bucket节点可以是数据中心抽象、机房抽象、机架抽象、主机抽象等如图。

 

191305_azzU_2460844.png

1-4  osd组成的逻辑树形结构

 

上图中红色框内的节点都是bucket节点,这些节点都是根据实际情况进行抽象得来的。其实也就是实际中整个物理拓扑结构。这个拓扑里的每个节点都有一个权重值,这个权重值等于所有子节点的权重之和,叶子节点的重量由osd的容量决定,一般设定1T的权重为1

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值