NebulaGraph 3.6 的迁移实战

背景

公司正实施一项旨在降低成本并促进资源高效利用的关键转型 —— 将传统的物理服务器架构全面升级为先进的 虚拟机环境。这一战略调整,深刻体现了公司对“开源节流”理念的深入实践与创新探索。
通过采用虚拟化技术,我们成功地将原本分散在多个物理服务器上的计算资源、存储资源及网络资源整合至一个高度灵活、可伸缩的虚拟平台上。此举不仅显著降低了初期投资成本及后续的运维开销,还极大地提升了资源利用率,实现了从“拥有资源”向“按需使用资源”的转变,有效遏制了不必要的浪费。

作者介绍:

@sqxinquan 王昱翔,资深大数据运维,Apache dolphinscheduler committer, Apache Bigtop Manager Contributor, 喜欢爬山, 乒乓球

一. 环境

原IP 目标IP 迁移的服务
192.168.11.20 192.168.11.23 nebula-metad
192.168.11.21 192.168.11.24 nebula-graphd
192.168.11.22 192.168.11.25 nebula-storaged

服务部署目录/opt/nebulagraph
数据存储目录/data/nebula

二. 迁移前的准备

  1. 操作系统和环境要保持一致
  2. 系统存储的目录要保持一致
  3. NebulaGraph 安装的目录要保持一致

三. 操作实战

  1. 停止原服务
/opt/nebulagraph/scripts/nebula.service stop all
  1. 压缩服务部署目录 /opt/nebulagraph 数据存储目录 /data/nebula,每一台都样的压缩
压缩nebulagraph服务
 cd /opt
 zip -r nebulagraph.zip  nebulagraph
 压缩数据目录
 zip -r data.zip data
  1. 使用 scp 命令把原 IP 服务目录和数据存储复制到对应的目标 IP 上
192.168.11.20
scp nebulagraph.zip root@192.168.11.23:/opt
scp data.zip        root@192.168.11.23:/data
192.168.11.21
scp nebulagraph.zip root@192.168.11.24:/opt
scp data.zip        root@192.168.11.24:/data
192.168.11.22
scp nebulagraph.zip root@192.168.11.25:/opt
scp data.zip        root@192.168.11.25:/data
  1. 使用 unzip 或者 tar 进行解压.
unzip nebulagraph.zip
unzip data.zip
以上目录要和原来机器的目录保持一致
  1. 修改 nebula-graphd.conf nebula-metad.conf nebula-storaged.conf 配置文件
原来配置--meta_server_addrs=192.168.11.20:9559,192.168.11.21:9559,192.168.11.22:9559
修改配置--meta_server_addrs=192.168.11.23:9559, 192.168.11.24:9559,192.178.11.25:9559
--local_ip=192.168.11.20 ---修改成本机的IP
  1. 先启用 metad 和 graphd 服务
/opt/nebulagraph/scripts/nebula.service start metad  
/opt/nebulagraph/scripts/nebula.service start graphd
  1. 查看服务是否被启动
. /opt/nebulagraph/scripts/nebula.service status all
  1. 通过这个命令找到 meta 的 leder 节点利用 leder 节点更换 hosts
使用客户端登录
./nebula-console-linux-amd64-v3.6.0 -addr 192.168.11.24 -port 9669 -u root -p
输入命令找出 meta 的 leader
show meta leader

  1. 利用 meta 的 http 服务替换 storaged 机器的 host 替换
curl -Gs "http://192.168.11.24:19559/replace?from=192.168.11.20:9779&to=192.168.11.23:9779"
curl -Gs "http://192.168.11.24:19559/replace?from=192.168.11.21:9779&to=192.168.11.24:9779"
curl -Gs "http://192.168.11.24:19559/replace?from=192.168.11.22:9779&to=192.168.11.25:9779"

image

提示这个Replace Host in partition and zone successfully代表替换成功了

  1. 启动 storage
/opt/nebulagraph/scripts/nebula.service start storage
  1. 查看服务的服务是否正常启动
/opt/nebulagraph/scripts/nebula.service status all
  1. 查看 hosts 及分区使用客户端进去
./nebula-console-linux-amd64-v3.6.0 -addr 192.168.11.24 -port 9669 -u root -p
输入密码
进入后输入
show hosts;

image
以上表示原 IP 到目标 IP 已经切换完成

  1. 删除原 IP,迁移成功
drop hosts 192.168.11.20:9779, 192.168.11.21:9779,192.168.11.22:9779;

  1. 删除后,证明迁移正常

四. 总结

1.迁移之前一定先写好脚本,保证脚本要scp到目的端的主机一致,否则会导致新集群中的数据乱掉

2.要仔细检查配置中的IP,如果没有替换掉,导致新集群中的服务启动后,会导致老集群中的数据分片乱掉

3.新集群启动正常后,要对数据进行均衡,能保证数据均匀分布,不会出现数据倾斜导致的大量查出现的IO异常的问题。

4.利用meta的http服务替换storaged机器的host,一定要检查好meta leader,否则会导致替换失败。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:NebulaGraph 3.6的迁移​-CSDN博客

2 个赞