以下方法不一定能百分百替换 hosts 成功,如果要实验的话,请备份好数据之后再尝试。
如果你的机器的 ip 变更的话,可以按照下面的方式进行操作:
- 先修改 metad、storaged、graphd 的配置文件的 ip 地址。保存之后,启动 meta服务,用 replace hosts 去替换 ip,参考下面的 curl 命令:
# 192.168.8.92 为 meta leader 所在机器,如果单机的话,直接填写该机器的 ip;
curl -G "http://192.168.8.92:19559/replace?from=192.168.8.191:9779&to=192.168.8.91:9779"
- :
http://192.168.8.92:19559/
这里的 ip 需要是 meta leader 的 ip,单机的话就是那台机器的 ip; - 192.168.8.191 为老 ip,请自行替换成你自己的 ip;9779 为老机器的 storage 端口号;
- 192.168.8.91 为新 ip,请自行替换成你自己的 ip;9779 为新机器的 storage 端口号;
如果返回 Replace Host successfully
即为成功。
-
再启动 graphd 和 storaged 服务。
-
add hosts
服务启动之后,将新的机器进行注册(add hosts),参考文档 add hosts 操作 管理 Storage 主机 - NebulaGraph Database 手册
- drop hosts
等待一阵子,如果新机器有了 Partition 数据,老的机器不再有分片(partition 数据)。可以执行 drop hosts 操作,参考文档:管理 Storage 主机 - NebulaGraph Database 手册
如果你在替换过程中有任何问题,记得论坛发帖,贴上对应的 meta 和 storage 日志哟~
预防措施
IP 如果不能保证始终如一的话,可以试试用域名的方式来配置 IP,然后在系统的 hosts 文件中变更对应 IP 信息。
资料来源:利用 snapshot 进行集群迁移