【Ceph运维】Ceph手动修复mon 集群

一、背景介绍

ceph 版本为L版,集群由于异常断电,导致文件丢失,ceph mon 数据文件store.db/目录下的sst 文件丢失,所以无法正常启动。

本集群有三台mon节点,其中有一台mon 节点的服务可以正常启动,另外两台无法正常启动。(ceph-mon 命令已经无法执行)

二、 解决过程

因为判断可能出现文件丢失导致的mon无法启动,所以决定重做另两台mon来解决问题

1、本环境中control3的mon是好的,control1和control2是坏的

在control3上导出monmap

[root@control3 ~]monmaptool  --create  --clobber  --fsid  45b34caa-83b8-4c36-833b-544bba873456  --add  control3  172.16.12.43:6789  --add  control1 172.16.12.41:6789    --add  control2  172.16.12.42:6789  /tmp/monmap    
//导出monmap,好的节点写再前面,后面把所有的坏的节点加上即可。

2、将control1 和control2节点上的/var/lib/ceph/mon目录删掉,因为仅仅是文件丢失,并不是认证出现问题,原有的/etc/ceph/目录没有删除。

3、将keyring 文件传到其他节点上

[root@control3 ~]scp   /var/lib/ceph/mon/ceph-control3/keyring   root@control1:/tmp/
[root@control3 ~]scp   /var/lib/ceph/mon/ceph-control3/keyring   root@control2:/tmp/
[root@control3 ~]scp   /tmp/monmap  root@control1:/tmp/
[root@control3 ~]scp   /tmp/monmap  root@control2:/tmp/

4、重做control1和control2的mon

[root@control1 ~] ceph-mon  --cluster    ceph  -i  control1 --mkfs  --monmap  /tmp/monmap  --keyring  /tmp/keyring  -c  /etc/ceph/ceph.conf
[root@control1 ~] chown -R ceph:ceph   /var/lib/ceph/mon
[root@control1 ~] systemctl restart ceph-mon@control1

-------------------------------------------------------------------------
[root@control2 ~] ceph-mon  --cluster    ceph  -i  control2 --mkfs  --monmap  /tmp/monmap  --keyring  /tmp/keyring  -c  /etc/ceph/ceph.conf
[root@control2 ~] chown -R ceph:ceph   /var/lib/ceph/mon
[root@control2 ~] systemctl restart ceph-mon@control2

5、执行ceph -s

posted @ 2020-01-07 12:18  yanling0813  阅读(2922)  评论(0编辑  收藏  举报