2.0.1版本 drop space后手动提交compact导致磁盘空间占满,storage服务挂了

  • nebula 版本:2.0.1
  • 部署方式:分布式
  • 安装方式: RPM
  • 是否为线上版本:Y / N
  • 硬件信息
    • 磁盘(SSD
    • CPU、内存信息
  • 问题的具体描述:drop space 收手动提交submit job compact 导致磁盘空间被占满,sorage服务挂了
  • 1.此时需要怎么处理?是否可以直接到data/storage路径下手动删除对应space的数据?是否有其他影响?
  • 2.如果storage存储空间被占满,在不删除sapce的情况下,手动删除各个节点data/storage 对应space的数据,会不会造成整个服务出问题?例如:删除storage数据,meta未删除,导致找不到storage下的数据使得集群服务起不来?
  • 3.自动compact的触发机制和频率是什么啊?compact 数据扩大的比例、机制有详细的文档吗?
  • 4.space已经删除,也手动提交了submit job compact,时间也过了几天,但是在data/storage 下删除后的space id依然存在,且还有数据。这是需要参数配置吗?还是什么原因?
  • 5.wal 的生命周期是什么样的,发现wal会很大,超过了实际数据存储大小?除了受–wal_ttl=14400 影响,是否还有其他参数影响?
  • 6.space空间已经被删除,且时间也过了多天,但是发现storage 下的wal依然有数据写入,并且wal也有部分数据存在,这是什么问题影响的呢?
  • 问题有点乱,麻烦抽时间回答下,非常感谢!

1.此时需要怎么处理?是否可以直接到data/storage路径下手动删除对应space的数据?是否有其他影响?
可以的, 2.0.1 设计上就是需要手动删除.

2.如果storage存储空间被占满,在不删除sapce的情况下,手动删除各个节点data/storage 对应space的数据,会不会造成整个服务出问题?例如:删除storage数据,meta未删除,导致找不到storage下的数据使得集群服务起不来?

好问题, 多副本的话应该不会有问题, 单副本我要看下…

3.自动compact的触发机制和频率是什么啊?compact 数据扩大的比例、机制有详细的文档吗?
启动的时候会做, 然后就看 rocksdb 自己的调度了.

4.space已经删除,也手动提交了submit job compact,时间也过了几天,但是在data/storage 下删除后的space id依然存在,且还有数据。这是需要参数配置吗?还是什么原因?
这个应该跟问题 1 是一个, 需要手动删.

5.wal 的生命周期是什么样的,发现wal会很大,超过了实际数据存储大小?除了受–wal_ttl=14400 影响,是否还有其他参数影响?
还有个隐式的约定是 wal 会保留 2 个, 从第三个根据 ttl 开始删.

6.space空间已经被删除,且时间也过了多天,但是发现storage 下的wal依然有数据写入,并且wal也有部分数据存在,这是什么问题影响的呢?
wal 有部分数据存在应该跟问题 5 一样? 依然有数据写入?

1 个赞

谢谢,还有些再咨询下

  • 1.在导入hive数据到nebula中的时候,发现wal是50多G,实际数据data只有7G左右,虽然4个小时候wal会清除掉,但是在导入过程中,有可能会导致磁盘爆满,这个我理解的理论上wal_ttl=14400 调小,尽快触发删除wal操作,比如1个小时,不过虽然是这样会在1个小时后清除掉wal数据,但是在这1个小时内还是会有问题,所以有其他调整措施吗?
  • 2.wal里面除了心跳信息,还有什么数据,为什么占用空间是扩大这么多?
  1. ttl再短点(30 分钟, 我个人觉得理论上 5 分钟应该也 ok, 不过没测过, 30 分钟应该没问题. )
    … or 氪金方案, 加快盘…
    2.wal里面除了心跳信息,还有什么数据,为什么占用空间是扩大这么多?
    理论上所有真正的数据也都会在 wal 里过一遍的.
    (换句话说就是未经清理的 wal 跟实际数据是基本上是 1:1 的关系)

除此之外, wal 里面的每一条 entry还会有 LogID, TermID, Cluster三个辅助于 raft 的 int 字段.
如您描述这么大的放大比例, 那是不是您的每个字段都很小?导致写进去的都是写 raft 的东东.

另外您是几副本啊?

  • 对wal不是很理解,担心太短的话会丢数据,我试试30分钟。
  • 3副本,数据当时测试都是无属性点,数据都是md5加密后的值,大概10亿左右。

嗯… 那您 3 副本的话, size 至少乘3 的, wal 每个副本都有.

然后再加点辅助信息, 7G 涨到 50G 倒也不是很意外.

  • 1.wal 是存储的所有副本的数据,也就是说wal大概可以计算为:7x3 + 辅助信息
  • 2.wal 路径下的会有不同的数字,这个是什么意思?受什么影响啊?
./458944/wal/20
./458944/wal/55
./458944/wal/70
./458944/wal/27
./458944/wal/7
./458944/wal

答案 2: 这个是不同的分区.

好的,明白了,感谢

1 个赞

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