Ceph修改mon ip地址

简介: Ceph修改mon ip地址

背景

        最近公司服务器搬迁至外地机房,服务器中包含ceph存储集群,迁移到新机房需要整体修改服务器ip,因此mon节点的ip也将被修改,发现官网有修改ip的文档,正好参考官网记录一下。官网提供了只更改同一网络里的mon节点ip以及ceph集群更改到不同网络的情况下修改所有mon ip的方法。

修改同一网络里的mon ip

这被官网称为是一种正确的方法。仅更改监视器的 IP 地址ceph.conf不足以确保集群中的其他mon收到更新。要更改监mon的 IP 地址,必须添加一个具有要使用的 IP 地址的新mon节点(如添加监视器(手动)中所述),确保新mon成功加入仲裁;然后移除旧 IP 地址的mon。最后更新ceph.conf文件以确保客户端和其他守护程序知道新mon的 IP 地址。

手动添加mon节点

  1. 在目标节点上,新建 mon 的数据目录。{mon-id} 名称自己定义 。
mkdir /var/lib/ceph/mon/ceph-{mon-id}
  1. 获取 mon 的 keyring 文件,保存在临时目录下。
ceph auth get mon. -o /tmp/ceph.mon.keyring
  1. 获取集群的 mon map 并保存到临时目录下。
ceph mon getmap -o /tmp/monmap
  1. 格式化mon的数据目录并指定上面两步创建的monmap和ceph.mon.keyring文件路径
ceph-mon -i {mon-id} --mkfs --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
  1. 启动节点上的 mon 进程,它会自动加入集群。守护进程需要知道绑定到哪个 IP 地址,可以通过 --public-addr {ip:port} 选择指定
systemctl start ceph-mon@{mon-id}
ceph-mon -i {mon-id} --public-addr {ip:port}

删除mon节点

  1. 停止mon节点
systemctl stop ceph-mon@{mon-id}
  1. 从ceph集群移除mon节点
ceph mon remove {mon-id}
  1. 在ceph.conf配置文件中移除mon部分

修改所有mon节点ip

如背景所说,我们刚迁移了ceph集群的服务器到其他地市的机房。这需要改变mon节点的所有网络。在这种情况下,解决方案是为集群中的所有mon生成具有更新 IP 地址的新 monmap,并将新映射注入每个单独的mon。我这里是将192.168.28.0/24网段变更为192.168.244.0/24网段。

  1. 获取monmap,如果此时已经连接不上集群了可以在mon节点上使用第二条命令,并指定{mon-id}
ceph mon getmap -o /tmp/monmap
ceph-mon -i node3  --extract-monmap /tmp/monmap
  1. monmap内容如下
# monmaptool --print /tmp/monmap 
monmaptool: monmap file /tmp/monmap
epoch 7
fsid 9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4
last_changed 2022-10-08T10:00:04.055141+0000
created 2022-10-08T03:45:47.301186+0000
min_mon_release 16 (pacific)
election_strategy: 1
0: [v2:192.168.28.159:3300/0,v1:192.168.28.159:6789/0] mon.node1
1: [v2:192.168.248.160:3300/0,v1:192.168.28.160:6789/0] mon.node2
2: [v2:192.168.28.161:3300/0,v1:192.168.28.161:6789/0] mon.node3
  1. 删除现有的mon
# monmaptool --rm node1 --rm node2 --rm node3 /tmp/monmap 
monmaptool: monmap file /tmp/monmap
monmaptool: removing node1
monmaptool: removing node2
monmaptool: removing node3
monmaptool: writing epoch 1 to  /tmp/monmap (0 monitors)
  1. 添加新的mon
# monmaptool --add node1 192.168.244.44 --add node2 192.168.244.45  --add node3 192.168.244.46 /tmp/monmap
monmaptool: monmap file  /tmp/monmap
monmaptool: writing epoch 1 to  /tmp/monmap (3 monitors)
  1. 停止所有mon服务并注入monmap,,每个mon节点都要执行
ceph-mon -i {mon-id} --inject-monmap /tmp/monmap
  1. 执行完成后需要重启mon
systemctl start ceph-mon@{mon-id}

按照官网文档执行上述操作后,发现客户端不能连接ceph集群,查看mon服务都能正常监听,且端口通信正常,查看mon选举状态也是正常的。

ceph daemon mon.cloudmap mon_status

640.png

后来查看了ceph.conf配置文件,发现mon的配置还是用的以前的mon配置,所有节点更新后并重启mon后,客户端正常连接ceph集群。

640.png

相关文章
|
4月前
|
存储 对象存储 Swift
Ceph Reef(18.2.X)之对象访问策略配置
这篇文章讲述了对象存储的多种访问方式,包括HTTP、S3cmd、Swift和Python程序访问,并介绍了如何定制存储桶的访问策略和跨域规则。
124 8
Ceph Reef(18.2.X)之对象访问策略配置
|
4月前
|
Shell 容器
Ceph Reef(18.2.X)访问ceph集群的方式及管理员节点配置案例
这篇文章是关于Ceph Reef(18.2.X)版本中访问ceph集群的方式和管理员节点配置的案例,介绍了使用cephadm shell的不同方式访问集群和如何配置管理节点以方便集群管理。
197 5
|
Kubernetes 网络协议 API
node节点加入k8s集群时报错:no such host
node节点加入k8s集群时报错:no such host
402 0
|
Linux
Centos7环境下pcs创建集群VIP一直STOP怎么办?
Centos7环境下pcs创建集群VIP一直STOP怎么办?
284 0
|
Linux
centos7系统永久更改主机名(hostname)的几种方法
在使用centos7系统vps或服务器时,一般都会有一个主机名(hostname),都是主机开通时系统默认分配的。虽然主机名的用处不是很大,不更改也没啥事,但如果看着不顺眼的话,也是可以更改的。下面简单介绍下centos7永久更改主机名的简单方法。
25595 0
centos7系统永久更改主机名(hostname)的几种方法
|
存储 缓存 网络协议
RH358管理DNS和DNS服务器--使用Unbound配置缓存名称服务器
RH358管理DNS和DNS服务器--使用Unbound配置缓存名称服务器
1072 0
RH358管理DNS和DNS服务器--使用Unbound配置缓存名称服务器
|
网络协议
localhost与ip的区别
localhost与ip的区别
572 0
localhost与ip的区别