一、当前集群状态解读
从ceph -s输出可见:
13 块 OSD 全部 up&in,无硬盘离线故障;
174 个 PG 处于remapped+backfilling,13.93% 对象错位(misplaced),集群 HEALTH_WARN;
后台正在执行回填恢复,恢复速度约 13obj/s,进度缓慢;
告警根源:新增单块 OSD 后,Ceph 自动重新均衡 PG 分布,产生大量待迁移对象,属于扩容后正常数据均衡行为,非硬件损坏。
二、核心问题:能不能立刻扩容另外两台主机硬盘?
硬性结论:不建议现在新增第二、第三台硬盘扩容,必须等本次 backfilling 回填修复完成后再操作
风险原因
当前已有 13.93% 数据待迁移,集群带宽、CPU、磁盘 IO 已被回填占满;
此时再加新 OSD,会触发新一轮大规模 PG 重平衡:
待迁移对象量翻倍,恢复速度进一步暴跌;
大量并发回填抢占业务 IO,虚拟机读写卡顿、延迟飙升;
极端场景下出现大量 unclean PG,集群长期停留在 WARN,严重时短暂阻塞业务读写;
UIS ONEStor 底层均衡调度逻辑:多批次扩容叠加会拉长整体均衡周期,原本几小时完成的均衡会拉长至数天。
三、加速当前回填修复的优化手段(不用等待干耗)
1. 调高回填并发(最有效)
bash
运行
# 单OSD最大回填并发数
ceph config set global osd_max_backfills 8
# 单OSD最大修复并发
ceph config set global osd_recovery_max_active 8
# 回填线程数上限
ceph config set global osd_recovery_threads 4
# 放宽后台均衡权重,加速数据迁移
ceph config set global osd_recovery_op_priority 3
默认数值很低,调高后可显著提升 obj/s 恢复速度;业务高峰可适当调低避免影响虚拟机。
2. 关闭回填限速(若未做带宽限制)
bash
运行
ceph config set global osd_backfill_scan_min 64
ceph config set global osd_backfill_scan_max 512
3. 临时降低业务压力
避免新建虚拟机、批量快照、大文件拷贝等高 IO 操作;
关闭非必要存储备份、定时巡检任务,释放磁盘带宽给回填。
四、正确分批扩容流程(规范操作,避免 PG 积压)
新增第一块硬盘 → 等待ceph -s显示所有 PG 变为active+clean、集群 HEALTH_OK;
再新增第二台主机硬盘 → 再次等待均衡修复完成;
最后扩容第三台硬盘,全部均衡完毕后集群稳定。
五、补充排查点(区分正常均衡与真实 PG 故障)
你执行pg repair命令报错是语法错误,正确命令格式(不建议随便执行 repair,会丢失副本):
bash
运行
# 先查询异常PG编号
ceph pg dump | grep unclean
# 修复单PG(仅PG数据损坏时使用,当前只是回填无需执行)
ceph pg repair 1.xxx
当前仅 misplaced/backfilling 属于正常扩容均衡,不是 PG 数据损坏,不要手动执行 pg repair,等待自动均衡即可;
实时查看恢复进度:
bash
运行
ceph -w
# 查看剩余待迁移对象
ceph df
极简总结
当前是新增磁盘后的正常 PG 回填均衡,无需修复 PG,等待自动迁移;
现阶段不能扩容另外两台硬盘,叠加扩容会导致均衡速度暴跌、业务 IO 卡顿;
可通过调高 osd 回填并发参数加速修复;必须等集群 HEALTH_OK、所有 PG active+clean 后,再进行下一批磁盘扩容。
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论