ceph集群数据均衡工具balancer

以下内容均参考官网:https://docs.ceph.com/en/reef/rados/operations/balancer/

ceph balancer

在老版本的ceph集群中,需要通过 ceph reweight-by-pg 或者 ceph reweight-by-utilization来数据均衡。
在Luminous或更新ceph版本中,为了实现ceph集群中数据均衡分布,balancer工具能优化osd上pg的分布。balancer工具可以自动执行也可以手动执行。

工具状态

ceph balancer status 

该工具的限制

如果集群中有数据处于降级(degraded)状态,那么ceph balancer就不会对pg分布做任何调整。
否则,balancer将逐步调整一小部分不均衡的 PG(Placement Groups)以达到数据均衡的目的。默认调整pg的阈值是 5%。也可以通过调整参数target_max_misplaced_ratio来修改默认值:

ceph config set mgr target_max_misplaced_ratio .07   # 7%

每均衡一次都会sleep一段时间,可以修改sleep的秒数:

ceph config set mgr mgr/balancer/sleep_interval 60

如果要设置自动均衡开始的时间(以 HHMM 格式)(比如:0000 表示午夜 12:00(午夜),1230 表示中午 12:30,1530 表示下午 3:30,2359 表示晚上 11:59。):

ceph config set mgr mgr/balancer/begin_time 0000

设置自动均衡结束的时间(以 HHMM 格式):

ceph config set mgr mgr/balancer/end_time 2359

自动均衡可以限制在一周的固定几天执行:
设置在某一天之后执行(0表示星期日,1表示星期一,…):

ceph config set mgr mgr/balancer/begin_weekday 0

设置自动均衡在某一天之前执行(0表示星期日,1表示星期一,…):

ceph config set mgr mgr/balancer/end_weekday 6

默认是对所有存储池都均衡。通过设定存储池id,设置对特定的存储池自动均衡:

ceph config set mgr mgr/balancer/pool_ids 1,2,3

如何查看存储池的id:

ceph osd pool ls detail

支持的模式:

  • crush-compat:
    在这种模式下,osd正常的权重应为对应磁盘的容量大小,以反映设备上计划存储的数据目标量。之后,平衡器将优化权重集的值,通过小幅度增加或减少权重,以实现尽可能接近目标分布。(由于 PG 到osd的映射过程是一个伪随机过程。那么osd上的数据分布就不一定是完全均衡的。因此,balancer旨在通过优化权重到数据均衡的目的。)

  • upmap:
    在这种模式下,可以控制单个pg的映射过程,使其映射至指定的osd。但是如果需要使用这种模式,ceph版本必须是L版本或更新版本。

手动执行balancer

分为以下三步:

  • 制定计划
  • 评估数据分布的质量,(分析当前的 PG 分布,以及执行计划后的 PG 分布)
  • 执行计划

评估当前集群或特定存储池或特定计划的数据分布:

ceph balancer eval <option>
ceph balancer eval <pool-name>

单个存储池均衡:创建计划时,设置<pool‐name>,表示对指定的存储池进行pg均衡操作。
全局均衡:创建计划时,不设置<pool‐name>,表示对集群中所有的存储池进行pg均衡操作,需注意的是,当一套osd同时被多个存储池复用时,会出现相互影响的现象,因此不建议在osd复用时进行全局pg均衡操作。

显示评估细节:

ceph balancer eval-verbose {<option>} 

根据当前配置,指示balancer生成一个计划,并指定计划名称:

ceph balancer optimize <plan> 

查看计划内容:

ceph balancer show <plan-name>

显示所有计划:

ceph balancer ls

删除旧计划:

ceph balancer rm <plan-name>

评估执行特定计划后产生的数据分布:

ceph balancer eval <plan-name>

如果预计一个计划会改善数据分布(即该计划的得分低于当前集群状态的得分),可以通过运行以下命令来执行该计划:

ceph balancer execute <plan-name>
  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值