【问题标题】:Disk space of Cassandra node is over 80%Cassandra节点磁盘空间超过80%
【发布时间】:2021-06-04 18:26:25
【问题描述】:
我在 AWS EC2 实例中运行 12 个 Cassandra 节点,其中 4 个使用了几乎 80% 的磁盘空间,因此在这些节点上压缩失败,因为服务器的类型是 EC2 实例,我不能动态添加模式磁盘空间到现有数据量,我不能要求 IT 团队添加更多节点来扩展集群,因为其他节点的磁盘空间小于 40%,在修复不平衡集群问题之前,是有什么办法可以释放一些磁盘空间?
我的问题是如何找到未使用的 sstable 并将它们移动到另一个分区以运行压缩并释放一些空间?
释放一些磁盘空间的任何其他建议。
PS:我已经删除了所有的快照和备份。
【问题讨论】:
标签:
cassandra
cassandra-3.0
【解决方案1】:
如果您使用的是 vnode,那么数据大小差异应该不会太大。在提出解决方案之前,我们必须找到不同节点上数据大小差异很大的原因。
您必须查看日志以查看某些大型 SStable 是否存在损坏,从而导致压缩失败和数据大小增加。或者,您可以在日志中找到一些内容,指出磁盘大小增加的原因。
由于一些错误,我们在 Cassandra 2.1.16 中遇到了一个问题,即使在压缩后旧的 sstable 文件也没有被删除。我们阅读了日志并确定了可以删除的文件。这是我们在阅读日志后发现数据量增加的原因的示例。
所以你必须在解决之前找出原因。如果这是一个可怕的状态,您可以识别在主要流量期间未使用的键空间/表,并将这些 sstables 移动到备份中并删除这些 sstables。压缩过程结束后,您可以将它们带回来。
警告:在尝试生产之前测试任何程序。