ceph 数据均衡(balance)

设置集群仅支持 Luminous(或者L之后的)客户端

我采用octopus:
ceph osd set-require-min-compat-client octopus
或
ceph osd set-require-min-compat-client octopus --yes-i-really-mean-it
步骤:
1.获取集群当前的osdmap信息
为防止文件混乱,特意新建了文件夹 (在cephadm shell中执行)
mkdir /root/data
ceph osd getmap -o osd.map
2.获取当前集群数据均衡后的优化信息
osdmaptool {osdmap_filename} --upmap out.txt [--upmap-pool <pool>] [--upmap-max <max-count>] [--upmap-deviation <max-deviation>]
其中
upmap-pool :指定需要优化均衡的存储池名
upmap-max: 指定一次优化的数据条目,默认100,可根据环境业务情况调整该值,一次调整的条目越多,数据迁移会越多,可能对环境业务造成影响。
max-deviation:最大偏差值,默认为0.01(即1%)。如果OSD利用率与平均值之间的差异小于此值,则将被视为完美。
假设只优化2条,即:
osdmaptool osd.map --upmap out.txt --upmap-pool cephfs_data --upmap-max=2
ceph balancer

支持两种模式:

它支持两种模式:upmap和crush-compat,upmap会强制重新映射特定pg,而crush-compat通过改变crush weight来调整pg分布,最终实现数据均衡。

1. upmap:以pg单位重新映射特定的pg到特定的osd,实现方法是将更新的pg映射关系添加到osdmap中,以此实现对PG映射的细粒度控制

pg强制重新映射到osd.
ceph osd getmap -o osdmap  #获取osdmap
osdmaptool osdmap --upmap out.txt [--upmap-pool <pool>] [--upmap-max <max-count>] [--upmap-deviation <max-deviation>]  #对指定pool生成优化结果

**条件说明:
--upmap-pool  可以指定多个pool,但它们是映射到相同设备和存储相同类型数据的池
max-optimizations  默认为10, 运行中要标识的upmap条目的最大数量,如果进行离线优化,则值应该更大一点
max-deviation 默认为5, 如果OSD PG计数与计算的目标数的差异应该小于或等于这个数量
--upmap-active 模拟active的均衡器在upmap模式下的行为

应用更改:
source out.txt110

2.crush-compat:现原理是通过更改crush weigth来实现pg的均衡

ceph osd crush weight-set reweight-compat 0 1.002479
ceph osd crush weight-set reweight-compat 1 0.998962
ceph osd crush weight-set reweight-compat 2 1.027126
配置方式:

手动:
enable模块
ceph mgr module enable balancer  
ceph balancer on / off  //启动balancer
查看状态
ceph balancer status  //balancer状态
计算当前集群得分
ceph balancer eval    //集群得分,分越低集群数据平衡越好。
选择模式
ceph balancer mode <upmap/crush-compat/none>
创建计划
ceph balancer optimize <plan_name>  //待数据平衡之后,生成计划,以备以后使用
查看该计划执行后的集群得分
ceph balancer eval <plan_name>      //  二次使用计划之后,集群所得分
查看该计划要执行的动作
ceph balancer show <plan_name>    //计划的步骤
执行计划
ceph balancer execute <plan_name>    //执行计划
删除计划
ceph balancer rm <plan_name>,或者全部清空ceph balancer reset
关闭balancer
ceph balancer off   // 防止之后可能会对集群做修改产生影响,平衡完之后,关闭balancer
自动:(周期性均衡)
ceph config-key set "mgr/balancer/active" "1"   //自动周期执行
ceph config-key set "mgr/balancer/mode" "upmap"  //模式 (upmap / crush-compat)
#当前时间在begin_time和end_time范围内才会执行,格式为小时/分钟,可以设定后在指定的时间段内才执行均衡动作;
ceph config-key set "mgr/balancer/begin_time" "0000"  //时间范围开始时间
ceph config-key set  "mgr/balancer/end _time" "2400"   //时间范围结束时间
ceph config-key set "mgr/balancer/sleep_interval" "1000" //在配置的时间段执行的频率

修改后重启mgr生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值