Akemi

Ceph-OSD更换

2025/07/14

在集群维护期间,集群可以在降级状态下操作和服务客户端。但是,添加或移除osd会影响集群性能。回填操作会在osd之间产生大量数据传输,导致集群性能下降。

1
2
3
4
5
6
7
8
9
10
在执行集群维护之前评估潜在的性能影响:

1.Client load客户端负载
2.Node capacity节点规模
3.Spare cluter capacity备用集群容量
4.CRUSH rules映射规则,每个使用特定CRUSH层次结构的池都会受到性能影响
5.Pool types池类型
复制池使用更多的网络带宽来复制数据副本
擦除编码池使用更多的CPU来计算数据和编码块
6.Node hardware硬件

替换一个失败的OSD

Ceph存储的设计是自我修复:
当某个存储设备出现故障时,其他ssd盘上的数据会自动回填,使集群恢复到健康状态

检查物理设备是否故障
当存储设备故障时,OSD状态变为down
其他集群问题比如网络错误,也会将某个OSD标记为down

更换物理设备
故障OSD既需要更换物理存储设备,也需要更换软件定义OSD。当某个OSD故障时,可以更换物理存储设备

重新使用该OSD ID或创建新的OSD ID,重用相同的OSD ID可以避免重新配置CRUSH

检查OSD是否失败流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1.查看集群状态
ceph health detail

2.识别失败OSD
ceph osd tree | grep -i down

3.找到OSD所在节点
ceph osd find osd.OSD_ID

4.尝试启动失败的OSD
ceph orch daemon start osd.OSD_ID

如果OSD未启动,则可能是物理存储设备故障
通过journalctl命令查看OSD日志
systemctl list-units 'ceph*'
journalctl -f -u ceph-8b27889e-52af-11f0-bedb-bc2411f9a113@osd.4.service

更换物理设备

如果确认物理设备需要更换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
1.暂时禁用擦洗
ceph osd set noscrub
ceph osd set nodeep-scrub

2.移除OSD
ceph osd out OSD_ID

3.观察集群事件并验证回填操作已经开始
ceph -w

4.确认回填过程已经将所有pg移出OSD,现在可以安全移除
while ! ceph osd safe-to-destroy osd.OSD_ID; do sleep; done

5.更换物理设备并销毁OSD
ceph orch device zap HOST_NAME _OSD_ID --force
# ceph orch device zap cephadm-3 /dev/sdc --force
# zap successful for /dev/sdc on cephadm-3

6.查找OSD 将其删除(手动)
ceph orch osd rm OSD_ID --replace

7.更换物理设备后重新创建OSD
查找设备路径
ceph orch device ls
添加OSD
ceph orch daemon add osd HOST_NAME:_DEVICE_PATH_
# ceph orch daemon add osd cephadm-3:/dev/sdc

8.启动osd
ceph orch daemon start
# ceph orch daemon start osd.1

9.重新启用擦洗
ceph osd unset noscrub
ceph osd unset nodeep-scrub

ceph -w
2025-07-14T07:23:08.557399-0400 mon.cephadm-3 [WRN] Health check update: Degraded data redundancy: 105/1824 objects degraded (5.757%), 37 pgs degraded, 9 pgs undersized (PG_DEGRADED)
2025-07-14T07:23:21.013854-0400 mon.cephadm-3 [WRN] Health check update: Degraded data redundancy: 105/1824 objects degraded (5.757%), 36 pgs degraded, 9 pgs undersized (PG_DEGRADED)

可以看到已经开始数据回填了
CATALOG
  1. 1. 替换一个失败的OSD