ceph修改public_network

通过 monmap 调整 Ceph public_network,记录 Monitor 网络变更流程。

发表于 2020-11-26 · 本文保留当年的技术记录,使用前请结合当前版本文档核对。

获取mon map

TEXT
ceph mon getmap -o monmap

查看mon map:

TEXT
root@xjcc-1-80:~/piglet/mon# monmaptool --print monmap 
monmaptool: monmap file monmap
epoch 3
fsid 977b0814-6472-45ec-9d89-914c6cf0daf7
last_changed 2020-11-19T15:10:24.859843+0800
created 2020-11-19T02:34:26.993044+0800
min_mon_release 15 (octopus)
0: [v2:10.99.80.1:3300/0,v1:10.99.80.1:6789/0] mon.xjcc-1-80
1: [v2:10.99.80.2:3300/0,v1:10.99.80.2:6789/0] mon.xjcc-2-80
2: [v2:10.99.80.3:3300/0,v1:10.99.80.3:6789/0] mon.xjcc-3-80

删除旧的map配置,添加新的map

修改前,先保存一份用于备份恢复

TEXT
monmaptool --rm {nodename} --rm {nodename} --rm {nodename} monmap

添加新ip配置:
monmaptool --add {nodename} {ip}:6789 --add {nodename} {ip}:6789 --add {nodename} {ip}:6789 monmap

查看修改后的monmap:
root@xjcc-1-80:~/piglet# monmaptool --print monmap 
monmaptool: monmap file monmap
epoch 3
fsid 977b0814-6472-45ec-9d89-914c6cf0daf7
last_changed 2020-11-19T15:10:24.859843+0800
created 2020-11-19T02:34:26.993044+0800
min_mon_release 15 (octopus)
0: v1:10.100.80.1:6789/0 mon.xjcc-1-80
1: v1:10.100.80.2:6789/0 mon.xjcc-2-80
2: v1:10.100.80.3:6789/0 mon.xjcc-3-80

注入前预处理

(1)修改ceph.conf 中的ip地址为新的ip地址,并将配置文件更新至所有节点,monmap拷贝至mon节点即可

TEXT
vi /etc/ceph/ceph.conf
mon_host = ip1,ip2,ip3
public_network = 10.100.64.0/18

----------------------------

更新ceph.conf至所有节点
scp /etc/ceph/ceph.conf root@{nodename}:/etc/ceph/

拷贝monmap至所有mon节点,以备后续的注入
scp monmap root@{nodename}:/root

(2)将集群设置noout,防止重启osd,重平衡带来的负载,若有recover,尽量等recover修复好再进行操作,防止osd拉不起或者损坏带来的数据丢失。

TEXT
ceph osd set noout

(3)停止所有的mon服务

TEXT
去各自的mon节点执行停止服务
systemctl stop ceph-mon@{nodename}

注入新的monmap

TEXT
去到各自的mon节点,执行

ceph-mon -i {nodename} --inject-monmap /root/monmap

查看修改后的mon状态:
root@xjcc-1-80:~/piglet# ceph mon stat
e5: 3 mons at{
xjcc-1-80=[v2:10.100.80.1:3300/0,v1:10.100.80.1:6789/0],
xjcc-2-80=[v2:10.100.80.2:3300/0,v1:10.100.80.2:6789/0],
xjcc-3-80=[v2:10.100.80.3:3300/0,v1:10.100.80.3:6789/0]}, 
election epoch 72, leader 0 xjcc-1-80, quorum 0,1,2 xjcc-1-80,xjcc-2-80,xjcc-3-80

重启所有服务

TEXT
重启每个节点对应角色的target服务,如osd节点:
systemctl restart ceph-osd.target
— END OF NOTE —返回文章归档 ↗