cassandra - nodetool 清理后磁盘空间使用量增加 - Apache Cassandra
问题描述
我们在生产中有一个 Apache Cassandra(版本 3.11.4)集群,在两个 DC 中有 5-5 个节点。我们最近刚刚添加了最后两个节点,修复完成后,我们在 2 天前开始清理。节点非常大,/data 有 2.8TB 的挂载磁盘空间,Cassandra 在清理之前使用了大约 48% 的空间。大约 14 小时后,第一个节点上的清理完成(我认为它没有损坏,日志中没有错误,并且nodetool compactionstats
说 0 个待处理的任务),在清理过程中,磁盘使用率增加到 81%,从那时起就再也没有回来过。Cassandra 会清理它吗?如果是的话,什么时候,或者我们必须手动做些什么?实际上我们没有找到任何可以手动删除的 tmp 文件,所以我们现在不知道。有没有人遇到过这个用例并有解决方案?
提前致谢!
解决方案
检查旧快照 - 很可能您有许多快照(来自备份、截断或删除的表),这些快照是指向带有数据的文件的硬链接(并且不占用空间),之后nodetool cleanup
,数据文件被重写,并且创建了新文件,而硬链接仍然指向原始文件,占用了磁盘空间。使用nodetool listsnapshots获取现有快照的列表,使用 nodetool clearsnapshot删除不需要的快照。
推荐阅读
- node.js - 将我在 RTP 中收到的 pcma/aluw 文件转换为 wav 时如何消除添加的噪音?
- angular - 无法从 store 中选择最新的 ID,withLatestFrom 返回以前的 ID 而不是最后一个,为什么?
- react-native - 如何在 React Native FlatList 中一次处理一个按钮?
- node.js - Mongoose - 使用多个对象更新对象数组
- mysql - 找不到此本地主机页面:Phpmyadmin
- python - 如何存储来自网络抓取项目的数据
- java - 如果第一个验证器失败,如何停止执行第二个验证器?
- splunk - splunk中的嵌套条件
- nfa - 这个 NFA 是否正确接受以 00 结尾的输入?
- apache-spark - 我们是否需要在所有节点中安装所有 HDP 的服务客户端?