先建立输出骨架
Ceph 的输出有固定骨架:先给集群标识与健康状态,再列各守护角色的实例数量,然后是数据规模与用量,最后是当前读写速率。记住这个顺序,任何一条命令的结果都能快速归位到对应维度。
基本信息
| 整体视图 | status 输出健康、服务、数据与 IO 四段 |
|---|---|
| 容量视图 | df 分原始容量与池容量两段,口径不同 |
| 单盘视图 | osd df 给使用率与偏差,osd tree 给层级与状态 |
| 数据视图 | pg stat 汇总各状态数量,pg dump 输出明细 |
| 版本视图 | versions 列出各组件版本,混版会触发告警 |
| 判读原则 | 先看有无异常状态,再换算成实际影响面 |
典型使用场景
- 交接班巡检:固定几条命令形成可横向对比的基线
- 容量评估:结合原始用量与池可用量判断真实水位
- 单盘排查:定位使用率或延迟异常的个别 OSD
- 变更确认:操作前后各看一次并比较差异
- 故障初判:从健康明细快速判断影响的是容量、副本还是网络
常用命令组合
常用命令组合
ceph status # 摘要:健康、服务、容量与 IO
ceph df # 原始容量与池容量的用量
ceph df detail # 含每池对象数与配额信息
ceph osd df # 每块盘的使用率与偏差
ceph osd tree # 层级、权重与状态
ceph versions # 各组件版本是否一致输出逐列读法
| 字段 | 含义 | 判读要点 |
|---|---|---|
| health | 健康等级 | 异常时立刻看明细,不要停在等级 |
| mon 与 osd 行 | 各角色实例数量 | 与规划不符说明有实例掉线 |
| RAW USED | 原始已用容量 | 含副本与纠删码开销,不等于业务可用量 |
| RAW 使用率 | 原始使用率 | 持续走高需要扩容或复核阈值 |
| MAX AVAIL | 池可写余量 | 取决于剩余最紧的盘,而非总量平均 |
| VAR | 各盘使用偏差 | 越大说明分布越不均衡 |
| objects | 对象总数 | 用于估算恢复时长与元数据规模 |
原始容量与池可用容量是两个口径:原始用量包含冗余带来的放大,池可用余量取决于剩余空间最紧张的盘。评估能否继续写入,看后者更准确。
使用率长期处于高位会削弱恢复能力:剩余空间不足时回填会被暂停,集群可能长时间停留在降级状态。接近水位就应安排扩容,而不是等告警出现。
把命令组合成套路
先用 status 判断性质,用健康明细定位告警项,用 osd tree 与 osd df 确认硬件维度,用 pg 汇总确认数据维度,最后用 versions 排除版本差异造成的假象。固定套路能显著缩短排查路径。