Ceph Placement rule(副本放置规则)

Placement rules 即副本放置规则,通过自定义的规则,可以决定副本在集群中的分布。规则的格式为:

rule <rulename> {
    ruleset <ruleset>
    type [ replicated | erasure ]
    min_size <min-size>
    max_size <max-size>
    step take <bucket-type>
    step [ choose | chooseleaf ] [firstn | indep] <N> <bucket-type>
    step emit
}

规则的操作步骤中,主要涉及到的步骤:

  1. step take 操作是选择一个 bucket,一般是 root 类型的 bucket。
  2. step choose firstn {num} type {bucket-type},选取指定类型桶的数量,这个数字通常是存储池的副本数。
  3. step chooseleaf firstn {num} type {bucket-type},选择 {bucket-type} 类型的一堆桶,并从各桶的子树里选择一个叶子节点。集合内桶的数量通常是存储池的副本数。

举例来说:

step take default
step choose firstn 3 type host
step choose firstn 1 type osd
step emit

选取的步骤为先从 default 这个bucket中选取 3 个 host,再以每个 host 为起点,选择 host 下的 osd。

step take default
step chooseleaf firstn 3 type host
step emit

选取步骤为从 default 这个 bucket 中选择 3 个 host 并再向下选择 host 下的 osd。

可以看到,chooseleaf firstn 的效果和 choose firstn {num} type {bucket-type} + choose firstn 1 type osd 是相同的。

posted @ 2022-02-28 19:57  Varden  阅读(618)  评论(0)    收藏  举报