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>
相关推荐
韭菜张师傅2 天前
Ceph环境完全重置指南:彻底清理集群环境
java·网络·ceph
JNU freshman2 天前
Ceph 18(Reef)生产级调优手册
网络·ceph
lisanmengmeng23 天前
ceph 中的OSD
ceph
lisanmengmeng25 天前
CEPH的基本结构
ceph
lisanmengmeng1 个月前
ceph一些命令
ceph
lisanmengmeng1 个月前
cephadm 17.2.5安装部署 (二)
linux·运维·服务器·ceph
only_Klein1 个月前
kubernetes集群下的分布式存储方案-ceph
ceph·kubernetes·分布式存储
苦逼IT运维1 个月前
Helm 实战指南(四):生产环境 Helm 部署 CVAT 全记录:Ceph 存储、GPU 节点污点调度与 HTTPS 指南
ceph·网络协议·https
大新新大浩浩1 个月前
ceph平台-未及时移除故障osd导致根目录100%问题的故障记录
ceph
北亚数据恢复1 个月前
分布式数据恢复—Ceph+TiDB数据恢复报告
分布式·ceph·数据恢复·tidb·服务器数据恢复·北亚数据恢复·存储数据恢复