ceph集群更换IP地址

ceph集群更换ip地址

修改/etc/hosts中的ip设置(集群所有节点hosts都需要修改)

vi /etc/hosts

192.168.1.185 node1
192.168.1.186 node2
192.168.1.187 node3

修改ceph.conf中的ip地址

vi ceph.conf

[global]
fsid = b679e017-68bd-4f06-83f3-f03be36d97fe
mon_initial_members = node1, node2, node3
mon_host = 192.168.1.185,192.168.1.186,192.168.1.187
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

修改完成后执行 ceph-deploy --overwrite-conf config push node1 node2 node3

获取monmap

monmaptool --create --generate -c /etc/ceph/ceph.conf ./monmap 在当前目录生成monmap文件
这里如果是集群 ip还未更改,可以通过ceph mon getmap -o ./monmap来在当前目录下生成monmap文件

使用monmaptool --print monmap查看集群monmap如下

[root@node1 ~]# monmaptool --print monmap 
monmaptool: monmap file monmap
epoch 0
fsid b679e017-68bd-4f06-83f3-f03be36d97fe
last_changed 2021-04-02 15:21:23.495691
created 2021-04-02 15:21:23.495691
0: 192.168.1.185:6789/0 mon.node1 #主要是更改这一部分,将我们新集群的集群网络ip写入到这里
1: 192.168.1.186:6789/0 mon.node2
2: 192.168.1.187:6789/0 mon.node3

删除对应mon.id的配置

使用monmaptool --rm node1 --rm node2 --rm node3 ./monmap删除对应mon.id的配置(node1、node2、node3取自上面的mon.node1、mon.node2、mon.node3)

[root@node1 ~]# monmaptool --rm node1 --rm node2 --rm node3 monmap 
monmaptool: monmap file monmap
monmaptool: removing node1
monmaptool: removing node2
monmaptool: removing node3
monmaptool: writing epoch 0 to monmap (0 monitors)

再次查看monmap内容如下

[root@node1 ~]# monmaptool --print monmap 
monmaptool: monmap file monmap
epoch 0
fsid b679e017-68bd-4f06-83f3-f03be36d97fe
last_changed 2021-04-02 15:21:23.495691
created 2021-04-02 15:21:23.495691

将我们当前设备的ip加入到monmap中即可

[root@node1 ~]# monmaptool --add node1 192.168.1.185:6789 --add node2 192.168.1.186:6789 --add node3 192.168.1.187:6789 monmap
monmaptool: monmap file monmap
monmaptool: writing epoch 0 to monmap (3 monitors)
[root@node1 ~]# monmaptool --print monmap 
epoch 0
fsid b679e017-68bd-4f06-83f3-f03be36d97fe
last_changed 2021-04-02 15:21:23.495691
created 2021-04-02 15:21:23.495691
0: 192.168.1.185:6789/0 mon.node1
1: 192.168.1.186:6789/0 mon.node2
2: 192.168.1.187:6789/0 mon.node3

此时我们已成功完成修改monmap内容,我们将修改后的monmap 通过scp 同步到集群所有节点

将monmap注入到集群

注入之前请先停止集群内所有的ceph服务,systemctl stop ceph.service 因为需要所有的组件重新读配置文件,主要是mon重新加载monmap来更改集群通信ip

# 每个节点都需要执行,{
    
    {node1}}跟着本机的name修改
systemctl stop ceph

ceph-mon -i {
    
    {
    
    node1}} --inject-monmap ./monmap

# 当执行ceph-mon -i 报错的时候LOCK时候,可以尝试一下方法
# rocksdb: IO error: While lock file: /var/lib/ceph/mon/ceph-node1/store.db/LOCK: Resource temporarily unavailable
ps -ef|grep ceph
# 通过ps查询到ceph进程,kill -9 pid 杀掉所有关于ceph的进程
kill -9 1379
# 杀掉这些进程后,有些进程可能会重启,但是没有关系,接着在执行ceph-mon -i {
    
    {node1}} --inject-monmap ./monmap
ceph-mon -i {
    
    {
    
    node1}} --inject-monmap ./monmap

注入完成后重启systemctl restart ceph.service

systemctl restart ceph.service

重启所有机器

init 6

重启所有机器后,查看ceph集群状态

root@node1:~# ceph -s
  cluster:
    id:     b679e017-68bd-4f06-83f3-f03be36d97fe
    health: HEALTH_WARN
            Degraded data redundancy: 1862/5586 objects degraded (33.333%), 64 pgs degraded, 64 pgs undersized
            application not enabled on 1 pool(s)
            15 slow ops, oldest one blocked for 115 sec, osd.1 has slow ops

  services:
    mon: 3 daemons, quorum node1,node2,node3
    mgr: node3(active), standbys: node1, node2
    osd: 3 osds: 2 up, 2 in

  data:
    pools:   1 pools, 64 pgs
    objects: 1.86 k objects, 6.5 GiB
    usage:   15 GiB used, 1.8 TiB / 1.8 TiB avail
    pgs:     1862/5586 objects degraded (33.333%)
             64 active+undersized+degraded

  io:
    client:   7.3 KiB/s wr, 0 op/s rd, 0 op/s wr

猜你喜欢

转载自blog.csdn.net/qq_36607860/article/details/115413824