在Cassandra JBOD文件夹之间手动移动数据

在Cassandra JBOD文件夹之间手动移动数据,cassandra,Cassandra,一般问题: 在位于不同Cassandra JBOD文件夹(在Cassandra重新启动的单个节点内)上的表文件夹之间移动db文件是否安全 具体问题: 我已经在Cassandra群集上配置了备份。AmazonS3上存储的每个JBOD磁盘、模式和环信息的快照。现在我正在考虑从零开始恢复集群的可能性 initial_tokens configuration属性-使节点了解在此节点上还原的令牌。但是,我是否需要以某种方式指定关于数据如何在JBOD文件夹之间传播的任何信息?或者,当startup Cass

一般问题: 在位于不同Cassandra JBOD文件夹(在Cassandra重新启动的单个节点内)上的表文件夹之间移动db文件是否安全

具体问题: 我已经在Cassandra群集上配置了备份。AmazonS3上存储的每个JBOD磁盘、模式和环信息的快照。现在我正在考虑从零开始恢复集群的可能性


initial_tokens configuration属性-使节点了解在此节点上还原的令牌。但是,我是否需要以某种方式指定关于数据如何在JBOD文件夹之间传播的任何信息?或者,当startup Cassandra从每个文件中获取bloom筛选器时,该文件存储在哪个JBOD文件夹中并不重要?

是,当节点脱机时,它是安全的。只需关闭节点,移动文件并启动备份即可

您可以从备份中获取sstables并将它们放在另一个集群上,您需要担心的是令牌分配是否相同。否则,您放在节点上的sstables可能不是该节点期望保存的数据(意味着读取不会进入该节点)。此处描述了一种实现此目的的方法:。您可以从源集群复制令牌

nodetool ring | grep 0.0.0.0 | awk '{print $NF ", "}' | xargs | cut -d '=' -f 2 | sed 's/,$//' | sed 's/^/initial_token: /' > /tmp/tokens.txt
并将其放入目标集群中相应节点的cassandra.yaml中。当设置了自动引导时:false

不过,如果他们开始将令牌范围分配给磁盘或类似的东西,这种情况在将来可能会改变