Ceph Pacific集群删除node3的mon后重新添加提示名称已占用如何解决
报错含义说明
Error EINVAL: name mon.node3 already in use 表示你尝试添加的Monitor实例名称mon.node3已经被集群的cephadm编排器元数据库记录占用,无法重复创建同名的Monitor守护进程实例。
名称被占用但查询不到的原因
你执行的ceph mon remove命令仅完成了以下操作:
- 将node3对应的Monitor实例从集群Monitor法定人数(quorum)中剔除
- 将该实例从集群的monmap(Monitor分布映射表)中移除
因此在ceph status、Dashboard这类基于集群运行状态查询的界面中,不会再显示该Monitor实例。
但该命令不会自动清理cephadm编排层的残留记录,也不会自动删除node3节点本地残留的Monitor数据、服务配置文件:
- cephadm内部的服务状态数据库中仍然保留了
mon.node3的历史条目,你看到的HEALTH_WARN 1 failed cephadm daemon(s)告警,对应的就是这个残留的已删除实例记录 - node3节点本地可能还保留了旧
mon.node3的data目录、systemd服务单元配置,也会导致重新添加时判定名称已被占用
修复操作步骤
要正常重新添加mon.node3到集群,按以下顺序操作即可:
- 先从cephadm编排层清理残留的mon.node3记录
sudo ceph orch daemon rm mon.node3 --force
- 登录node3节点,清理本地残留的Monitor数据与配置
# 停止并禁用残留的mon服务 CEPH_FSID=$(sudo ceph fsid) sudo systemctl stop ceph-${CEPH_FSID}@mon.node3 sudo systemctl disable ceph-${CEPH_FSID}@mon.node3 # 删除残留的mon数据目录 sudo rm -rf /var/lib/ceph/mon/ceph-node3 # 重载systemd配置清除失效条目 sudo systemctl daemon-reload
- 回到集群任意管理节点重新执行添加命令即可
sudo ceph orch daemon add mon node3:10.0.0.4
内容的提问来源于stack exchange,提问作者Ralph
相关产品推荐
相关产品推荐

