使用 data 目录直接替换进行迁移,根据不同集群条件,有以下两种方法:
- 新旧集群各个 metad / storaged 机器的 IP 完全一致。这样只需要按 IP 一一对应,将数据文件夹从老机器拷贝到新机器,然后启动集群即可。
- 如果不能找到 IP 完全一致的集群,则仍有理论可行的的方法可以替换,但并未经过严格测试。
-
要保证新旧集群的拓扑结构(包括节点数量和对应目录结构)一致。比如老集群有 A(data1, data2), B(data1), C(data1),则新集群也得是 D(data1, data2), E(data1), F(data1),格式为
机器IP(数据文件夹1, 数据文件夹2...)
。 -
仍以上面例子来说,在迁移时,要做 A->D,B->E,C->F 的一一对应的文件夹拷贝。
-
拷贝完成后,要先启动 metad 服务,然后利用 metad 的 HTTP 服务,做 storaged 机器 host 替换。对每个 storaged 的 ip 逐一调用命令:
curl -Gs "http://${metad_ip}:${metad_ ws_http_port}/replace?from=${from_storaged_ip}&to=${to_storaged_ip}
,如curl -Gs "http://192.168.8.5:19559/replace?from=192.168.8.5&to=192.168.8.6
-
最后启动 storaged 服务和 graphd 服务。
-
注:方法二非常繁琐,通常情况下不建议尝试,你也可以使用官方的 back&restore 工具 br 来实现迁移。
参考其他方式:利用 snapshot 进行集群迁移