背景:需要對已部署好的Ceph集群切換網絡,包含公共網絡和集群網絡
1 關閉所有mon節點的mon服務並修改服務器IP
systemctl stop ceph-mon@storage01.service
sed -i "s/172.18.0.81/172.18.0.131/g" /etc/sysconfig/network-scripts/ifcfg-eth0
systemctl restart network
2 修改每台服務器的/etc/hosts
修改為新的IP
3 修改ceph集群每台服務器中的ceph.conf
修改為新的IP
4 生成新的monmap
monmaptool --create --generate -c /etc/ceph/ceph.conf /etc/ceph/monmap
5 查看monmap
monmaptool --print monmap
6 刪除原有monmap 中的原來的mon名稱
noname-a ,noname-b,noname-c 是系統自動生成的
monmaptool --rm {noname-a} --rm {noname-b} --rm {noname-c} monmap
7 添加正確的monmap
monmaptool --add storage01 172.28.52.81:6789 --add storage02 172.28.52.82:6789 --add storage03 172.28.52.83:6789 monmap
注意:Nautilus 14.2.* 采用mgrs v2,mon 同時監聽6789,3300
monmaptool --addv u1 "[v2:192.168.122.231:3300/0,v1:192.168.122.231:6789/0]" monmap
monmaptool --addv u2 "[v2:192.168.122.232:3300/0,v1:192.168.122.232:6789/0]" monmap
monmaptool --addv u3 "[v2:192.168.122.233:3300/0,v1:192.168.122.233:6789/0]" monmap
或
monmaptool --feature-set nautilus monmap
monmaptool --add u1 192.168.122.231 --add u2 192.168.122.232 --add u3 192.168.122.233 monmap
monmaptool --feature-unset nautilus monmap
8 分發新的monmap
把monmap 拷貝到每一個mon節點
9 載入monmap
ceph-mon -i storage01 --inject-monmap monmap
注意,有時候ceph-mon 會自動起起來,這個時候重新加載monmap的時候會報錯說mon服務被鎖住,停止mon服務就可以了
10 啟動
systemctl start ceph-mon@storage01.service
啟動mon后 osd數據同步服務還是在老的IP和端口上,也需要重啟osd
systemctl restart ceph-osd.target
檢查osd 進程啟動的IP和端口
netstat -nlp|grep osd
注意事項:
1 一定要先關閉Mon
2 修改IP的時候一定要所有的mon都載入新的monmap 的時候再啟動mon