Ceph修改OSD和Monitor的網路

2022-04-07 18:31:13 字數 3147 閱讀 8093

ceph修改osd和monitor的網路。隨著ceph的應用越來越深入,我們也遇到了越來越多的需求,本次我們將講一下如何修改osd和monitor的網路。

ceph應用中,在部署完ceph集群並執行一段時間後,我們很可能會遇到機房網路變動,或集群網路公升級的情況,這時我們都期望能在儘量減少對現有ceph集群影響的情況下,修改ceph的osd和monitor網路,而不是簡單粗暴的重新部署ceph集群。

本文基於ceph的官方文件和作者的實踐,給出了正確修改ceph osd和monitor網路的方法。

ceph版本:hammer 0.94.5

測試系統環境:ubuntu 14.04

由於ceph osd的網路配置是啟動時讀取ceph.conf配置動態載入的,所以修改osd的網路比較簡單,步驟如下:

修改下ceph.conf中pubulic/cluster network資訊

例如:public network = 172.16.1.0/24

cluster network = 172.16.1.0/24

把ceph.conf更新到所有osd節點測配合

ceph-deploy --overwrite-conf config push

重啟所有的osd daemon

restart ceph-all

檢查osd使用的網路

# netstat -nap | grep ceph-osd

tcp 0 0 172.16.1.16:844 0.0.0.0:* listen 23412/ceph-osd

tcp 0 0 172.16.1.16:812 0.0.0.0:* listen 19423/ceph-osd

tcp 0 0 172.16.1.16:845 0.0.0.0:* listen 23412/ceph-osd

tcp 0 0 172.16.1.16:813 0.0.0.0:* listen 19529/ceph-osd

因為ceph的monitor是集群中非常重要的模組,它們需要維護一組合理有效的monitor節點資訊,這些節點之間彼此能發現,它們通過選舉達成一致的狀態,來保證整個ceph系統處於乙個可用的一致狀態。

不同於別的ceph daemon通過ceph.conf檔案中的配置來與monitor通訊,monitors之間則通過獨立的monitor map來彼此發現,在monitor map中有monitor的ip資訊,所以單獨通過修改ceph.conf檔案的方法來修改monitor的網路是行不通的。

下面給出了兩種辦法來達到修改monitor網路的目的:

[注:]新的monitor網路跟舊的monitor的網路必須是互通的,否則該方法失效。

新增新的monitor節點步驟如下:

1). 在新的monitor節點建立預設資料夾

ssh

sudo mkdir /var/lib/ceph/mon/ceph-

2). 獲取monitors的keyring檔案,若內部集群沒配置認證,該步會出錯,忽略即可

ceph auth get mon. -o /

3). 獲取monitor map檔案

ceph mon getmap -o /

4). 在新的monitor節點生產monitor所需資料資訊

sudo ceph-mon -i --mkfs --monmap / --keyring /

5). 新增新的monitor到monitor集群,繫結新的ip位址和port

ceph-mon -i --public-addr

刪除舊的monitor節點步驟如下:

1). 在舊的monitor節點停止該monitor

service ceph -a stop mon.

2). 把該monitor從集群中移除

ceph mon remove   

因為該方法一般是通過整體修改monitor map裡的網路資訊,然後重啟monitors,所以會短暫影響ceph集群的服務

1). 獲取現在的monitor map

ceph mon getmap -o /

2).檢視當前的monitor map資訊

$ monmaptool --print /

monmaptool: monmap file /

epoch 1fsid 224e376d-c5fe-4504-96bb-ea6332a19e61last_changed 2012-12-17 02:46:41.591248created 2012-12-17 02:46:41.5912480: 10.0.0.1:6789/0 mon.a1: 10.0.0.2:6789/0 mon.b2: 10.0.0.3:6789/0 mon.c

3).刪除現有的monitors資訊

$monmaptool--rma--rmb--rmc/

monmaptool:monmapfile/monmaptool:removingamonmaptool:removingbmonmaptool:removingcmonmaptool:writingepoch1to/(0monitors)

4).新增新的monitors資訊

$monmaptool--adda10.1.0.1:6789--addb10.1.0.2:6789--addc10.1.0.3:6789/monmaptool:monmapfile/monmaptool:writingepoch1to/(3monitors)

5).檢查新的monitors資訊

$monmaptool--print/monmaptool:monmapfile/epoch1fsid224e376d-c5fe-4504-96bb-ea6332a19e61last_changed2012-12-1702:46:41.591248created2012-12-1702:46:41.5912480:10.1.0.1:6789/0mon.a1:10.1.0.2:6789/0mon.b2:10.1.0.3:6789/0mon.c

6).copy修改後的/檔案到所有monitor節點

7).停止所有的monitor

stop ceph-mon-all

8).注入新的monitor map資訊

ceph-mon-i--inject-monmap/

9).啟動所有的monitro

start ceph-mon-all

修改monitor map裡的資訊,更新後重啟所有monitors

ceph增加osd流程

假如需要新增乙個主機名 osd4 ip 192.168.0.110的osd 1.在osd4建立掛載目錄及放置配置檔案的目錄 ssh 192.168.0.110 這裡是從mon主機ssh到osd4主機 mkdir ceph osd.4 mkdir etc ceph 2.在osd4上格式化ext4的sd...

ceph運維 新增osd

ceph osd create 獲取osd的id號,假設輸出的是2 ssh osd2 登入到要新增到集群的主機 sudo mkdir var lib ceph osd ceph 2 建立新的osd目錄 sudo mkfs.btrfs dev sdb 如果檔案系統用的不是btrfs,在終端輸入mkfs...

ceph 新增osd失敗問題

在ceph集群使用過程中遇到乙個問題,剔除一塊磁碟需要更換新磁碟,使用下面兩個新增命令反覆操作了多次,osd都沒有加到集群裡面,不知道是什麼原因,無奈之下重啟了伺服器,伺服器啟動後,osd設定到了集群中。新增命令應該是生效了,可能是機器處於某種狀態導致新增osd異常,遇到類似問題可以考慮重啟要新增o...