Nebula-br备份数据到本地报错E_LIST_CLUSTER_NO_AGENT_FAILURE

Nebula-BR备份数据到本地报错!

集群有三台机器,三台机器都分别部署了metad、graphd、storaged服务

三台机器都部署了agent,都是用的实际ip地址,没有用127.0.0.1
./agent --agent=“10.128.22.109:8888” --meta=“10.128.22.109:9559” &

你的 Nebula 版本是多少?

3.0.0

我发现metad服务有这个报错信息

metad 的这个报错应该关系不大,看看在执行 br 前后有没有其他报错。另外可以提供下 meta_dump 的 host 相关信息。

请问meta_dump 的 host 相关信息是什么?


是这个吗


我目前是三个节点,三个metad,会不会是这个原因?

不会,备份时三 metad 能正常备份,只是恢复时会有问题。

在nebula 的安装目录 bin 下,有个 meta_dump 工具。用法如:

./meta_dump --path=${your nebula data path}/meta/nebula/0/data

nohup.out (113.7 KB)

大哥,这是这个命令执行的结果

这里有一台机器的ip地址,以前在这台机器上部署了一个节点,后面没有部署了,换机器了,是不是这个问题?

的确是这个问题;
现在解决办法有两个:

  1. 在那台机器上启动一个 agent。
  2. 将内核代码升级到 3.1.0(即将发布)。

那台机器目前已经不用了,是不是集群目前还有那台机器的一些残留信息?我清理掉行不行?

是的,在 meta 中还有一些残留信息,是一个 host 表,你如果懂 rocksdb, 可以直接打开 metad 的 rocksdb 把他清掉。

请问metad的rocksdb在什么地方呢?我在存放数据的地方找了下,。没看到

metad 就是指 meta 服务,底层用了 rocksdb 存储,具体数据路径就是你之前使用 meta_dump 的路径;你想去掉这个过时的 host,可以参考 meta_dump 代码,打开 rocksdb,删除那个 host 对应的 key。这需要一定的 rocksdb 知识。

好的,谢谢你

我把metad的数据都删除了,storaged的数据不删,然后重新启动集群行不行?

啊,不行的;metad 的数据删除掉集群就坏了,只能删除其中的一个 key。