5

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

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

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

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

提前致谢!

4

1 回答 1

3

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

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

于 2013-08-15T15:28:16.540 回答