文档目录

适用场景

  • 产品:ZCF
  • 组件:ZCE-X
  • 版本:4.4.x、4.2.x、4.x
  • 操作系统:C76
  • 环境: 双管理节点
  • 触发条件:缓存盘性能异常,导致该缓存盘对应的 OSD 无法启动,需要更换缓存盘。

问题现象

  • 某块缓存盘异常。
  • 该缓存盘对应的 OSD 无法启动。
  • 需要对单台故障物理机执行缓存盘替换与 OSD 重建。

判断方法

  1. 确认问题定位到缓存盘性能异常。
  2. 确认对应 OSD 已离线且需要从存储池移除。
  3. 更换后检查新缓存盘、OSD、存储池和 Ceph 状态恢复正常。

原因说明

故障根因是缓存盘性能异常,导致关联 OSD 无法启动,因此需要先拆除对应 OSD 和缓存盘,再添加新缓存盘并重建 OSD。

解决方案

  1. 执行前准备
  • 风险等级:低风险。
  • 预计耗时约 1 小时。
  • 仅对故障物理机执行变更,不影响其他云主机业务。
  • 变更前关闭全局高可用,并在存储侧设置“禁止数据恢复”。
  1. 处理步骤
  2. 在云平台关闭全局高可用。
  • 预期结果:平台进入可变更状态。
  1. 在存储平台开启“禁止数据恢复”。
  • 预期结果:降低变更过程中数据重平衡带来的 IO 波动。
  1. 在问题节点逐个处理需要删除的 OSD。
  • 单次只能操作一个节点上的 OSD。
  • 对每个 OSD 执行:
     echo xstore3 > /var/lib/ceph/osd/ceph-{osd_id}/type
     cat /var/lib/ceph/osd/ceph-{osd_id}/type
     systemctl stop ceph-osd@{osd_id}
     systemctl status ceph-osd@{osd_id}
  • 确认集群没有 inactive / peering / unknown / unfound 状态 PG 后,再执行界面移除。
  • 预期结果:目标 OSD 已安全停用。
  1. 从存储池中移除对应的 OSD 数据盘。
  • 预期结果:OSD 数据盘从存储池移除成功。
  1. 删除 OSD 数据盘。
  • 删除完成后,应确认缓存盘分区使用情况为 0/N。
  • 预期结果:缓存盘不再被任何数据盘占用。
  1. 删除 SSD 缓存盘。
  • 预期结果:旧缓存盘已从平台逻辑层清除。
  1. 确认故障盘物理位置后更换缓存盘。
  • 若系统未识别新盘,需要手动设置磁盘直通。
  • 预期结果:新缓存盘被系统识别。
  1. 添加新的 SSD 缓存盘。
  • 根据实际情况设置分区个数。
  • 预期结果:新缓存盘添加成功。
  1. 添加 OSD 数据盘。
  • 在硬盘管理中添加数据盘。
  • 打开缓存开关,内存读缓存与缓存模式保持默认。
  • 等待状态变为“健康”。
  • 预期结果:新 OSD 数据盘创建完成。
  1. 将 OSD 数据盘重新加入原存储池。
  • 预期结果:存储池重新接纳新 OSD。
  1. 开启数据恢复。
  • 等待集群数据状态恢复为 100%。
  • 预期结果:数据恢复完成。
  1. 做存储状态检查。
  • 预期结果:存储环境恢复正常。
  1. 恢复云平台。
  • 在云平台启用维护模式物理机。
  • 将全局高可用设置为 True。
  • 预期结果:平台恢复正常运行。

验证方法

  • 检查新缓存盘已被识别并添加成功。
  • 检查 OSD 状态健康。
  • 检查存储池添加完成。
  • 检查 Ceph 数据恢复完成并处于正常状态。
  • 检查平台物理机重新连接成功。

风险与回滚

  • 风险:硬盘更换、OSD 删除与恢复过程若顺序错误,可能影响数据安全。
  • 风险:开启数据恢复时若 QoS 不受控,可能带来业务 IO 波动。
  • 风险等级:低。
  • 回滚:若新硬盘异常,则将原盘换回原槽位,按原有分区重新添加硬盘、重新添加 OSD 和存储池,并设置低速 QoS 恢复,待 ceph -s 输出 OK 后再恢复高可用。
ZCE-X 存储节点缓存盘更换 | 技术方案 · KB | ZStack 资源中心