清理 Cassandra 增量备份文件夹的最佳实践

Best practices for cleaning up Cassandra incremental backup folders

我们在 Cassandra 集群上进行了增量备份。数据文件夹下的"backups"文件夹现在包含大量数据,其中一些有数百万个文件。

根据documentation:"DataStax recommends setting up a process to clear incremental backup hard-links each time a new snapshot is created."

我不清楚清除这些文件的最佳方法是什么。是不是在创建快照时就全部删除,还是应该删除超过某个时间段的文件?

我的想法是,为了安全起见,运行一个常规脚本来删除超过 30 天的文件:

find [Cassandra data root]/*/*/backups -type f -mtime +30 -delete

我是不是太小心了?我们不担心备份历史记录很长。

谢谢。

您可能过于小心了,虽然这并不总是坏事,但有许多注意事项。一个好的模式是拥有多个快照(例如每周快照回到某个时期)和那个时期的所有备份,这样您就可以恢复到已知状态。例如,如果由于某种原因你最近的快照因为某种原因不起作用,如果你仍然有你以前的快照 + 从那以后的所有 sstables,你可以使用它。

您可以在快照之后删除所有创建的备份,作为执行快照刷新和将所有 sstable 硬链接到快照目录的行为。在删除旧快照和删除备份之前,只需确保您的快照确实发生并完成(这是一个非常可靠的过程,因为它是硬链接)。

您还应该确保测试还原过程,因为这会让您清楚地知道您需要什么。您应该能够从上次快照 + 从那时起备份的 sstables 恢复。启动一个新集群并尝试从快照 + 备份中恢复数据是个好主意,或者可以在测试环境中就地尝试这个过程。

我想指出这篇文章:'Cassandra and Backups' 作为备份和恢复 cassandra 的好运行 下来。