Cassandra节点磁盘空间超过80%

时间:2021-06-04 00:42:37

标签: cassandra cassandra-3.0

我在 AWS EC2 实例中运行了 12 个 Cassandra 节点,其中 4 个节点使用了几乎 80% 的磁盘空间,因此在这些节点上压缩失败,因为服务器的类型是 EC2 实例,我不能动态添加模式磁盘空间到现有数据量,我不能要求 IT 团队添加更多节点来扩展和扩展集群,因为其他节点的磁盘空间小于 40%,在修复不平衡集群问题之前,是有什么办法可以释放一些磁盘空间?

我的问题是如何找到未使用的 sstable 并将它们移动到另一个分区以运行压缩并释放一些空间?

释放一些磁盘空间的任何其他建议。 PS:我已经删除了所有的快照和备份。

1 个答案:

答案 0 :(得分:1)

如果您使用的是 vnode,那么数据大小差异应该不会太大。在解决之前,我们必须找到不同节点上数据大小差异很大的原因。 您必须查看日志以查看是否存在导致压缩失败和数据大小增加的大型 SStable 损坏。或者您可以在日志中找到一些指出磁盘大小增加的原因。

由于一些错误,我们在 Cassandra 2.1.16 中遇到了一个问题,即使在压缩后旧的 sstable 文件也没有被删除。我们阅读了日志并确定了可以删除的文件。这是一个例子,我们在读取日志后找到了数据量增加的原因。

所以你必须在解决之前找出原因。如果这是一个可怕的状态,您可以识别在主要流量期间未使用的键空间/表,并在备份中移动这些 sstables 并删除这些 sstables。压缩过程结束后,您可以将它们带回来。

警告:在试生产前测试任何程序。