执行Ceph orch host drain后OSD drain耗时久,是否正常?
问题描述
执行以下命令对主机node-three进行drain操作:
sudo ceph orch host drain node-three
操作卡在移除OSD环节,当前OSD移除状态:
node-one@node-one:~$ sudo ceph orch osd rm status OSD HOST STATE PGS REPLACE FORCE ZAP DRAIN STARTED AT 2 node-three draining 1 False False False 2024-04-20 20:30:34.689946
这是测试环境,未向该OSD写入任何数据,当前Ceph集群状态:
node-one@node-one:~$ sudo ceph status cluster: id: f5ac585a-fe8e-11ee-9452-79c779548dac health: HEALTH_OK services: mon: 2 daemons, quorum node-one,node-two (age 21m) mgr: node-two.zphgll(active, since 9h), standbys: node-one.ovegfw osd: 3 osds: 3 up (since 42m), 3 in (since 42m); 1 remapped pgs data: pools: 1 pools, 1 pgs objects: 2 objects, 577 KiB usage: 81 MiB used, 30 GiB / 30 GiB avail pgs: 2/6 objects misplaced (33.333%) 1 active+clean+remapped
请问此情况下ceph orch osd rm drain耗时过长是否属于正常现象?
解答
这种情况不正常。测试环境数据量极小(仅2个对象共577KiB),正常情况下drain操作应该在数秒内完成。
从集群状态输出可以看出问题根源:
- 存在
1 active+clean+remapped的PG,且有2/6 objects misplaced,说明集群正在执行数据重映射,但因为数据量极小,本应快速完成却卡住,属于异常情况。
可能的触发原因:
- 集群PG数量过少(仅1个PG),限制了重平衡的调度效率
- Mgr模块的OSD调度逻辑出现临时延迟
- 默认池存在系统自动生成的元数据对象,导致迁移流程被阻塞
解决建议:
- 手动触发PG修复,强制完成数据重映射:
sudo ceph pg repair 1 - 观察
ceph orch osd rm status,如果仍无进展,可强制终止drain并手动移除OSD:- 停止主机drain操作:
sudo ceph orch host drain stop node-three - 标记目标OSD为out状态:
sudo ceph osd out osd.2 - 等待
ceph status显示所有PG为active+clean后,移除OSD:sudo ceph osd rm osd.2 - (可选)清理主机上的OSD设备数据:
sudo ceph orch osd zap node-three:/path/to/osd-device
- 停止主机drain操作:
内容的提问来源于stack exchange,提问作者Vencat
相关产品推荐
相关产品推荐

