首页 文章

Cassandra将Keyspace存储到新磁盘

提问于
浏览
2

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

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

  • 在同一个cassandra实例中,我可以在不同的磁盘上使用键空间吗?

  • 如果没有,如何将现有密钥空间迁移到新驱动器? (只是重新配置cassandra.yaml以使用新目录会丢失我的opscenter数据,甚至可能会破坏opscenter) .

  • 如果是,如何在单独的驱动器上创建新的密钥空间? cassandra.yaml似乎只有单个商店位置的配置选项 .

  • 我应该创建一个新的集群来存储我的数据吗?如果我开始向默认群集添加新节点,那将意味着数据传输操作数据将被复制 - 这似乎是一个坏主意 .

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

谢谢,亚当

1 回答

  • 4

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

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

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

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

相关问题