2017-05-31 20 views
0

一般問題: 在位於不同Cassandra JBOD文件夾(Cassandra重新啓動的單節點內)的表文件夾之間移動db文件是否安全?手動在Cassandra JBOD文件夾之間移動數據

具體問題: 我在Cassandra集羣上配置了備份。來自存儲在Amazon S3上的每個JBOD磁盤,架構和環信息的快照。現在我正在考慮從頭開始恢復集羣的可能性。

initial_tokens配置屬性 - 使節點了解在此節點上恢復的令牌。但是,我是否需要以某種方式指定有關數據如何在JBOD文件夾之間傳播的信息?或者當啓動Cassandra從每個文件中提取布隆過濾器時,這些文件存儲在哪個JBOD文件夾上並不重要?

回答

1

在節點處於脫機狀態時安全可靠。只需關閉節點,移動文件並將其重新啓動即可。

您可以從備份中獲取sstable並將它們放在另一個羣集上,您必須擔心令令牌分配變得相同。否則,你放在一個節點上的sstables可能不是該節點所期望的數據(意思是讀不會去)。這裏描述了一種方法:http://datascale.io/cloning-cassandra-clusters-fast-way/。您可以複製來自源羣集的令牌

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。雖然有設置auto_bootstrap: false

這可能會在將來改變,但如果他們開始分配令牌範圍磁盤或類似的東西。