修改Ceph 監視器位址

2021-07-15 05:02:14 字數 3992 閱讀 2602

您是否有過因為大意將ceph monitor位址配置錯的經歷? 我曾經就因為馬大哈,將ceph monitor的位址配置成了管理網路位址,而且是在使用了2天後才發現。(⊙﹏⊙)b

直接修改ceph.conf配置不就行了麼?真有這麼簡單!要知道ceph是將monitor配置資訊儲存在monmap中的,修改ceph.conf中的配置後,重新啟動monitor,讀取monmap時必然會出現資訊不匹配,該monitor就無法加入仲裁,也就沒法與其他的monitor通訊,整個操作就是失敗的!

既然直接修改ceph.conf配置不行,那遇到這種情況,該怎麼處理呢? 請看下文::)

下文的操作方法在centos7.1 上安裝的hammer 0.94.1上驗證有效;配置資訊來自真實的環境,為保證安全,抹去了具體位址資訊

轉儲當前ceph集群的monmap到/tmp/monmap檔案

[root@ceph-***-*** ~]# ceph mon getmap -o /tmp/monmap

got monmap epoch 4

我的示例ceph集群中包含三個monitor節點

root@ceph-***-*** ~]# monmaptool --print /tmp/monmap

monmaptool: monmap file /tmp/monmap

epoch 4

fsid 1ee20ded-caae-419d-9fe3-5919f129cf55

last_changed 2016-02-26

17:10:47.603764

created 0.000000

0: 192.168

.***

.***:6789/0 mon.ceph-***-***

1: 192.168

.***

.xxy:6789/0 mon.ceph-***-xxy

2: 192.168

.***

.xxz:6789/0 mon.ceph-***-xxz

逐一刪除monmap中的節點資訊:

root@ceph-***-*** ~]# monmaptool --rm ceph-***-*** /tmp/monmap 

monmaptool: monmap file /tmp/monmap

monmaptool: removing ceph-***-***

monmaptool: writing epoch 4 to /tmp/monmap (2 monitors)

//按照上述方法刪除三個節點後,/tmp/monmap的內容如下:

[root@ceph-***-*** ~]# monmaptool --print /tmp/monmap

monmaptool: monmap file /tmp/monmap

epoch 4

fsid 1ee20ded-caae-419d-9fe3-5919f129cf55

last_changed 2016-02-26

17:10:47.603764

created 0.000000

原有的monitor資訊刪除後,新增三個新的monitor節點,如下:

[root@ceph-***-*** ~]# monmaptool --add ceph-***-xxm 192.168.***.xxm:6789 /tmp/monmap 

monmaptool: monmap file /tmp/monmap

monmaptool: writing epoch 4 to /tmp/monmap (1 monitors)

//新增完成三個新的monitor節點後,/tmp/monmap內容如下

[root@ceph-***-*** ~]# monmaptool --print /tmp/monmap

monmaptool: monmap file /tmp/monmap

epoch 4

fsid 1ee20ded-caae-419d-9fe3-5919f129cf55

last_changed 2016-02-26

17:10:47.603764

created 0.000000

0: 192.168

.***

.xxm:6789/0 mon.ceph-***-xxm

1: 192.168

.***

.xxn:6789/0 mon.ceph-***-xxn

2: 192.168

.***

.xxl:6789/0 mon.ceph-***-xxl

[root@ceph-***-*** ~]#ifdown eth* && ifup eth*

[root@ceph-***-xxy ~]#ifdown eth* && ifup eth*

[root@ceph-***-xxz ~]#ifdown eth* && ifup eth*

在admin節點上修改ceph.conf中的mon_host配置,然後通過ceph-deploy推送到所有monitor節點:

[root@ceph-***-xxm ~]#cat ceph.conf

[global]

......

mon_host = 192.168.***.xxm,192.168.***.xxn,192.168.***.xxl

......

[root@ceph-***-xxm ~]#ceph-deploy admin overwrite-conf ceph-***-xxm ceph-***-xxn ceph-***-xxl

停止各節點上的monitor服務,將/tmp/monmap檔案檔案拷貝到其他節點,並注入新的monmap記錄:

[root@ceph-***-xxm ~]#/etc/init.d/ceph stop mon

[root@ceph-***-xxm ~]#ceph-mon -i ceph-***-xxm --inject-monmap /tmp/monmap

[root@ceph-***-xxn ~]#/etc/init.d/ceph stop mon

[root@ceph-***-xxn ~]#ceph-mon -i ceph-***-xxn --inject-monmap /tmp/monmap

[root@ceph-***-xxl ~]#/etc/init.d/ceph stop mon

[root@ceph-***-xxl ~]#ceph-mon -i ceph-***-xxl --inject-monmap /tmp/monmap

啟動各節點上的monitor服務:

[root@ceph-***-xxm ~]# /etc/init.d/ceph start mon

[root@ceph-***-xxn ~]# /etc/init.d/ceph start mon

[root@ceph-***-xxl ~]# /etc/init.d/ceph start mon

最後重啟所有的osd服務:

[root@ceph-***-xxm ~]# /etc/init.d/ceph restart osd

[root@ceph-***-xxn ~]# /etc/init.d/ceph restart osd

[root@ceph-***-xxn ~]# /etc/init.d/ceph restart osd

整個過程還是挺簡單的,希望對大家有用!

mysql 鎖監視器 MySQL鎖監視器

還在為看不懂何登成的加鎖處理分析文章感到羞愧嗎?還在因為何大師的筆誤,陷入深深的迷茫嗎?只要你擁有大於5.6.16版本的mysql,鎖監視器你值得擁有 快速入門 開啟set global innodb status output on set global innodb status output ...

mysql 鎖監視器 MySQL鎖監視器

標籤 還在為看不懂何登成的加鎖處理分析文章感到羞愧嗎?還在因為何大師的筆誤,陷入深深的迷茫嗎?只要你擁有大於5.6.16版本的mysql,鎖監視器你值得擁有 快速入門 開啟set global innodb status output on set global innodb status outp...

效能監視器

效能監視器捕捉硬體和軟體部件,如處理器 程序 執行緒等生成的效能資料,由此跟蹤資源狀態。執行效能監視器,通過執行命令提示符指令 perfmon如圖 為了獲得以前只在效能監視器中可用的大量資料的實時快照,sql server現在通過一組動態管理檢視 dmv 和動態管理函式 dmf 在內部提供了相同的資...