文档目录

问题说明

本文用于排查 ZStone 4.2.8 断电测试后,数据盘状态无法刷新、存储池无法添加新盘,以及存储池降级并出现 stale PG 的问题。

现象

  • 断电测试后,ZStone 数据盘全部显示为未知状态。
  • 存储池无法添加新盘。
  • 存储池出现降级并存在 stale PG。

适用环境

  • 产品线:ZCF
  • 组件:ZStone
  • 版本:4.2.8
  • 场景:断电测试环境

可能原因

该问题包含以下两个原因:

  1. Temporal 服务在断电后卡住,导致磁盘扫描无法正常执行,数据盘状态无法刷新。
  2. 在两副本环境下直接拔出两个节点各一块 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 会清除现有数据。执行前必须充分评估数据影响。

断电测试后数据盘全部显示为未知状态,存储池出现 stale PG,如何恢复? | 故障排查 · KB | ZStack 资源中心