ceph 的crush算法 straw】的更多相关文章

很多年以前,Sage 在写CRUSH的原始算法的时候,写了不同的Bucket类型,可以选择不同的伪随机选择算法,大部分的模型是基于RJ Honicky写的RUSH algorithms 这个算法,这个在网上可以找到资料,这里面有一个新的特性是sage很引以为豪的,straw算法,也就是我们现在常用的一些算法,这个算法有下面的特性: items 可以有任意的weight 选择一个项目的算法复杂度是O(n) 如果一个item的weight调高或者调低,只会在调整了的item直接变动,而没有调整的it…
作者:吴香伟 发表于 2014/09/05 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 数据分布是分布式存储系统的一个重要部分,数据分布算法至少要考虑以下三个因素: 1) 故障域隔离.同份数据的不同副本分布在不同的故障域,降低数据损坏的风险: 2) 负载均衡.数据能够均匀地分布在磁盘容量不等的存储节点,避免部分节点空闲部分节点超载,从而影响系统性能: 3) 控制节点加入离开时引起的数据迁移量.当节点离开时,最优的数据迁移是只有离线节点上的数据被迁移到其它…
转自于:http://www.cnblogs.com/shanno/p/3958298.html?utm_source=tuicool 数据分布是分布式存储系统的一个重要部分,数据分布算法至少要考虑以下三个因素: 1) 故障域隔离.同份数据的不同副本分布在不同的故障域,降低数据损坏的风险: 2) 负载均衡.数据能够均匀地分布在磁盘容量不等的存储节点,避免部分节点空闲部分节点超载,从而影响系统性能: 3) 控制节点加入离开时引起的数据迁移量.当节点离开时,最优的数据迁移是只有离线节点上的数据被迁移…
1.简介 随着大规模分布式存储系统(PB级的数据和成百上千台存储设备)的出现.这些系统必须平衡的分布数据和负载(提高资源利用率),最大化系统的性能,并要处理系统的扩展和硬件失效.ceph设计了CRUSH(一个可扩展的伪随机数据分布算法),用在分布式对象存储系统上,可以有效映射数据对象到存储设备上(不需要中心设备).因为大型系统的结构式动态变化的,CRUSH能够处理存储设备的添加和移除,并最小化由于存储设备的的添加和移动而导致的数据迁移. 为了保证负载均衡,保证新旧数据混合在一起.但是简单HASH…
编辑crush map: 1.获取crush map: 2.反编译crush map: 3.至少编辑一个设备,桶, 规则: 4.重新编译crush map: 5.重新注入crush map: 获取crush  map 要获取集群的crush map,执行命令: ceph osd  getcrushmap -o {compiled-crushmap-filename} ceph将crush输出(-o)到你指定的文件,由于crush map是已编译的,所以需要反编译: 反编译crush map 要反…
目录 Ceph 调整crush map 1.前言 2.示例 1.创建新的replicated 2.修改当前pool的rule Ceph 调整crush map 1.前言 本文章适用于ceph n版 2.示例 1.创建新的replicated ####命令模板###### ceph osd crush rule create-replicated <rule-name> <root> <failure-domain> <class> #############…
相同之处:都解决了数据缓存系统中数据如何存储与路由. 不同之处:区别在于虚拟节点和物理节点的映射办法不同 由于一般的哈希函数返回一个int(32bit)型的hashCode.因此,可以将该哈希函数能够返回的hashCode表示成一个范围为0---(2^32)-1 环 数据和节点使用相同的hash函数来保证 把数据和节点映射到相同的hash空间上.这样,按照顺时针方向,数据存放在它所在的顺时针方向上的那个机器上.这就是一致性哈希算法分配数据的方式! 物理节点:  使用ip或者唯一机器标识为key…
前言 在ceph研发群里面看到一个cepher在问关于怎么读取ceph的副本的问题,这个功能应该在2012年的时候,我们公司的研发就修改了代码去实现这个功能,只是当时的硬件条件所限,以及本身的稳定性问题,后来没有在生产当中使用 我们都知道ceph在写数据的时候,是先写主本,然后去写副本,而读取的时候,实际上只有主本能够提供服务,这对于磁盘的整体带宽来说,并没有充分的发挥其性能,所以能够读取副本当然是会有很大好处的,特别是对于读场景比较多的情况 那么在ceph当中是不是有这个功能呢?其实是有的,这…
PG和PGP调整经验调整前准备为了降低对业务的影响,需要调整以下参数ceph tell osd.* injectargs ‘–osd-max-backfills 1’ceph tell osd.* injectargs ‘–osd-recovery-max-active 1’ceph tell osd.* injectargs ‘–osd-recovery-max-single-start 1’计算pool合理的pg和pgp数量:计算公式:(单个osd上pg数,一般为100) x (osd数量)…
Ceph基础知识和基础架构简介 http://www.xuxiaopang.com/2020/10/09/list/#more大话Ceph http://www.xuxiaopang.com/2016/11/08/easy-ceph-CRUSH/ 大话Ceph CRUSH算法 在Ceph中一切数据(图片.视频,音频.文本.字符串等)都看成个对象来存储(读取其二进制流存储),而不以其格式来区分它们. 架构: RADOS:底层存储系统 LIBRADOS:各种语言的客户端库 RADOSGW.RBD.C…