Ceph之CRUSH解析

Ceph的CRUSH算法用于实现数据的平衡分布、负载均衡和故障隔离。该算法基于伪随机性,用于在存储集群中将数据对象映射到存储设备,同时考虑条带化、副本策略和系统状态。CRUSH通过集群映射和权重计算,确保数据在各个OSD间均匀分布,提高系统性能和可靠性。在故障发生时,Ceph能快速响应,将故障OSD标记并启动恢复过程。
摘要由CSDN通过智能技术生成

问题考虑:

1):故障隔离,降低数据损坏的风险;2)负载均衡,避免部分节点空闲,部分节点超载,影响系统性能;3)控制节点加入离开引起的数据迁移量。

对象存储中一致性hash和Ceph的CRUSH算法是使用比较多的数据分布算法,Amazon的Dyanmo键值存储系统采用一致性hash算法,并对它做了很多优化,OpenStack的Swift对象存储系统也采用一致性hash算法。

CRUSH是一种基于伪随机控制数据分布、复制的算法,CRUSH为解决数据的平衡分布、负载、最大化系统性能以及系统的扩展和硬件容错而被设计的。在Ceph集群中,CRUSH需要一个简洁而层次清晰的设备描述,包括存储集群和副本放置策略,从而有效的将数据对象映射大存储设备上,而这个过程完成是分布式的。

CRUSH原理


存储设备具有吞吐量限制,影响读写性能和可扩展性,所以存储系统需要支持条带化以增加存储系统的吞吐量并提升性能。数据条带化常见方式是做RAID,同Ceph的条带化最相似的是RAID 0,Ceph条带化提供类似RAID 0的吞吐量。决定Ceph条带化数据的3个因素:

  • 对象大小:处于分布式集群中的对象拥有一个最大可配置的尺寸,对象大小应该足够大以适应大量的条带单元
  • 条带宽度:条带有一个可配置的单元大小,每个条带宽度应该是对象大小的一小部分
  • 条带总量:

Ceph条带化后,获得N个带有唯一object ID, object ID是进行线性映射生成,由file的元数据、Ceph条带化产生的Object的序号连缀而成。对象映射到PG,映射包括两部分:静态hash计算Object

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值