首页 > 解决方案 > nodetool 清理后磁盘空间使用量增加 - Apache Cassandra

问题描述

我们在生产中有一个 Apache Cassandra(版本 3.11.4)集群,在两个 DC 中有 5-5 个节点。我们最近刚刚添加了最后两个节点,修复完成后,我们在 2 天前开始清理。节点非常大,/data 有 2.8TB 的挂载磁盘空间,Cassandra 在清理之前使用了大约 48% 的空间。大约 14 小时后,第一个节点上的清理完成(我认为它没有损坏,日志中没有错误,并且nodetool compactionstats说 0 个待处理的任务),在清理过程中,磁盘使用率增加到 81%,从那时起就再也没有回来过。Cassandra 会清理它吗?如果是的话,什么时候,或者我们必须手动做些什么?实际上我们没有找到任何可以手动删除的 tmp 文件,所以我们现在不知道。有没有人遇到过这个用例并有解决方案?

提前致谢!

标签: cassandranodetool

解决方案


检查旧快照 - 很可能您有许多快照(来自备份、截断或删除的表),这些快照是指向带有数据的文件的硬链接(并且不占用空间),之后nodetool cleanup,数据文件被重写,并且创建了新文件,而硬链接仍然指向原始文件,占用了磁盘空间。使用nodetool listsnapshots获取现有快照的列表,使用 nodetool clearsnapshot删除不需要的快照。


推荐阅读