nodetool 清理后磁盘空间使用量增加 - Apache Cassandra

Posted

技术标签:

【中文标题】nodetool 清理后磁盘空间使用量增加 - Apache Cassandra【英文标题】:increased disk space usage after nodetool cleanup - Apache Cassandra 【发布时间】:2021-01-15 08:41:14 【问题描述】:

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

提前致谢!

【问题讨论】:

【参考方案1】:

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

【讨论】:

多么简单的解决方案!删除不必要的快照后,磁盘使用量减少到 40%。非常感谢您的帮助! :) 是的,这是人们经常忘记的事情之一,因为快照通常会在不占用空间的情况下放置,直到表格被压缩

以上是关于nodetool 清理后磁盘空间使用量增加 - Apache Cassandra的主要内容,如果未能解决你的问题,请参考以下文章

Mac清理磁盘空间(二)

Docker镜像服务器磁盘空间清理

怎么清理c盘空间?

如何处理磁盘上 Cassandra 中的空目录?

win7磁盘空间不足怎么清理

KVM虚拟机qcow2格式磁盘文件比实际空间大的问题