适用场景
- 产品:
ZCF - 组件:
ZCE-X - 版本:
4.4.x、4.2.x、4.x - 操作系统:
C76 - 环境: 双管理节点
- 触发条件:缓存盘性能异常,导致该缓存盘对应的 OSD 无法启动,需要更换缓存盘。
问题现象
- 某块缓存盘异常。
- 该缓存盘对应的 OSD 无法启动。
- 需要对单台故障物理机执行缓存盘替换与 OSD 重建。
判断方法
- 确认问题定位到缓存盘性能异常。
- 确认对应 OSD 已离线且需要从存储池移除。
- 更换后检查新缓存盘、OSD、存储池和 Ceph 状态恢复正常。
原因说明
故障根因是缓存盘性能异常,导致关联 OSD 无法启动,因此需要先拆除对应 OSD 和缓存盘,再添加新缓存盘并重建 OSD。
解决方案
- 执行前准备
- 风险等级:低风险。
- 预计耗时约
1 小时。 - 仅对故障物理机执行变更,不影响其他云主机业务。
- 变更前关闭全局高可用,并在存储侧设置“禁止数据恢复”。
- 处理步骤
- 在云平台关闭全局高可用。
- 预期结果:平台进入可变更状态。
- 在存储平台开启“禁止数据恢复”。
- 预期结果:降低变更过程中数据重平衡带来的 IO 波动。
- 在问题节点逐个处理需要删除的 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 已安全停用。
- 从存储池中移除对应的 OSD 数据盘。
- 预期结果:OSD 数据盘从存储池移除成功。
- 删除 OSD 数据盘。
- 删除完成后,应确认缓存盘分区使用情况为
0/N。 - 预期结果:缓存盘不再被任何数据盘占用。
- 删除 SSD 缓存盘。
- 预期结果:旧缓存盘已从平台逻辑层清除。
- 确认故障盘物理位置后更换缓存盘。
- 若系统未识别新盘,需要手动设置磁盘直通。
- 预期结果:新缓存盘被系统识别。
- 添加新的 SSD 缓存盘。
- 根据实际情况设置分区个数。
- 预期结果:新缓存盘添加成功。
- 添加 OSD 数据盘。
- 在硬盘管理中添加数据盘。
- 打开缓存开关,内存读缓存与缓存模式保持默认。
- 等待状态变为“健康”。
- 预期结果:新 OSD 数据盘创建完成。
- 将 OSD 数据盘重新加入原存储池。
- 预期结果:存储池重新接纳新 OSD。
- 开启数据恢复。
- 等待集群数据状态恢复为
100%。 - 预期结果:数据恢复完成。
- 做存储状态检查。
- 预期结果:存储环境恢复正常。
- 恢复云平台。
- 在云平台启用维护模式物理机。
- 将全局高可用设置为
True。 - 预期结果:平台恢复正常运行。
验证方法
- 检查新缓存盘已被识别并添加成功。
- 检查 OSD 状态健康。
- 检查存储池添加完成。
- 检查 Ceph 数据恢复完成并处于正常状态。
- 检查平台物理机重新连接成功。
风险与回滚
- 风险:硬盘更换、OSD 删除与恢复过程若顺序错误,可能影响数据安全。
- 风险:开启数据恢复时若 QoS 不受控,可能带来业务 IO 波动。
- 风险等级:低。
- 回滚:若新硬盘异常,则将原盘换回原槽位,按原有分区重新添加硬盘、重新添加 OSD 和存储池,并设置低速 QoS 恢复,待
ceph -s输出OK后再恢复高可用。
