Ceph_osd_应急权重调整方案

发布时间 2023-04-24 17:23:09作者: XU-NING

1. 问题背景

集群 pg 数量规划不合理,导致在集群存入大量的数据之后,osd 上的数据分布不均衡,部分 osd 的存储百分比接近或超过 85% 告警阈值,在百分比达到 95% 之后,集群会停止 IO。
由于调整 pg 风险高,需要提前做评估和审核,所以需要使用临时解决方案调整 osd 权重的方式,降低存储数量过高的 osd 权重,降低其 osd 中的存储数据量,避免 osd 使用率达到 95% 阈值。

2. 操作影响

调整 osd 权重之后,集群发生少量的数据均衡,业务无感知

3. 适用版本

TStack-通用

4. 操作范围

任意可操作 ceph 集群的存储节点

5. 操作周期

1 - 2 小时

6. 操作步骤

6.1 查看当前 osd 数据状态

# 列出最大的10个
ceph osd df | sort -rnk 7
# WEIGHT 列为当前集群 osd 使用率百分比
# %USE 列为当前集群 osd 权重
# VAR 列为为当前集群 osd 磁盘使用率/集群平均使用率,值接近 1 为最佳

6.2 计算需要调整的 osd 权重

计算方法: WEIGHT / VAR = [new_weight](保留五位小数)
例如:某 osd 权重为 1.20000,VAR 为 1.2,调整后权重则为 1.20000 / 1.2 = 1.00000

注意:请勿将 WEIGHT 列与 REWEIGHT 列混淆,REWEIGHT 列在正常情况下,值永远为 1.00000

权重值视环境而定(不确定请与产品同学沟通),一般情况只需对峰值进行处理

6.3 调整权重

# [id] 为 osd id
# [new_weight] 为 osd 新权重
# 调整前请将调整的 pg 及 pg 原权重记录,等到 pg 扩容完成之后,调整回原有权重
# 如果在操作过程中发生异常,请使用回退方案
ceph osd crush reweight osd.[id] [new_weight]

注意:每次只可操作一个 osd ,等到所有 PG 都为 active+[其它状态] 可执行下一个 REWEIGHT 操作

7. 回退步骤

# [id] 为 osd id
# [old_weight] 为 osd 原始权重
ceph osd crush reweight osd.[id] [old_weight]