SDS-ceph
ceph介绍
crushmap
1、crush算法通过计算数据存储位置来确定如何存储和检索,授权客户端直接连接osd
2、对象通过算法被切分成数据片,分布在不同的osd上
3、提供很多种的bucket,最小的节点是osd
# 结构
osd (or device)
host #主机
chassis #机架
rack #机柜
row
pdu
pod
room #机房
datacenter #数据中心
zone #区域
region #地区
root #最高:根
# 查看crushmap
ceph osd crush tree
ceph osd tree
# 查看详细
ceph osd crush dump
# 查看规则
ceph osd crush rule ls
# 某个规则关联起来的pool
ceph osd pool get xxxxx crush_rule
举例
环境: 一个pool包含3个host,多个osd,通过不同crushmap rule分隔,数据按照不同pool rule落盘。
1、先做crushmap文件备份
2、修改引起大量pg变更,后期不要动
3、调整配置osd crush update on start = false,
#创建root类型bucket
ceph osd crush add-bucket ssd-bucket root
# 添加host类型bucket
ceph osd crush add-bucket node-1-ssd-bucket host
ceph osd crush add-bucket node-2-ssd-bucket host
# root类型bucket添加host类型bucket
ceph osd crush move node-1-ssd-bucket root=ssd-bucket
ceph osd crush move node-2-ssd-bucket root=ssd-bucket
# host类型bucket添加osd
ceph osd crush move osd.3 host=node-1-ssd-bucket root=ssd-bucket
ceph osd crush move osd.4 host=node-2-ssd-bucket root=ssd-bucket
#规则名称、rootbucket名称、容灾机制(默认default)、host类型、磁盘类型
ceph osd tree
#创建一条名为ssd-rule的规则,将基于ssd的OSD作为复制池的目标
ceph osd crush rule create-replicated ssd-rule ssd-bucket host ssd
#关联pool和rule
ceph osd pool set ceph-ssd crush_rule ssd-rule