Opscenter 密钥空间中的备份文件夹变得非常庞大

Backups folder in Opscenter keyspace growing really huge

我们有一个 10 节点的 Cassandra 集群。我们在 Opscenter 中配置了修复。我们发现在 Opscenter 密钥空间中为每个 table 创建了一个备份文件夹。它不断地变大。有没有办法解决这个问题,还是我们手动删除每个备份文件夹中的数据?

首先,备份不同于快照 - 您可以查看 OpsCenter 的备份 documentation 以了解更多信息。

增量备份:

来自datastax docs -

When incremental backups are enabled (disabled by default), Cassandra hard-links each flushed SSTable to a backups directory under the keyspace data directory. This allows storing backups offsite without transferring entire snapshots. Also, incremental backups combine with snapshots to provide a dependable, up-to-date backup mechanism. ... As with snapshots, Cassandra does not automatically clear incremental backup files. DataStax recommends setting up a process to clear incremental backup hard-links each time a new snapshot is created.

您必须通过在 cassandra yaml 中将 incremental_backups 设置为 true 来打开增量备份。

如果您对备份策略感兴趣,我建议您改用 the OpsCenter Backup Service。这样,您就可以精细地控制要备份的密钥space 并将文件推送到 S3。

快照

快照是旧的(不再使用的)SSTables 的硬链接。快照可以保护您免受自己的伤害。例如,您不小心输入了 运行 错误的密钥 space,您仍将拥有该 table 的快照,您可以将其取回。在某些情况下,当您的快照过多时,您可以采取以下措施:

不要运行同步修复

这与修复有关,因为同步修复每次 运行 都会生成一个快照。为了避免这种情况,您应该 运行 并行修复(-par 标志或通过在下面的 opscenter 配置文件注释中设置修复次数)

清除您的快照

如果您有太多快照并且需要释放 space(也许一旦您将它们备份到 S3 或冰川或其他东西)继续使用 nodetool clearsnapshots 删除它们。这将释放 space。您也可以进入并从文件系统中手动删除它们,但是 nodetool clearsnapshots 消除了 rm -rf 错误的风险。

注意:如果您没有大量数据,您也可能运行修复得太快(查看我对此的回复 的解释和维修服务配置杠杆)。