Ceph手动修复mon 集群

Posted yanling-coder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ceph手动修复mon 集群相关的知识,希望对你有一定的参考价值。

一、背景介绍

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

本集群有三台mon节点,其中有一台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/ceph-control1/
[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/ceph-control2/
[root@control2 ~] systemctl restart ceph-mon@control2

5、执行ceph -s

以上是关于Ceph手动修复mon 集群的主要内容,如果未能解决你的问题,请参考以下文章

如何手动重启ceph各个节点的服务

007 Ceph手动部署单节点

Ceph修改mon ip地址

ceph集群osd full紧急故障恢复

ceph集群osd full紧急故障恢复

ceph里相关名词解释