背景最近公司服务器搬迁到外地机房。服务器包含一个ceph存储集群。迁移到新机房需要整体修改服务器ip,所以mon节点的ip也要修改。发现官网有修改ip文档,参考官网记录即可。官网提供了在同一个网络下只修改mon节点ip,ceph集群换到不同网络时修改所有monip的方法。同网修改monip,官网称是一个正确的方法。仅在ceph.conf中更改监视器的IP地址不足以确保集群中的其他监视器收到更新。要更改monitormon的IP地址,您必须使用IP地址添加一个新mon(如添加monitor(手动)中所述),确保新mon成功加入quorum;然后删除具有旧IP地址的mon。最后更新ceph.conf文件以确保客户端和其他守护进程知道新mon的IP地址。在目标节点上手动添加mon节点,并新建一个mon数据目录。{mon-id}名称定义自己。mkdir/var/lib/ceph/mon/ceph-{mon-id}获取mon的keyring文件,保存在临时目录下。cephauthgetmon.-o/tmp/ceph.mon.keyring获取集群的monmap,保存到临时目录。cephmongetmap-o/tmp/monmap格式化mon的data目录并指定上面两步创建的monmap和ceph.mon.keyring文件的路径ceph-mon-i{mon-id}--mkfs--monmap/tmp/monmap--keyring/tmp/ceph.mon.keyring在节点上启动mon进程,它会自动加入集群。守护进程需要知道绑定到哪个IP地址,可以通过--public-addr{ip:port}选项指定systemctlstartceph-mon@{mon-id}ceph-mon-i{mon-id}--public-addr{ip:port}删除mon节点1.停止mon节点systemctlstopceph-mon@{mon-id}2.从ceph集群中删除mon节点cephmonremove{mon-id}3.在ceph中配置文件.conf去掉mon部分,修改所有mon节点的ip。后台说了,我们只是把ceph集群的服务器迁移到了外地的机房。这需要更改mon节点的所有网络。在这种情况下,解决方案是为集群中的所有mon生成一个具有更新IP地址的新monmap,并将新映射注入每个单独的mon。这里我是把192.168.28.0/24网段改成192.168.244.0/24网段。获取单图。如果此时连接不上集群,可以在mon节点上使用第二条命令,指定{mon-id}cephmongetmap-o/tmp/monmapceph-mon-inode3--extract-monmap/tmp/monmapmonmap内容如下:monmaptool:monmapfile/tmp/monmapepoch7fsid9c079a1f-6fc2-4c59-bd4d-e8bc232d33a4last_changed2022-10-08T10:00:04.055141+0000created2022-10-08T03:45:47.301186+0000min_mon_release16(pacific)election_strategy:10:[v2:192.168.28.159:3300/0,v1:192.168.28.159:6789/0]mon.node11:[v2:192.168.248.160:3300/0,v1:192.168.28.160:6789/0]mon.node22:[v2:192.168.28.161:3300/0,v1:192.168.28.161:6789/0]mon.node3删除现有的mon:monmaptool:monmap文件/tmp/monmapmonmaptool:删除node1monmaptool:删除node2monmaptool:删除node3monmaptool:将纪元1写入/tmp/monmap(0个监视器)添加新的mon:monmaptool:monmap文件/tmp/monmapmonmaptool:将纪元1写入/tmp/monmap(3个监视器)停止所有mon服务并注入monmap,每每个mon节点都必须执行;ceph-mon-i{mon-id}--inject-monmap/tmp/monmap需要重启monsystemctlstartceph-mon@{mon-id}根据官网文档执行以上操作最后发现客户端无法连接ceph集群,可以正常监听mon服务,端口通信正常,mon选举状态也正常。cephdaemonmon.cloudmapmon_status稍后检查。有了之前的mon配置,更新完所有节点,重启mon后,客户端就可以正常连接ceph集群了。官网链接:https://docs.ceph.com/en/latest/rados/operations/add-or-rm-mons/
