将Cassandra快照移动到其他磁盘/服务器/数据中心

时间:2013-08-14 21:25:04

标签: cassandra backup snapshot

我在数据中心A上运行Cassandra 1.2.6集群,每个节点都有一个固态硬盘,空间有限(约50%的磁盘空间是免费的)。

现在我需要以某种方式实现一种自动备份每个节点的方法。理想情况下,我希望有一种方法可以将所有群集的数据文件移动到不同的磁盘(标准更便宜的磁盘),甚至可以移动到同一数据中心A中的不同服务器,并可能偶尔将所有数据移动到数据中心B中不同的位置。

从我读过的内容中,我可以使用每个节点上的快照来使用我想要的任何工具来复制文件,在这种情况下,我可以选择将数据移动到不同的磁盘/服务器/数据中心。

我的问题是,由于我的每个节点大约有50%已满,拍摄快照会占用所有空间吗?或者硬链接消耗的空间比我预期的要少?如果是这样,有没有更好的方法来实现这一点,可能使用已经制作的工具,或者在Cassandra中进行这种类型的备份时应该自定义一切?

提前致谢!

1 个答案:

答案 0 :(得分:3)

硬链接只为同一个文件(http://en.wikipedia.org/wiki/Hard_link)创建一个新的目录条目。因此快照实际上占用零空间,但是在完成将其复制到您的存档之后,您将需要清理它,因为当删除“原始”sstable(通常是后压缩)时,空间赢了只要快照参考仍然存在,就不会被回收。

我的印象是tablesnap是自动备份到s3的最流行的工具。它还支持Cassandra incremental backups。如果您希望更好地控制备份的位置,DataStax OpsCenter支持在拍摄快照时运行自定义脚本。