Ceph 故障排除:OSD 已删除但 cephadm 仍报告失败
问题描述
在 Ceph 集群中删除 OSD 后,执行 ceph health detail 仍然报告失败:
HEALTH_WARN 1 failed cephadm daemon(s)
[WRN] CEPHADM_FAILED_DAEMON: 1 failed cephadm daemon(s)
daemon osd.155 on szzs-storage-d11-0407-06 is in error state
即使 OSD 已经从 CRUSH map 和 OSD map 中删除,cephadm 服务仍在节点上尝试管理这个 daemon,导致持续报告失败。
问题分析
这是 Ceph 集群中的常见问题:cephadm 服务仍在问题节点上尝试启动已被删除的 OSD daemon,但 OSD 已经不存在,所以一直处于 error 状态。
解决步骤
1. 确认 OSD 状态
ceph osd tree | grep 155
ceph osd dump | grep "osd.155"
2. 清理 cephadm 中的 daemon 记录(推荐)
# 查看 osd.155 的 daemon 信息
ceph orch ps --daemon_name osd.155
# 强制删除 daemon 记录
ceph orch daemon rm osd.155 --force
3. 如果上面不行,手动清理
# 登录到问题节点
ssh szzs-storage-d11-0407-06
# 查看并清理 container
podman ps -a | grep osd.155
podman rm -f <container_id>
# 清理 systemd 服务(如果有)
systemctl disable ceph-osd@155
systemctl reset-failed ceph-osd@155
# 退出 SSH
exit
4. 清理 inventory 中的 OSD 记录
# 查看 cephadm inventory
ceph orch host ls
# 刷新主机信息
ceph orch host refresh szzs-storage-d11-0407-06
5. 最后检查
ceph health detail
ceph orch ps | grep osd.155
总结
最可能的解决方案是第 2 步的 ceph orch daemon rm osd.155 --force,这会让 cephadm 停止尝试管理这个已经不存在的 OSD。
执行完成后,ceph health 应该恢复正常。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。






