适用场景
- 产品:
ZCF - 组件:
ZCE-X、ZStone - 版本:
5.2.x - 部署形态:三台服务器超融合、双管理节点
- 触发条件:
cube-4上一块缓存盘故障掉盘,系统无法识别,关联多个 OSD 异常,需要更换该缓存盘。
问题现象
cube-4的一块缓存盘已故障掉盘。- 操作系统无法识别该缓存盘。
- 关联
5个 OSD 异常。
判断方法
- 用
casadm -L确认故障缓存盘关联的磁盘。 - 用
lsblk确认盘符与 OSD ID 的对应关系。 - 更换完成后检查新缓存盘、OSD、存储池和集群状态恢复健康。
原因说明
故障节点的一块缓存盘掉盘且不可识别,导致多个 OSD 异常,因此需要先解除缓存盘与 OSD 的关系,再进行缓存盘更换和重建。
解决方案
- 执行前准备
- 风险等级:中风险
- 先关闭云平台全局高可用。
- 在变更节点上持续观察
ceph -s。 - 在存储平台先开启“禁止数据恢复”。
- 处理步骤
- 云平台关闭全局高可用。
- 预期结果:避免变更期间平台误触发高可用动作。
- SSH 登录存储节点,持续观察存储状态:
watch -n 1 ceph -s
- 预期结果:实时掌握存储健康状态变化。
- 在存储平台开启“禁止数据恢复”。
- 预期结果:变更期间避免自动恢复导致额外扰动。
- 识别故障缓存盘关联关系:
casadm -L
lsblk
- 预期结果:明确故障缓存盘对应的 disk 与 OSD 数据盘关系。
- 在存储池中移除该缓存盘关联的 OSD 数据盘。
- 在“存储池”页面执行“移除数据盘”。
- 勾选目标服务器上待更换缓存盘关联的全部 OSD 数据盘。
- 预期结果:关联 OSD 从存储池中安全移出。
- 删除 OSD 数据盘。
- 在“数据盘”页面删除已从存储池移除的 OSD。
- 若为混合存储,OSD 删除后还需删除 SSD 缓存分区。
- 在“硬盘”页面执行“清理缓存”。
- 预期结果:缓存盘上的旧缓存关系和 OSD 关系清理完成。
- 定位并更换故障 SSD 缓存盘。
- 在“硬盘”页面执行“硬盘点灯”定位盘位。
- 若服务器支持热插拔,则直接替换新盘。
- 预期结果:新缓存盘物理替换完成。
- 添加新的 SSD 缓存盘。
- 在“硬盘管理”中设置缓存分区,分区个数保持与更换前一致。
- 预期结果:新缓存盘初始化完成。
- 添加 OSD 数据盘。
- 在“数据盘管理”页面创建数据盘,并启用缓存分区。
- 预期结果:与新缓存盘关联的 OSD 数据盘重新创建完成。
- 在存储池中重新添加 OSD 数据盘。
- 预期结果:OSD 重新纳入存储池。
- 开启数据恢复,并等待集群恢复健康。
- 预期结果:存储数据重新平衡并恢复正常。
- 做存储健康检查。
- 预期结果:集群状态恢复健康。
- 云平台恢复全局高可用。
- 预期结果:平台恢复正常运行。
验证方法
- 检查新缓存盘已被识别并完成分区。
- 检查 OSD 重新创建并加入存储池。
- 检查
ceph -s/ 存储平台状态恢复健康。 - 检查云平台恢复高可用后资源状态正常。
风险与回滚
- 风险:更换缓存盘前若未先移除关联数据盘,可能带来更高的存储数据风险。
- 风险:数据恢复期间可能增加 IO 延迟,影响高 IO 业务云主机。
- 风险等级:中。
- 回滚:无标准命令级回退链路;若出现问题,应立即停止操作、内部同步风险并讨论后续方案。
