CRUSH是Ceph的数据分布算法,通过CRUSH Rule来指导数据在集群中的位置选择。 CRUSH Rule定义了数据如何根据存储设备和存储池进行选择和复制。它包含一些重要的组件: 1.Rule Set(规则集):将一组存储设备和存储池组合在一起,并为其定义一个唯一的标识符。每个规则集可以有多个CRUSH Rule。 2.CRUSH Rule(CRUSH规则):...
step take: CRUSH Rule 执行步骤中的第一步.通过桶名称(对应 CRUSH Map 中的一个子树)来确定规则的选择范围,同时也可以选择 Device Class 来确定所选择的设备类型.可以认为是将集群中不符合OSD 剔除. step emit: 表示步骤结束,输出选择的位置 3.2 step choose 与 CRUSH 算法原理 step choose 对应 CRUSH...
osize+= crush_choose_firstn(map, bucket, weight, weight_max, x, numrep, type, o+osize, outpos); }/*swap o and w arrays*/int*tmp = o; o = w; w =tmp; wsize=osize;break;caseCRUSH_RULE_EMIT:inti =0; result_len=0;for(; i < wsize && result_len < result_max; i++) {...
Delete a Ceph CRUSH Rule. Use the force option when in use. In QuantaStor, the "Delete Ceph Redundancy/CRUSH Rule" feature is used to remove an existing redundancy rule or CRUSH (Controlled Replication Under Scalable Hashing) rule that has been previously created for a Ceph storage cluster. ...
}# end crush map 因为在实际环境中通常是“数据中心–>机架–>主机–>磁盘”这样的层级拓扑,所以crush map设计为一种树状结构 3. cursh map 的组成部分 crush map 由5部分组成:tunable 参数, device, type, bucket, rule 3.1 tunable 参数 choose_local_tries: 已废弃,为做向后兼容应保持为 0 ...
crush算法支持在crush rule上配置故障域,crush会根据故障域的配置,沿着osdmap,搜索出符合条件的osd,然后由这些osd抽签来决定由哪个osd来存储这个pg,crush算法内部核心是这个称为straw2的osd的抽签算法。straw2的名字来源于draw straw(抽签:https://en.wikipedia.org/wiki/Drawing_straws)这个短语,针对每个pg,符合故障...
第二个因素是放置规则列表,放置规则(CRUSH Rule)定义了从哪个节点开始查找,以及定义查找的方式。 Ceph的文件存储 Ceph的文件存储是建立在底层RADOS存储之上的,它是通过Ceph的Metadata Server (MDS)管理的。 Ceph的MDS MDS:Ceph的MDS(Metadata Server)守护进程,主要保存的是Ceph FileSystem的元数据。注意,对于Ceph的块...
crushmap配置中最核心的当属rule了,crush rule决定了三点重要事项: 1、从OSDMap中的哪个节点开始查找 2、使用那个节点作为故障隔离域 3、定位副本的搜索模式(广度优先 or 深度优先)。 # rulesrule egon_ruleset#规则集的命名,创建pool时可以指定rule集{id1#rules集的编号,顺序编即可typereplicated#定义pool类型为...
crush算法支持在crush rule上配置故障域,crush会根据故障域的配置,沿着CRUSH Map,搜索出符合条件的osd...
3. CRUSH Rule 选择策略 <1>: choose/chooseleaf <2>: firstn/indep <3>: num_reps <4>: failure domain 4. Rule执行流程 1. 再增加一步choose ...