我们有一个10节点的Cassandra集群。我们在Opscenter中配置了修复。我们发现为Opscenter密钥空间中的每个表创建了一个备份文件夹。它不断增长。有没有解决方案,还是我们手动删除每个备份文件夹中的数据?
答案 0 :(得分:3)
首先,备份与快照不同 - 您可以查看OpsCenter的备份documentation以了解更多信息。
从数据共享docs -
启用增量备份时(默认情况下禁用),Cassandra 硬盘将每个刷新的SSTable刷新到备份目录下 键空间数据目录。这允许在不离线存储备份 传输整个快照。此外,增量备份与 快照,以提供可靠的,最新的备份机制。 ... 与快照一样,Cassandra不会自动清除 增量备份文件。 DataStax建议设置进程 每次新快照时都清除增量备份硬链接 创建
您必须通过在cassandra yaml中将incremental_backups设置为true来启用增量备份。
如果您对备份策略感兴趣,建议您改用the OpsCenter Backup Service。这样,您就能够精确控制要备份的密钥空间并将文件推送到S3。
快照是旧(不再使用)SSTable的硬链接。快照可以保护您自己。例如,您不小心截断了错误的键空间,您仍然可以获得该表的快照,您可以将其带回来。在某些情况下,当您拥有太多快照时,您可以执行以下操作:
这与修复有关,因为同步修复每次运行时都会生成快照。为了避免这种情况,你应该改为运行并行修复(-par标志或在下面的opscenter配置文件中设置修复次数)
如果您有太多快照并需要释放空间(可能一旦将它们备份到S3或冰川或其他东西),请继续使用nodetool clearsnapshots删除它们。这将释放空间。您也可以从文件系统中手动删除它们,但nodetool clearsnapshots可以消除rm -rf错误的风险。
注意:如果您没有大量数据,也可能运行修复过快(请查看我对此other SO question的回复以获取解释和维修服务配置文件夹)。