nebula3.4.0集群无法启动,单个服务正常启动

提问参考模版:

  • nebula 版本:3.4.0
  • 部署方式:云端 / 分布式 / 单机
  • 安装方式: RPM
  • 是否上生产环境: N
  • 硬件信息
    • 磁盘( 推荐使用 SSD)
    • CPU、内存信息
  • 问题的具体描述
    单机可以正常启动。
    三台机器的集群无法正常启动。metad和storaged服务直接起不来,graphd服务起来很快就会宕掉
    三台机器之间ping是可以ping通的,排除网络不通。
  • 相关的 meta / storage / graph info 日志信息(尽量使用文本形式方便检索)
    meta日志(一直在等待leader选举):
Log line format: [IWEF]yyyymmdd hh:mm:ss.uuuuuu threadid file:line] msg
I20230327 11:25:07.590477 11684 MetaDaemon.cpp:137] localhost = "192.168.122.7":9559
I20230327 11:25:07.626291 11684 NebulaStore.cpp:52] Start the raft service...
I20230327 11:25:07.626813 11684 NebulaSnapshotManager.cpp:25] Send snapshot is rate limited to 10485760 for each part by default
I20230327 11:25:07.652513 11684 RaftexService.cpp:46] Start raft service on 9560
I20230327 11:25:07.652614 11684 NebulaStore.cpp:86] Scan the local path, and init the spaces_
I20230327 11:25:07.652652 11684 NebulaStore.cpp:93] Scan path "/home/nebula/data/meta/nebula/0"
I20230327 11:25:07.652665 11684 NebulaStore.cpp:272] Init data from partManager for "192.168.122.7":9559
I20230327 11:25:07.652683 11684 NebulaStore.cpp:388] Create data space 0
I20230327 11:25:07.668061 11684 RocksEngine.cpp:107] open rocksdb on /home/nebula/data/meta/nebula/0/data
I20230327 11:25:07.686794 11684 NebulaStore.cpp:451] Space 0, part 0 has been added, asLearner 0
I20230327 11:25:07.686836 11684 NebulaStore.cpp:79] Register handler...
I20230327 11:25:07.686846 11684 MetaDaemonInit.cpp:106] Waiting for the leader elected...
I20230327 11:25:07.686851 11684 MetaDaemonInit.cpp:118] Leader has not been elected, sleep 1s
I20230327 11:25:08.686931 11684 MetaDaemonInit.cpp:118] Leader has not been elected, sleep 1s
I20230327 11:25:09.687039 11684 MetaDaemonInit.cpp:118] Leader has not been elected, sleep 1s
I20230327 11:25:10.687166 11684 MetaDaemonInit.cpp:118] Leader has not been elected, sleep 1s

graphd报错日志(应该是找不到metad服务):

E20230327 11:25:49.703553 11941 MetaClient.cpp:773] RpcResponse exception: apache::thrift::transport::TTransportException: Dropping unsent request. Connection closed after: apache::thrift::transport::TTransportException: AsyncSocketException: connect failed, type = Socket not open, errno = 111 (Connection refused): Connection refused
E20230327 11:25:49.703676 11712 MetaClient.cpp:112] Heartbeat failed, status:RPC failure in MetaClient: apache::thrift::transport::TTransportException: Dropping unsent request. Connection closed after: apache::thrift::transport::TTransportException: AsyncSocketException: connect failed, type = Socket not open, errno = 111 (Connect
E20230327 11:25:52.709307 11943 MetaClient.cpp:772] Send request to "192.168.122.9":9559, exceed retry limit
E20230327 11:25:52.709403 11943 MetaClient.cpp:773] RpcResponse exception: apache::thrift::transport::TTransportException: Failed to write to remote endpoint. Wrote 0 bytes. AsyncSocketException: AsyncSocketException: connect failed, type = Socket not open, errno = 111 (Connection refused)
E20230327 11:25:52.709540 11712 MetaClient.cpp:150] RPC failure in MetaClient: apache::thrift::transport::TTransportException: Failed to write to remote endpoint. Wrote 0 bytes. AsyncSocketException: AsyncSocketException: connect failed, type = Socket not open, errno = 111 (Connection refused)
E20230327 11:25:52.709599 11712 GraphService.cpp:49] Failed to wait for meta service ready synchronously.
E20230327 11:25:52.709617 11712 GraphServer.cpp:39] Failed to wait for meta service ready synchronously.
E20230327 11:25:52.712695 11712 GraphDaemon.cpp:156] The graph server start failed

storaged服务日志差不多,也是找不到metad服务。
求助为什么集群情况下metad的三个服务一直在等待leader选举导致服务无法正常启动

1 个赞

你是部署了多个版本的 NebulaGraph 内核吗?其中有一个版本用了单机?

相关的图空间创建语句,以及服务 ip 端口配置贴下。

三台机器都是3.4.0版本,服务一直没起来,所以都没有到创建图空间那一步

所以你说的单机是某个单个服务可以启动对吗?

你有尝试过再重启吗?重启服务之后,也许集群就能起来了。

是的,metad相关配置如果都只配本机的IP情况下可以正常启动没有问题。配多个集群的时候有问题

有都关掉尝试重启,还是起不来

集群在第一次启动之后,服务发现之后,会把一些原信息记录在 MetaD 里,有一些情况是不允许更改的,比如先用一个 metad 启动过集群之后,再改成三个。

能做的是清理所有的数据,重新配置干净的环境启动三个 metad。

1 个赞

在现有环境可以清理metad的数据吗,还是必须要重新卸载再重新装?

二进制卸载不是必须,应该就是 data 文件和一个 cluster 指纹文件

/usr/local/nebula/cluster.id 这个也得删

删除了data目录下文件和cluster.id文件之后,按照集群配置再重新启动还是metad服务一直在等待选举:
INFO日志如下:

三个 metad 的配置贴一下把

metad1:

metad2:

metad3:

配置看起来没啥问题,可以再把三个 metad 的log 打包上传下吗

整体卸载之后重新安装,按集群配置第一次启动还是起不来,metad服务还是一直卡在等待选举leader上

三台机器的配置和日志
三台机器日志以及配置.zip (112.1 KB)

看起来像网络不通,也有可能是防火墙问题。端口的防火墙都打开了吗?包括 raft 的。参见:https://docs.nebula-graph.com.cn/3.4.0/20.appendix/0.FAQ/#_14

9559、9669、 9779这三个开了,raft的没关注…

照着文档中的几个端口重新开一下把,另外关注下网络延迟。

十分感谢,端口开放之后是可以的了!

1 个赞