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工具可以自动执行也可以手动执行。

工具状态

c 复制代码
ceph balancer status 

该工具的限制

如果集群中有数据处于降级(degraded)状态,那么ceph balancer就不会对pg分布做任何调整。

否则,balancer将逐步调整一小部分不均衡的 PG(Placement Groups)以达到数据均衡的目的。默认调整pg的阈值是 5%。也可以通过调整参数target_max_misplaced_ratio来修改默认值:

c 复制代码
ceph config set mgr target_max_misplaced_ratio .07   # 7%

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

c 复制代码
ceph config set mgr mgr/balancer/sleep_interval 60

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

c 复制代码
ceph config set mgr mgr/balancer/begin_time 0000

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

c 复制代码
ceph config set mgr mgr/balancer/end_time 2359

自动均衡可以限制在一周的固定几天执行:

设置在某一天之后执行(0表示星期日,1表示星期一,...):

c 复制代码
ceph config set mgr mgr/balancer/begin_weekday 0

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

c 复制代码
ceph config set mgr mgr/balancer/end_weekday 6

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

c 复制代码
ceph config set mgr mgr/balancer/pool_ids 1,2,3

如何查看存储池的id:

c 复制代码
ceph osd pool ls detail

支持的模式:

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

手动执行balancer

分为以下三步:

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

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

c 复制代码
ceph balancer eval <option>
ceph balancer eval <pool-name>

显示评估细节:

c 复制代码
ceph balancer eval-verbose {<option>} 

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

c 复制代码
ceph balancer optimize <plan> 

查看计划内容:

c 复制代码
ceph balancer show <plan-name>

显示所有计划:

c 复制代码
ceph balancer ls

删除旧计划:

c 复制代码
ceph balancer rm <plan-name>

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

c 复制代码
ceph balancer eval <plan-name>

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

c 复制代码
ceph balancer execute <plan-name>
相关推荐
珂玥c2 天前
Ceph集群新增osd
ceph
老wang你好3 天前
Ceph分布式存储系统全解析
ceph
一个行走的民16 天前
分布式系统中 Map 增量(Delta)是否需要持久化
ceph
一个行走的民18 天前
BlueStore 核心原理与关键机制
ceph
奋斗的小青年I20 天前
Proxmox VE Ceph 超融合集群落地实战
windows·ceph·vmware·pve·超融合·proxmox
一个行走的民20 天前
深度剖析 Ceph PG 分裂机制:原理、底层、实操、影响、线上避坑(最全完整版)
ceph·算法
一个行走的民20 天前
Ceph 核心概念精讲:彻底搞懂 PG、PGP、pg_num、pgp_num
ceph
Mr.王8351 个月前
Kubernetes宿主机本地盘池化管理
ceph·云原生·容器·kubernetes
一个行走的民1 个月前
CEPH OSD心跳机制
ceph
一个行走的民1 个月前
Ceph PG 状态详解与线上故障处理
网络·ceph