Cassandra将Keyspace存储到新磁盘

时间:2013-01-13 05:50:55

标签: cassandra datastax-enterprise

我刚安装了一个全新的Windows服务器,安装了新的数据集,包括cassandra 1.2和opscenter 2.1.3。我已经尝试在cassandra wiki和datastax网站上找到这些问题的解决方案,但我只能找到unix特定信息或datastax API信息。

Cassandra默认使用C:驱动器(我从未被要求在安装过程中为cassandra选择驱动器)。

  • 在同一个cassandra实例中,我可以将键空间分开 磁盘?
  • 如果没有,我如何将现有密钥空间迁移到新密钥空间 驾驶? (只需重新配置cassandra.yaml即可使用新目录 会丢失我的opscenter数据,甚至可能会破坏opscenter)。
  • 如果是,我如何在单独的驱动器上创建新的密钥空间? cassandra.yaml 似乎只有单个商店位置的配置选项。
  • 我应该创建一个新的集群来存储我的数据吗?如果我开始 将新节点添加到默认群集,这将意味着数据存储 opscenter数据将被复制 - 这看起来很糟糕 想法。

如果有关于此的好文档,请指出我。

谢谢, 亚当

1 个答案:

答案 0 :(得分:4)

你不能让cassandra分割键空间并将它们存储在不同的目录中。它们都存储在cassandra.yaml文件中指定的公共数据目录下。

但是,您可以设置它并使用NTFS在服务器上的数据目录下安装不同的驱动器,但这不是简单的或可扩展的。

如果要移动数据存储在cassandra上的位置,请停止cassandra守护程序/服务,更改cassandra.yaml文件以将数据存储在新位置,然后将整个数据目录复制/移动到这个新的位置。然后启动cassandra备份,它将与新位置的数据一起正常工作。我现在做了很多次这样做了cassandra没有发生事故而没有丢失数据(如果你不移动数据,那么它将丢失所有并在新位置重新创建目录结构)。

数据被复制并不是一件坏事 - 这就是cassandra的设计目标。我不知道opscenter使用什么复制因子,但它不存储大量数据,因此复制不是问题。