Mon失效处理方法

假设环境为三个mon,主机名为mon1、mon2、mon3,现在mon3上面的系统盘损坏,mon的数据完全丢失,现在需要对mon3进行恢复处理

1、停止所有mon进程,可以不停其他进程,需要停止内核客户端以及对外的服务,防止卡死
在mon1机器上执行

/etc/init.d/ceph stop mon

在mon2机器上执行

/etc/init.d/ceph stop mon

2、分别在mon主机上获取当前的monmap
在mon1机器上执行

ceph-mon -i mon1 --extract-monmap /tmp/monmap

备份原始monmap

cp /tmp/monmap /tmp/monmapbk

在mon2机器上执行

ceph-mon -i mon2 --extract-monmap /tmp/monmap

备份原始monmap

cp /tmp/monmap /tmp/monmapbk

3、处理monmap,去掉损坏的mon3的map信息
在mon1机器上执行

monmaptool /tmp/monmap --rm mon3

在mon2机器上执行

monmaptool /tmp/monmap --rm mon3

4、导入修改后的monmap信息
在mon1机器上执行

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

在mon2机器上执行

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

5、启动mon进程
在mon1机器上执行

/etc/init.d/ceph start mon

在mon2机器上执行

/etc/init.d/ceph start mon

6、检查当前的mon信息,应该显示的是只有两个mon,再新加mon即可

ceph -s


写于:2015年11月1日