Openstack统一存储Ceph之Crush算法介绍京东云计算总监何雨PPT资料.pptx
- 文档编号:14317240
- 上传时间:2022-10-22
- 格式:PPTX
- 页数:14
- 大小:113.88KB
Openstack统一存储Ceph之Crush算法介绍京东云计算总监何雨PPT资料.pptx
《Openstack统一存储Ceph之Crush算法介绍京东云计算总监何雨PPT资料.pptx》由会员分享,可在线阅读,更多相关《Openstack统一存储Ceph之Crush算法介绍京东云计算总监何雨PPT资料.pptx(14页珍藏版)》请在冰豆网上搜索。
在新添加osd时指定,如:
cephosdcrushset22.5pool=mypoolroot=defaultdatacenter=nanjingroom=jd310row=1rack=2host=ebs-158,8.1,2.0,0.8,2.0,2.1,2.0,1.3,1.0,1.0,Crush算法:
决定objectdata与osd(一个硬盘对应一个osd)的映射关系。
每次读取或写入object,都由crush算法决定object的存储位置cephclient端无须通过中央节点而直接与osd交互。
CRUSH实现了一种伪随机(确定性)的函数,它的参数是objectid或objectgroupid,并返回一组存储设备(用于保存object副本)。
CRUSH需要clustermap(描述存储集群的层级结构)、和副本分布策略(rule)。
Crush对物理设备的拓扑结构编码,好处:
抵御设备失效导致的数据不可获取:
设备失效无处不在,比如电源问题,网络问题,硬盘问题等。
做法:
将数据存储在物理上分割的硬盘中,比如存储在不同的datacenter,room,row,rack,host中与中心节点分布式比较优势:
避免单点故障消除性能瓶颈可轻松扩展物理机,Crushmap包含四部分:
1.Devices:
具体的硬盘2.BucketTypes:
声明cluster中的bucket3.BucketInstances:
bucket的定义说明,包括bucketid,所使用的算法,所使用的hash算法,包含的items。
4.Rules:
选择device的rule,bucket-typebucket-nameidauniquenegativenumericIDweighttherelativecapacity/capabilityoftheitem(s)algthebuckettype:
uniform|list|tree|strawhashthehashtype:
0bydefaultitemitem-nameweightweightId为负数,以便与device区分,因为bucket中的item可以是bucket,也可以是device。
20hostnode-ebs21id-2#donotchangeunnecessarily22#weight2.00023algstraw24hash0#rjenkins125itemosd.0weight1.00026itemosd.1weight1.00027,可以定制bucket-type,定制化方法:
coposdgetcrushmap-o/home/lwb/crushmapcrushtool-d/home/lwb/crushmap-o/home/lwb/crushmap.obj在crushmap.obj文件中在#types下插入一行(注意要添加的插入到对应的位置,比如要在root和row中插入一行,则输入type4namemmm,后面的数字要递增)crushtool-ccrushmap.objo/tmp/ttttttcephosdsetcrushmapi/tmp/tttttt,设置叶节点Weight:
以容量为指标,设置weight值:
推荐以1TB为基数,设置weight值为1.0。
这样500G的则为0.5,3TB则为3.0.以性能为指标,设置weight值:
比如性能好些的盘,weight设置为1.2,性能差些的weight设置为0.8,bucket节点Weight:
为下级itemsweight之和,Rule:
ruleruleset/ruleidtypereplicated|raid4min_size/备份最小数max_size/备份最大数steptake/从bucket-type开始挑选stepchoose|chooseleaffirstn|indep/挑选规则stepemit其中:
(1)当pool设定的备份数不在min_size,max_size中,则该rule不起作用
(2)steptake到stepemit为selectaction。
计算得分最高的item:
Hash值与一个权重有关的函数值f(w(i)的乘积函数f(w(i);
(事先需要将items按权重从小到大排序)如果所有的item权重都一样。
则该函数f(w(i)=1.0*0x10000否则,f(w(0)=1.0*0x10000其他f(w(i)计算规则如下:
假设item个数为N,wbelow_i=(item_weighti-item_weighti-1)*(N-i+1)wnext_i=(N-i)*(items_weighti-items_weighti-1),如果第i后面有k个item的权重与i相同,则这个N-i变为N-i-k,那么第i到第k个item的结果值都与第i个计算出来的相同。
pbelow_i=wbelow_i/(wbelow_i+wnext_i)straw_i=straw_i-1*pow(1/pbelow_i,1/(N-i)如果第i后面有k个item的权重与i相同,则这个N-i变为N-i-kf(w(i)=straw_i*0x10000,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Openstack 统一 存储 Ceph Crush 算法 介绍 京东云 计算 总监
![提示](https://static.bdocx.com/images/bang_tan.gif)