文档目录

适用场景

  • 产品:ZCF
  • 组件:ZCE-X
  • 涉及对象:ZStack Cloud 5.3.28、双管理、Ceph/OSD、存储池 pool-1
  • 版本:6.4.100.3
  • 触发条件: 需要在不影响云主机正常运行和数据安全的前提下,对单个故障 OSD 盘进行热插拔更换。

问题现象

  • 存在需要更换的单个 OSD 盘。
  • 变更过程中必须确认正确硬盘槽位,否则会造成业务读写延迟甚至操作风险。
  • 热插拔后如果系统未及时识别新硬盘,可能需要迁移云主机或重启物理机。

判断方法

  1. 确认当前环境属于本文适用范围,并记录当前版本、目标版本、系统架构、操作系统、部署形态和存储类型等关键信息。
  2. 通过点灯或槽位确认方式锁定正确 OSD 盘。
  3. 在变更前确认 ceph -s 健康、平台资源状态正常,并具备关闭高可用和数据库备份条件。

原因说明

推荐的目标是对单个故障 OSD 盘进行热插拔更换,并在变更过程中保证云主机正常运行与数据安全,因此需要先执行 OSD 移除、删除,再完成热插拔和重新添加。

解决方案

1. 执行前准备

  • 风险等级:低风险
  • 变更前必须确认正确的 OSD 槽位,避免误拔盘。
  • 提前关闭高可用、备份数据库,并安排业务低峰期执行。
  • 如系统热插拔后不能自动识别新盘,需准备迁移云主机或重启物理机的应急方案。

2. 处理步骤

  1. 检查集群状态与云平台环境。
  • 预期结果:平台与存储状态正常。
  1. 云平台侧关闭全局高可用,并备份数据库。
   zstack-ctl dump_mysql --file-name zstack-db-backup-master
   zstack-ctl dump_mysql --file-name zstack-db-backup-slave
  • 预期结果:高可用关闭完成,主备数据库备份完成。
  1. 新开一个窗口持续观察存储状态。
   watch -n 1 ceph -s
  • 预期结果:可实时监控存储健康情况。
  1. 登录存储平台,打开“禁止数据恢复”。
  • 预期结果:避免移除 OSD 时立即触发恢复行为。
  1. 从存储池移除 OSD 并删除 OSD。
  • 先将待移除 OSD 的 type 修改为 xstore3,并检查配置文件。
   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}
  • 确认 ceph -s 无 inactive / peering / unknown / unfound 状态后,在界面执行移除 OSD。
  • 预期结果:OSD 被成功移出并删除。
  1. 踢除故障盘并执行热插拔更换。
  • 在界面确认盘符为 sdX 的故障 OSD 盘,并对盘符 sdY 的目标盘进行更换。
  • 预期结果:硬盘更换完成且槽位正确。
  1. 添加新的 OSD 盘。
  • 在“资源管理 → 硬盘管理”中点击创建,重新添加 OSD 盘。
  • 预期结果:新的 OSD 被识别并创建成功。
  1. 将新 OSD 加回存储池。
  • 在存储池 pool-1 中添加硬盘,内存读缓存写 256M。
  • 预期结果:存储池添加硬盘成功。
  1. 开启数据平衡,并在更换完成后检查云平台与存储健康。
   zsha2 status
   zstack-ctl status
   ceph -s
  • 完成后重新开启云主机全局高可用。
  • 预期结果:平台与存储状态健康,高可用恢复开启。

验证方法

  • 持续执行 ceph -s,确认无异常 PG 状态,集群恢复健康。
  • 检查新 OSD 已成功加入 pool-1,且平台资源状态正常。
  • 执行 zsha2 status、zstack-ctl status 确认平台运行正常。

风险与回滚

  • 风险:误拔错误 OSD 盘会引发不可预知的数据和业务风险。
  • 风险:热插拔期间可能出现业务读写延迟。
  • 风险:若缩容后剩余容量不足,会影响数据均衡和恢复。
  • 回滚:若更换后异常,应先确认硬盘槽位和 OSD 状态,必要时重新插回原盘、恢复原配置并联系技术支持继续排查。
单个 OSD 盘热插拔更换 | 技术方案 · KB | ZStack 资源中心