在生产环境中,ceph集群要求最少配置3个MON,一般情况下很少出现3个MON同时挂掉的情况,但是也不排除出现这种情况的可能,如果集群中的所有MON都损坏了,是不是集群数据就丢失了呢?能不能恢复集群?当然是可以的,ceph中国的一位开发者写了一个工具,来对损坏的MON的数据进行重构,这个工具已经集成到了新版的ceph中,官网上也提供了一个重构的脚本,但是这个脚本似乎有点问题,网上也有一些相关的帖子,但是不够清晰和全面,现在我就一步步的恢复一次,使所有功能都恢复正常。
一.环境准备
1.集群信息
测试环境:3台服务器,3个mon,6个osd,集群状态ok。
这是我的配置文件:
2.模拟mon挂掉(在每台mon上都需要执行)
2.1停止所有mon服务
systemctl stop ceph-mon.target
2.2删除所有mon配置文件(我在这里采用备份的方式)
mv /var/lib/ceph/mon/ceph-node1/ /var/lib/ceph/mon/ceph-node1.back
mv /var/lib/ceph/mon/ceph-node2/ /var/lib/ceph/mon/ceph-node2.back
mv /var/lib/ceph/mon/ceph-node3/ /var/lib/ceph/mon/ceph-node3.back
现在集群已经不可用了
二.收集mon信息
1.创建一个mon临时目录(在node3上执行命令)