- nebula 版本:3.1.0
- 部署方式:分布式(6个节点,6个graph service,6个meta service, 6个storage service)
- 安装方式:Docker (使用的社区镜像)
- 是否上生产环境:Y
- 硬件信息
- 问题的具体描述
服务在初始化部署的时候,修改过一次root用户的密码,而且 在 nebula-graphd.conf 配置文件中已经设置 --enable_authorize=true,但是每次把所有服务停掉之后,再拉起,root密码就会被重置
nebula-metad.INFO的关键日志如下:
Check and init root user
Root user is not exists
Init root user
上面是meta leader的日志,meta leader每次启动都会check root用户,在6个节点的情况下,每次启动都会发现root用户不存在,然后初始化root用户,然后密码就会被重置。
但是在3节点的时候,nebula-metad.INF日志,正常是输出这样的,密码不会被重置
Check and init root user
Root user exists
还有一个现象是,在6个节点的情况下,如果先启动之前是meta leader的节点,那密码不会被重置,怀疑是root用户没有在follower节点同步,要不就是root用户的初始化机制有啥问题。
steam
2
没记错的话,meta 服务是要比其他两个服务要先启动的,这样可以同步元数据过去。
1 个赞
我理解meta服务是一个raft集群,storage服务是一个raft集群,graph服务是不是可以理解为无状态服务,应该没有影响吧。
steam
4
是 raft 集群。我记得没错的话,启动之后是要同步信息过去的,你看下这个 图数据库 Nebula Graph 集群通信:从心跳说起
心跳机制,我理解是集群间数据同步有延迟,比如新创建一个tag,立即插入点数据,会报tag schema不存在,但是我这里的场景是,集群启动之后,密码被重置,而且不会被同步回来那种,关键日志就是上面说的,meta服务在启动的时候,会校验本地的kv,有没有root_user这个key,如果没有,就会初始化这个root用户。 我看图数据库 Nebula Graph 集群通信:从心跳说起 这里的额外补充,发现一个问题,不知道和这有没有影响,我们这个部署,storage服务 和 meta 服务是两个容器,而且 cluster.id 是不共享的, 我看只有storage服务的容器中有这个 cluster.id, meta服务容器中没有这个 cluster.id,不知道会不会有影响。
磁盘丢数据的话得解决磁盘问题,这个在数据库层面做不了太多事情。
这个应该 K8S 本身有解决方法,不过这块我不太了解,你可以找专家看看。只要磁盘不换/不丢就行
我感觉是Nebula意外断电,导致有些wal文件损坏,感觉和磁盘没关系吧,磁盘没有换,也没有丢。
system
关闭
12
此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。