背景
公司正实施一项旨在降低成本并促进资源高效利用的关键转型 —— 将传统的物理服务器架构全面升级为先进的 虚拟机环境。这一战略调整,深刻体现了公司对“开源节流”理念的深入实践与创新探索。
通过采用虚拟化技术,我们成功地将原本分散在多个物理服务器上的计算资源、存储资源及网络资源整合至一个高度灵活、可伸缩的虚拟平台上。此举不仅显著降低了初期投资成本及后续的运维开销,还极大地提升了资源利用率,实现了从“拥有资源”向“按需使用资源”的转变,有效遏制了不必要的浪费。
作者介绍:
@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
二. 迁移前的准备
- 操作系统和环境要保持一致
- 系统存储的目录要保持一致
- NebulaGraph 安装的目录要保持一致
三. 操作实战
- 停止原服务
/opt/nebulagraph/scripts/nebula.service stop all
- 压缩服务部署目录 /opt/nebulagraph 数据存储目录 /data/nebula,每一台都样的压缩
压缩nebulagraph服务
cd /opt
zip -r nebulagraph.zip nebulagraph
压缩数据目录
zip -r data.zip data
- 使用
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
- 使用
unzip
或者tar
进行解压.
unzip nebulagraph.zip
unzip data.zip
以上目录要和原来机器的目录保持一致
- 修改 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
- 先启用 metad 和 graphd 服务
/opt/nebulagraph/scripts/nebula.service start metad
/opt/nebulagraph/scripts/nebula.service start graphd
- 查看服务是否被启动
. /opt/nebulagraph/scripts/nebula.service status all
- 通过这个命令找到 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
- 利用 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"
提示这个Replace Host in partition and zone successfully代表替换成功了
- 启动 storage
/opt/nebulagraph/scripts/nebula.service start storage
- 查看服务的服务是否正常启动
/opt/nebulagraph/scripts/nebula.service status all
- 查看 hosts 及分区使用客户端进去
./nebula-console-linux-amd64-v3.6.0 -addr 192.168.11.24 -port 9669 -u root -p
输入密码
进入后输入
show hosts;
以上表示原 IP 到目标 IP 已经切换完成
- 删除原 IP,迁移成功
drop hosts 192.168.11.20:9779, 192.168.11.21:9779,192.168.11.22:9779;
- 删除后,证明迁移正常
四. 总结
1.迁移之前一定先写好脚本,保证脚本要scp到目的端的主机一致,否则会导致新集群中的数据乱掉
2.要仔细检查配置中的IP,如果没有替换掉,导致新集群中的服务启动后,会导致老集群中的数据分片乱掉
3.新集群启动正常后,要对数据进行均衡,能保证数据均匀分布,不会出现数据倾斜导致的大量查出现的IO异常的问题。
4.利用meta的http服务替换storaged机器的host,一定要检查好meta leader,否则会导致替换失败。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。