两个storage一直处于unhealthy和starting状态

  • nebula 版本:2.6.0
  • 部署方式:单机
  • 安装方式: Docker-compose
  • 是否为线上版本:N
  • 硬件信息
    96C200G30T
  • 问题的具体描述:
    用importer导入数据,挂上之后,过了几天回公司之后发现一直有两个storage处在unhealthy和starting状态,然后console连接之后想submit job stats一直failed

你咋部署服务的。:thinking:

docker-compose部署三个graphd三个meta三个storage,现在其中两个storage交替处在unhealthy和starting状态,上边表达可能不太详细

有 storage 的错误日志吗?


172.18.0.5 是服务部署的那台机器吗

172.18.0.5上部署的是storaged0

1 和 2 的配置是啥,这样你把配置文件也贴一下

docker-compose.yaml在这个连接:

所以你配置完全没改?还是原来的那份?

对的,没有动过,啥都没动过,就导数之后,回来看就这样了

有没有可能这两个服务使用的磁盘空间不够了

看报错是不是手动配置了 ip,而 docker 里内部 ip 是随机分配的,因为一些原因重启之后,分配的ip和配置的本机ip不匹配了。

1 个赞

docker-compose会自动限制磁盘使用吗,我这看的话,目录空间是没有问题的

我单独进了storage0和storage1的容器,查了一下ip,和docker-compose.yaml中是对应上的,storage0是05,storage1是07

进容器之后我发现,没一会就会自动退出容器,两个容器都是这样,是nebula检测有问题,会自动重启吗

至少从这个日志看,当时被列出来的(本容器ip)是 .4,但是配置项为 .5 。

如果现在是匹配的,storaged 退出前没有新的错误日志么?

Status NetworkUtils::validateHostOrIp(const std::string& hostOrIp) {
...
    auto ipsStatus = listIPv4s();
    NG_RETURN_IF_ERROR(ipsStatus);
    const auto& ips = ipsStatus.value();
    auto result = std::find(ips.begin(), ips.end(), hostOrIp);
    if (result == ips.end()) {
      return Status::Error("%s is not a valid ip in current host, candidates: %s",
                           hostOrIp.c_str(),
                           folly::join(",", ips).c_str());
    }

需要换一下ip吗,但是日志里的172.18.0.4是meta1的 :joy:

这么手写 ip 在docker配置里根本就不科学哈,还是应该写容器名字。

那我写死的ip改回去么,会对现有的数据有影响么…