BlueStore替换硬盘
一、替换流程
使用ceph osd tree查看OSD状态,确认故障OSD的ID(如osd.1)及对应设备路径(如/dev/sdb)。
通过ceph osd metadata 1获取OSD的详细元数据,确保新硬盘容量与原硬盘匹配或更大。
销毁故障OSD
执行命令停止并移除OSD元数据:
ceph osd destroy 1 --yes-i-really-mean-it
此操作会从集群中移除OSD,但不会立即擦除磁盘数据,需后续手动清理。
擦除旧磁盘数据
使用ceph-volume lvm zap清除旧OSD的元数据和分区:
ceph-volume lvm zap /dev/sdb
此步骤确保新磁盘无残留数据,避免冲突。
创建新OSD并保留原ID
ceph-volume lvm create --osd-id 1 --data /dev/sdb
二、关键注意事项
新磁盘容量应≥原磁盘,否则可能导致数据无法完整迁移。
若使用SSD替换HDD,需确认集群是否支持混合存储策略。
数据一致性验证
替换完成后,通过ceph -s检查集群健康状态,确保OSD状态为up且无PG处于incomplete状态。
使用ceph df验证存储空间是否正常累加。
权限与执行环境
所有命令需在Ceph监控节点或OSD节点以root权限执行。
若使用Kubernetes部署,需结合rook或ceph-csi工具调整Pod配置。
三、替代方案:在线替换(无OSD ID保留)
格式化新硬盘:ceph-volume lvm create --data /dev/sdb
从集群 中彻底移除旧OSD:ceph osd rm 1
此方法适用于非关键集群或需要优化存储布局的场景。
四、故障排查
CRUSH map不一致:通过ceph osd crush show对比替换前后的配置,必要时手动调整权重或位置。
通过上述步骤,可安全完成Bluestore OSD硬盘的替换,最小化对集群性能的影响。
修改于 2025-04-27 09:24:40