天天看點

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​

​注入到叢集