背景:
熟悉存储池的关联关系,好维护,为以后设计集群存储池做知识储备。
熟悉过程:
存储池的关联关系就是这样的 pool crush rule -> crush rule-> crush root
[root@ceph1 ~]# ceph osd pool ls detail 或者ceph osd pool ls | xargs -i ceph osd pool get {} crush_rule
pool 77 '.rgw.root' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode warn last_change 247 flags hashpspool,creating stripe_width 0 application rgw
这里可以发现 '.rgw.root' 这个pool 对应的信息,crush_rule 是 0
那么去找 rule_id 为0 的root是哪个,如何去找呢,继续往下找
ceph osd crush rule dump 可以找到 rule_id 发现item_name对应的root是“default”
也可以把整个配置导出来看:
ceph osd getcrushmap -o /tmp/mycrushmap
编译:
crushtool -d /tmp/mycrushmap > /tmp/mycrushmap.txt
#rules 下面的信息即是相关rule信息。
修改后导入:
crushtool -c /tmp/mycrushmap.txt -o /tmp/newcrushmap
ceph osd setcrushmap -i /tmp/newcrushmap
总结:
顺藤摸瓜,一步一个脚印,要设计好存储池如何去分配,这个熟悉步骤是刚接触ceph必不可少的,好事多磨。