当我们需要把整个 Ceph 集群的网络地址修改为另一个子网地址(与 ceph.conf 的 public addr 等不相同)时,就需要更改 Ceph Monitor,Ceph OSD,Ceph Manager 的监听地址。其中,OSD 和 Manager 的地址是根据 ceph.conf 文件中的配置项 public addr 与 cluster addr 等确定的,因此只需修改文件内容即可。而 Ceph Monitor 的地址则是由 monmap 维护的,直接修改 monmap 会产生不可预料的问题。本文将会给出如何在不直接修改 monmap 的情况下修改 Mon 的 IP 地址。
原 Ceph 集群部署在 10.1.1.0/24 子网上,现在需要部署到 192.168.1.0/24 子网上,且机器已经配置了 192.168.1.0/24 中的地址。
用户相关设置,ceph 的进程将由 ceph 用户执行,该用户为部署 ceph 时自动创建的用户。而执行命令的用户为某一拥有 sudo 权限的普通用户。这个很重要,官方文档没有说明用户权限的重要性,导致根据Adding/Removing Monitors一文的 Add Monitor 操作,将会引起权限的错误。以下所有的命令均使用普通用户执行。
配置网卡 IP
由于机器的地址已经发生改变,Ceph 集群的 monitors 之间必然无法达成 quorum。首先我们需要让其达成 quorum,才好进行手动添加和删除 monitor 的操作。
因此,我们需要把原本的地址配置一下。配置的方法,遵循给网卡添加 IP 地址的方法。假设旧地址为10.1.1.1,新地址为192.168.1.1。若使用ip命令,则为
$ip addr add 10.1.1.1/24 dev