Ceph升级后Monitor守护进程运行但未加入仲裁如何修复
Ceph Monitor卡在probe状态(monmap相关问题)修复方案
问题根因
操作流程中出现的核心错误为:在移除mon1节点后才执行monmap获取操作,后续为mon1执行--mkfs初始化时使用的是不包含mon1节点信息的过时monmap。即便后续在集群侧执行了ceph mon add添加mon1节点,mon1本地存储的monmap依然没有集群的正确关联配置,导致无法与其他mon节点通信同步,长期卡在probe状态。
修复步骤
- 停止mon1节点的monitor服务
systemctl stop ceph-mon@mon1 - 登录当前处于quorum中的正常mon节点,获取最新的monmap(该版本monmap已包含后续手动添加的mon1节点信息)
ceph mon getmap -o /tmp/monmap_latest - 将新获取的
monmap_latest文件拷贝到mon1节点的临时目录下 - 清空mon1节点上旧的monitor数据目录内容
rm -rf /var/lib/ceph/mon/ceph-mon1/* - 使用最新monmap重新初始化monitor文件系统,注意替换命令中keyring的实际存放路径
sudo -u ceph ceph-mon --mkfs -i mon1 --monmap /tmp/monmap_latest --keyring <你的ceph.mon.keyring存放路径> - 启动mon1节点的monitor服务
systemctl start ceph-mon@mon1 - 执行
ceph -s验证集群状态,确认mon1已经成功加入quorum即可
可选验证项
如果执行上述步骤后仍存在异常,可补充检查:
- 确认mon1节点
/etc/ceph/ceph.conf中的mon_host配置项已包含所有集群monitor节点的IP,避免本地配置错误导致无法拉取最新集群信息 - 执行
ceph mon dump检查集群侧monmap记录的mon1地址、端口与实际配置一致,无旧地址残留
内容的提问来源于stack exchange,提问作者Nyquillus
相关产品推荐
相关产品推荐

