分布式存储-CEPH

Ceph CRUSH算法

2018-12-19  本文已影响3人  lihanglucien

1. 数据分布算法挑战

2. Ceph CRUSH算法说明

3. Ceph CRUSH算法原理

CRUSH算法因子:

3.1 层级化的Cluster Map

ceph_crush.png

CRUSH Map是一个树形结构,OSDMap更多记录的是OSDMap的属性(epoch/fsid/pool信息以及osd的ip等等)。

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

3.2 数据分布策略Placement Rules

数据分布策略Placement Rules主要有特点:
a. 从CRUSH Map中的哪个节点开始查找
b. 使用那个节点作为故障隔离域
c. 定位副本的搜索模式(广度优先 or 深度优先)

rule replicated_ruleset  #规则集的命名,创建pool时可以指定rule集
{
    ruleset 0                #rules集的编号,顺序编即可   
    type replicated          #定义pool类型为replicated(还有erasure模式)   
    min_size 1                #pool中最小指定的副本数量不能小1
    max_size 10               #pool中最大指定的副本数量不能大于10       
    step take default         #查找bucket入口点,一般是root类型的bucket    
    step chooseleaf  firstn  0  type  host #选择一个host,并递归选择叶子节点osd     
    step emit        #结束
}

3.3 Bucket随机算法类型

ceph_bucket.png

4. CRUSH算法案例

说明:
集群中有部分sas和ssd磁盘,现在有个业务线性能及可用性优先级高于其他业务线,能否让这个高优业务线的数据都存放在ssd磁盘上。

普通用户:

ceph_sas.png

高优用户:

ssd.png

配置规则:

ceph_crush1.png
上一篇下一篇

猜你喜欢

热点阅读