替换磁盘步骤
替换磁盘步骤
本文档介绍 Ceph 集群中替换 OSD 磁盘的完整步骤。
关闭平衡
在替换磁盘前,先关闭数据平衡和回填,避免影响数据迁移:
ceph osd set norecover 移除磁盘
移除旧的 OSD(以 osd.97 为例):
ceph osd purge osd.97 --force 格式化并加入磁盘
格式化新磁盘并创建 OSD:
ceph-deploy disk zap cloudholy-store02-5p-04 /dev/sdac ceph-deploy osd create cloudholy-store02-5p-04 --bluestore --data /dev/sdac 导出 OSD Map
导出当前的 OSD map 用于后续计算:
cd /root/ceph-admin ceph osd getmap > osdmap.bin 计算 metadata pool 的 upmap
为 CephFS metadata pool 计算 upmap,优化数据分布:
osdmaptool --upmap-pool cephfs_metadata osdmap.bin --upmap upmap.txt --upmap-deviation 1 --upmap-max 1000 awk '{print $0" &"}' upmap.txt > upmap2.txt source upmap2.txt 计算 data pool 的 upmap
为 CephFS data pool 计算 upmap:
osdmaptool --upmap-pool cephfs_data osdmap.bin --upmap upmap.txt --upmap-deviation 1 --upmap-max 10000 awk '{print $0" &"}' upmap.txt > upmap2.txt source upmap2.txt 开启平衡
完成磁盘替换后,重新开启数据平衡和回填:
ceph osd unset norecover # 开启平衡 ceph osd unset nobackfill # 开启回填 注意:替换磁盘过程中,建议监控集群状态,确保数据迁移正常进行。
本文由作者按照 CC BY 4.0 进行授权