ceph修改public_network

获取mon map

1
ceph mon getmap -o monmap

查看mon map:

1
2
3
4
5
6
7
8
9
10
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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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节点即可

1
2
3
4
5
6
7
8
9
10
11
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拉不起或者损坏带来的数据丢失。

1
ceph osd set noout

(3)停止所有的mon服务

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

注入新的monmap

1
2
3
4
5
6
7
8
9
10
11
去到各自的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

重启所有服务

1
2
重启每个节点对应角色的target服务,如osd节点:
systemctl restart ceph-osd.target