知识库技术方案删除 ZStone 集群中的异常空存储池

删除 ZStone 集群中的异常空存储池

技术方案ZCF · ZStone适用版本2.2.27 / 4.2.8文章 IDKB-100549更新于2026-08-17

问题现象

  • ZStone 存储集群显示异常状态。
  • ceph -s 显示 HEALTH_WARN
  • ceph osd pool ls 返回三个存储池,其中一个存储池名称异常(缺少 pool 前缀)。

适用场景

  • 产品:ZCF。
  • 组件:ZStone。
  • 触发条件:ZStone Ceph 集群因异常存储池而显示 HEALTH_WARN。在本案例中,该存储池的名称在创建时缺少 pool 前缀。该存储池中没有数据,可以删除。

判断方法

  1. 执行 ceph -s,确认显示 HEALTH_WARN
  2. 执行 ceph osd pool ls,找到名称异常的存储池。
  3. 执行 ceph df,确认该异常存储池中没有数据。

原因说明

系统中创建了一个名称错误(缺少 pool 前缀)且为空的存储池,可以将其删除以清除集群告警。

解决方案

1. 执行前准备

  • 将变更方案发送给客户并获得确认。
  • 删除存储池前,在云平台中禁用全局 HA。
  • 在两个管理节点上备份数据库:
  • zstack-ctl dump_mysql
  • mkdir -p /root/zstack-db-backup
  • cd /root/zstack-db-backup
  • zstack-ctl dump_mysql --file-name zstack-db-backup-mn1-$(date +%F-%H%M%S).sql.gz
  • ls -lh

2. 处理步骤

  1. 客户确认变更方案后,禁用全局 HA,并在两个管理节点上备份数据库。
  2. 打开第二个终端并执行:
   watch -n 1 ceph -s
  1. 通过 ceph df 获取异常存储池的名称和 UUID。
  2. 使用 Ceph 删除该存储池:
   ceph osd pool delete <UUID> --yes-i-really-really-mean-it
  1. 删除完成后,确认:
  • 删除操作显示成功。
  • ceph -s 显示集群状态健康。
  • UI 显示集群状态健康。
  1. 在云平台中重新启用全局 HA。

验证方法

  • ceph -s 返回 HEALTH_OK
  • ceph osd pool ls 不再列出名称异常的存储池。
  • ZStone UI 显示集群状态健康。
  • 集群中的云主机和业务负载不受影响。

风险与回滚

  • 删除错误的存储池可能导致数据丢失。执行删除命令前,使用 ceph df 确认目标存储池中没有数据,并使用正确的 UUID。
  • 操作时应禁用全局 HA,避免云平台对临时集群告警作出响应。
  • 最佳实践:安排定期巡检,及时发现名称异常或为空的存储池。