CEPH自定义crushmap 实现储存隔离
文章目录
一、更新规则
1、获取规则信息
ceph osd getcrushmap -o ./crushmap.bin
crushtool -d crushmap.bin -o ./crushmap.txt
2、更改规则以及规则说明
以下我们为hdd,sdd定义规则,用于缓存分层
1、hdd
rule hdd_rule {
id 2
type replicated
min_size 1
max_size 10
step take default class hdd
step chooseleaf firstn 0 type host
step emit
}
2、ssd
rule ssd_rule {
id 1
type replicated
min_size 1
max_size 10
step take default class ssd
step chooseleaf firstn 0 type host
step emit
}
3、规则说明
rule <rulename> {
id <id > [整数,规则id]
type [replicated|erasure] [规则类型,用于复制池还是纠删码池]
min_size <min-size> [如果池的最小副本数小于该值,则不会为当前池应用这条规则]
max_size <max-size> [如果创建的池的最大副本大于该值,则不会为当前池应用这条规则]
step take <bucket type> [这条规则作用的bucket,默认为default]
step [chooseleaf|choose] [firstn] <num> type <bucket-type>
# num == 0 选择N(池的副本数)个bucket
# num > 0且num < N 选择num个bucket
# num < 0 选择N-num(绝对值)个bucket
step emit
}
如上设置主要是根据以下的class 类型来进行配置,儿默认情况下默认情况下,我们所有的 osd crush class 类型都是 hdd。如果你想设置更多规则,可以更改磁盘的crush class
# devices
device 0 osd.0 class hdd
device 1 osd.1 class hdd
device 2 osd.2 class hdd
device 3 osd.3 class hdd
device 4 osd.4 class hdd
device 5 osd.5 class hdd
device 6 osd.6 class hdd
device 7 osd.7 class hdd
device 8 osd.8 class hdd
device 9 osd.9 class hdd
device 10 osd.10 class hdd
device 11 osd.11 class hdd
device 12 osd.12 class hdd
device 13 osd.13 class hdd
device 14 osd.14 class hdd
device 15 osd.15 class hdd
device 16 osd.16 class hdd
device 17 osd.17 class hdd
device 18 osd.1