天天看点

CEPH集群更换ip(更换ip前的防范和更换ip后的恢复)

文章目录

  • ​​修改`/etc/hosts`中的ip设置​​
  • ​​修改`ceph.conf`中的ip地址​​
  • ​​获取monmap​​
  • ​​将`monmap`注入到集群​​

最近测试部在测试一些功能,在我们不知情得情况下更换了集群内外网ip,之后直接甩锅到我这里(大哭)

接手到的集群是ceph各个组件之间无法成功通信,不能正常运行,该情根据网上的恢复方法已经不可行。因为ceph mon 命令无法使用,所以不能够通过该命令获取到monmap了。

经过对​​

​monmaptool​

​​工具的调研,发现它可以直接从​

​/etc/ceph/ceph.conf​

​中获取到monmap

所以我的恢复过程如下

修改​

​/etc/hosts​

​中的ip设置

将如下ip映射关系更改为 当前设备ip即可

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost4 localhost4.localdomain4
10.193.56.91 node1
10.193.56.92 node2
10.193.56.93 node3      

修改完成之后​

​scp​

​同步到集群其他节点

修改​

​ceph.conf​

​中的ip地址

其中包括如下ip,全部更改为当前集群设备ip

mon_host = 10.193.56.91,10.193.56.92,10.193.56.93
public)_network = 10.193.0.0/16
cluster_network = 10.193.0.0/16      

修改完成后执行​

​ceph-deploy --overwrite-conf config push node1 node2 node3​

获取monmap

​monmaptool --create --generate -c /etc/ceph/ceph.conf ./monmap​

​ 在当前目录生成monmap文件

这里如果是集群 ip还未更改,可以通过​

​ceph mon getmap -o ./monmap​

​来在当前目录下生成monmap文件

使用​

​monmaptool --print monmap​

​查看集群monmap如下

[root@node1 ~]# monmaptool --print monmap 
monmaptool: monmap file monmap
epoch 0
fsid fb4a710d-7b1e-4efe-9482-e46f590a8dcf
last_changed 2019-05-21 13:57:37.783971
created 2019-05-21 13:57:37.783971
0: 10.193.56.91:6789/0 mon.node1 #主要是更改这一部分,将我们新集群的集群网络ip写入到这里
1: 10.193.56.92:6789/0 mon.node2
2: 10.193.56.93:6789/0 mon.node3      

使用​

​monmaptool --rm node1 --rm node2 --rm node3 ./monmap​

​删除对应mon.id的配置

[root@node1 ~]# monmaptool --rm node1 --rm node2 --rm node3 monmap 
monmaptool: monmap file monmap
monmaptool: removing node1
monmaptool: removing node2
monmaptool: removing node3
monmaptool: writing epoch 0 to monmap (0 monitors)      

再次查看monmap内容如下

[root@node1 ~]# monmaptool --print monmap 
monmaptool: monmap file monmap
epoch 0
fsid fb4a710d-7b1e-4efe-9482-e46f590a8dcf
last_changed 2019-05-21 13:57:37.783971
created 2019-05-21 13:57:37.783971      

将我们当前设备的ip加入到monmap中即可,执行命令​

​monmaptool --add mon.id 10.112.101.141:6789 --add mon.id 10.112.101.143:6789 --add mon.id 10.112.101.142:6789 monmap​

​ 这里填写清楚当前mon的名称即可,如下

[root@node1 ~]# monmaptool --add node1 10.112.101.141:6789 --add node2 10.112.101.143:6789 --add node3 10.112.101.142:6789 monmap
monmaptool: monmap file monmap
monmaptool: writing epoch 0 to monmap (3 monitors)
[root@node1 ~]# monmaptool --print monmap 
monmaptool: monmap file monmap
epoch 0
fsid fb4a710d-7b1e-4efe-9482-e46f590a8dcf
last_changed 2019-05-21 13:57:37.783971
created 2019-05-21 13:57:37.783971
0: 10.112.101.141:6789/0 mon.node1
1: 10.112.101.142:6789/0 mon.node3
2: 10.112.101.143:6789/0 mon.node2      
将​

​monmap​

​注入到集群