storage挂载数据盘损坏如何恢复数据。

  • nebula 版本: 2.6.2
  • 部署方式:分布式
  • 安装方式: RPM
  • 是否上生产环境:Y
  • 硬件信息
    • 磁盘
    • CPU、内存信息
  • 问题的具体描述:
    集群5台机器,数据三副本,storage数据盘挂载在 /data1,/data2 ,/data3 的三个目录,其中一台机器的/data3对应的磁盘损坏了,storage无法启动,需要更换磁盘新的磁盘,请问这种情况下要如何操作。
    1)磁盘恢复后,直接在该机器上启动storage服务吗?
    2)/data3 更换了新的磁盘,原有该目录下的副本数据没有了,要如何恢复,要恢复的话是要执行什么命令,balance data的命令?还是说重新启动storage服务之后,什么都不用操作,集群会自动重新恢复/data3目录下的数据?

新加入的机器可以参考下面的方式:

  1. 保持新盘和老盘同样的拓扑结构:配置相同的路径挂载点;
  2. 重启 storage 服务,集群会自动同步全量数据到新的盘上;
  3. 检查其他节点 storage 日志中是否出现下面的信息,出现的话说明正在同步:

Space xx Part xx start send snapshot of commitLogId xxxxxx commitLogTerm x, rate limited to xxxxxxxx, batch size is xxxxxxx*

  1. 不是新加入的机器,只是原来机器的一块盘坏了,换新盘了,挂载目录没有变化,是直接启动坏盘对应的storage服务就可以了对吧。
    2)启动后在其他的storage的log日志中没有出现
    Space xx Part xx start send snapshot of commitLogId xxxxxx commitLogTerm x, rate limited to xxxxxxxx, batch size is xxxxxxx* 这种信息
    换盘的磁盘中的数据也一直没有变化。

我的新加入有点歧义,就是你坏掉那个盘的替代盘,称之为新加入的机器。

拓扑结果保持一致了么?本质上它的原理和这个有点相似:nebula 迁移可以直接拷贝data目录么 你看下是不是 meta 和 graph 之类的都配置好了。

1)磁盘拓扑结构具体指什么?raid?
2)meta和graph这些都没有调整,还是和之前一样的。
3)磁盘更换后只要重启有问题磁盘的storage吗,需要重启meta服务和其他机器的storage服务吗

你看下上面的链接,就是 ip 和端口号之类的信息。

:thinking: 所有吧。

数据等新盘有数据同步过来,数据完成同步之后,执行下 data balance,参考文档:作业管理 - NebulaGraph Database 手册

感谢,我重启下所有服务试试,还有一个问题
在集群恢复阶段,可以继续写增量新数据吗,如果在数据恢复阶段,写入了新的数据会对集群数据准确性产生影响吗?

我理解的是不影响的,不过我觉得安全起见,还是等集群稳定了,再写新的数据吧。

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。