升级 ceph (16.2 -> 18.2) ceph mon 启动失败

ceph 升级后, ceph mon 启动报错:

复制代码
Dec 31 12:55:11 server ceph-mon[15982]: 2025-12-31T12:55:11.930+0800 7f60570a3e40 -1 _open error initializing leveldb db back storage in /var/lib/ceph/mon/ceph-server/store.db
Dec 31 12:55:11 server ceph-mon[15982]: /builddir/build/BUILD/ceph-18.2.6/src/mon/MonitorDBStore.h: In function 'void MonitorDBStore::_open(const std::string&)' thread 7f60570a3e40 time 2025-12-31T12:55:11.930993+0800
Dec 31 12:55:11 server ceph-mon[15982]: /builddir/build/BUILD/ceph-18.2.6/src/mon/MonitorDBStore.h: 635: ceph_abort_msg("MonitorDBStore: error initializing keyvaluedb back storage")

大致原因之前使用 level db,ceph 18.2 使用变为了 rocksdb。

恢复方法,通过 osd 信息重建 mon。

  1. 使用 osd 上存储的信息重建 mon

    ms=
    mkdir $ms

    for host in host_list; do rsync -avz "ms" root@host:"ms"; rm -rf "ms" ssh root@host <<EOF
    for osd in /var/lib/ceph/osd/ceph-*; do
    ceph-objectstore-tool --data-path $osd --op update-mon-db --mon-store-path ms done EOF rsync -avz root@host:ms ms; done

  2. 重建 mon 存储

    ceph-monstore-tool rebuild -- --keyring

如果没有 keyring

复制代码
ceph-monstore-tool <directory> rebuild
  1. 替换

    mv /var/lib/ceph/mon//store.db
    /var/lib/ceph/mon//store.db.corrupted

  2. 导出 mon

    ceph-mon -i --extrace-monmap /tmp/lastmap

  3. 删除 mon ,注意 默认生成的 mon 无法启动,需要删除

    monmaptool --rm a /tmp/lastmap

  4. 重新添加 mon

    monmaptool --add :6789 /tmp/lastmap

  5. 导入 mon

    ceph-mon -i --inject-monmap /tmp/lastmap

  6. 启动 mon

    systemctl start ceph-mon@

相关推荐
Dontla20 小时前
预置known_hosts如何防止中间人攻击(MITM)?(服务器公钥、服务器私钥)Runner、DNS污染、BGP劫持、同网络ARP欺骗、SSH握手
服务器·网络·ssh
Lonely 净土21 小时前
Rocky Linux 安装教程
linux·运维·服务器
Lust Dusk1 天前
记一次Linux应急响应题目解析
linux·运维·服务器·网络·安全·网络安全
凌肖战1 天前
TCP网络通信中setsockopt()函数解决地址已占用问题
服务器·网络·tcp/ip
隔窗听雨眠1 天前
OceanBase旁路导入与自增主键冲突深度解析:原理、排查与解决方案
java·服务器·数据库
lingran__1 天前
Linux 基础常用指令万字详解(上)|文件目录命令,结合底层原理剖析
linux·运维·服务器·后端·centos·linux基础指令
翼龙云_cloud1 天前
阿里云云监控夜间服务器全链路监控告警实操指南
运维·服务器·网络·阿里云·云计算
轻揉小乔 真新人1 天前
T-SQL查询进阶—理解SQL Server中的锁
服务器·数据库·sql
贾天佑忆月 迷失的昵1 天前
客户端与服务器持续同步解析(轮询,comet,WebSocket)
运维·服务器·websocket
zhangfeng11331 天前
宝塔8 升级到 11导致 服务器无法访问外网dns失效了,无法访问bt.cn 解决方法 测试通过
运维·服务器