问题说明
本文用于排查 ZStone 4.2.8 断电测试后,数据盘状态无法刷新、存储池无法添加新盘,以及存储池降级并出现 stale PG 的问题。
现象
- 断电测试后,ZStone 数据盘全部显示为未知状态。
- 存储池无法添加新盘。
- 存储池出现降级并存在 stale PG。
适用环境
- 产品线:ZCF
- 组件:ZStone
- 版本:4.2.8
- 场景:断电测试环境
可能原因
该问题包含以下两个原因:
- Temporal 服务在断电后卡住,导致磁盘扫描无法正常执行,数据盘状态无法刷新。
- 在两副本环境下直接拔出两个节点各一块 OSD 数据盘,之后将副本数修改为 3,再将两块 OSD 移出存储池,导致部分数据丢失、PG 进入 stale 状态。
排查步骤
1. 检查 Ceph 集群和 PG 状态
- 命令:
ceph -s
ceph health detail
ceph pg <pg_id> query
- 检查项:确认集群整体状态、PG 异常详情和具体 PG 的异常原因。
2. 检查 OSD 日志
- 日志路径:
/var/log/ceph/ceph-osd.<osd_id>.log
- 检查项:根据异常 PG 涉及的 OSD 查看日志,进一步确认故障状态。
3. 处理数据盘未知状态
- 检查项:确认 Temporal 服务是否在断电后卡住。
- 异常处理:重启 Temporal 服务,使磁盘扫描恢复正常,然后确认数据盘状态能够刷新。
4. 处理 stale PG
- 适用边界:仅适用于测试环境或数据已确认无法恢复的场景。
- 处理方式:根据数据影响评估结果,选择强制重建 PG 以恢复集群可用性,或重建 Ceph Pool 并重新搭建上层业务。
Note:
两种处理方式均存在数据丢失风险。强制重建 PG 后剩余数据可能不完整;重建 Ceph Pool 会清除现有数据。执行前必须充分评估数据影响。
