暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

作为Ceph缓存层的SSD盘故障, 如何更换?

PolarDB 2025-09-11
1

欢迎关注PolarDB公众号.

如需“商务咨询“或”开源交流“, 速加小编微信.

作为Ceph缓存层的SSD盘故障, 如何更换?

接上一篇:

  • 《PolarDB存算分离共享存储 : Ceph SSD+机械盘 2层存储 典型配置实践》

本篇分享: 作为Ceph缓存层的SSD盘故障, 如何更换?

您询问的是在Ceph集群中如何更换故障的SSD盘,这涉及到cache tier中SSD OSD的替换操作。

SSD故障更换详细步骤

1. 确认故障状态

首先检查故障SSD的状态:

# 检查OSD状态
ceph osd tree
ceph osd status

# 检查具体故障OSD(假设故障OSD为osd.40)
ceph osd dump | grep osd.40

2. 标记OSD为out状态

将故障的SSD OSD标记为out,让数据迁移到其他OSD:

# 标记OSD为out(假设故障SSD OSD ID为40)
ceph osd out osd.40

# 监控数据迁移进度
ceph -w

3. 停止OSD服务

在故障主机上停止OSD服务:

# 使用cephadm停止OSD服务
ceph orch daemon stop osd.40

# 或者直接停止systemd服务
systemctl stop ceph-osd@40

4. 移除故障OSD

从集群中完全移除故障OSD:

# 移除OSD(--replace保留OSD ID用于新设备)
ceph orch osd rm 40 --replace --zap

# 监控移除状态
ceph orch osd rm status

5. 物理更换SSD设备

  • 关闭主机电源
  • 更换故障的SSD设备(/dev/nvme1n1)
  • 重新启动主机

6. 准备新SSD设备

确保新SSD设备可用:

# 清理新设备(如果需要)
ceph orch device zap <hostname> dev/nvme1n1

# 检查设备状态
ceph orch device ls

7. 重新部署SSD OSD

使用原有的OSD规格重新部署:

# 应用SSD OSD规格(会自动使用被标记为destroyed的OSD ID)
ceph orch apply osd --service-id ssd_tier --dry-run

# 确认无误后执行
ceph orch apply osd --service-id ssd_tier

8. 验证新OSD状态

确认新OSD正常工作:

# 检查新OSD状态
ceph osd tree
ceph osd status

# 确认OSD已加入正确的CRUSH设备类
ceph osd crush tree --show-shadow

# 检查cache tier状态
ceph osd pool stats cache_pool

9. 重新配置cache tier(如果需要)

如果cache tier配置受到影响,重新设置:

# 检查cache tier关系
ceph osd tier ls storage_pool

# 如果需要重新设置overlay
ceph osd tier set-overlay storage_pool cache_pool

10. 监控集群恢复

监控集群健康状态和数据恢复:

# 监控集群状态
ceph health detail
ceph -s

# 监控PG恢复进度
ceph pg stat

注意事项

  1. 数据安全: 在cache tier中,SSD故障通常不会导致数据丢失,因为数据最终存储在HDD层
  2. 性能影响: SSD故障期间,缓存功能会受影响,读写性能可能下降
  3. 自动化: 使用--replace
    标志可以保留原OSD ID,简化重新部署过程

Notes

这个流程利用了cephadm的设备替换功能  ,可以自动化处理大部分替换步骤。由于您使用的是cache tier架构,SSD故障主要影响缓存性能,不会造成数据丢失,因为持久化数据存储在HDD层。


文章转载自PolarDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论