0

I followed the following steps to migrate all the data from one cluster to a completely new cluster: http://datascale.io/cloning-cassandra-clusters-fast-way/

I managed to get all the data to the new cluster, the servers see each other, nodetool status reports all nodes as UN. However, I do have a question, in one of the paragraph the initial_token values are taken from the nodes and copied one on one to the new servers, and I had to add JVM_OPTS="$JVM_OPTS -Dcassandra.load_ring_state=false". I suppose the JVM_OPTS can be discarded now, but I'm not so sure about the initial_tokens?

My entire configuration is managed by Puppet, and I'm now unsure whether the initial_tokens are needed once the cluster has been populated and initialized? The manifests are very clean, and this would add unnecessary complications since the values of inital_tokens are unique to each node. I want to be sure, since this is my first time dealing with Cassandra.

Vladimir
  • 321
  • 1
  • 12

1 Answers1

2

It seems that once the cluster has been initialized, the initial_token value gets written somewhere inside the Cassandra structure. Even after restarting the entire new cluster without the initial_token directive, the cluster works fine and I get the exact same tokens with the same procedure I got them on the old cluster.

Looks like after things are stabilized, you can remove the initial_token from the cassandra.yaml file.

Alexey Vazhnov
  • 497
  • 5
  • 13
Vladimir
  • 321
  • 1
  • 12
  • Crawling through Cassandra docs, this is indeed a good question, and nice to find some concrete answer. Thanks for saving me from setting up yet-another-labs ... – SYN Nov 15 '17 at 15:35
  • 1
    Yes after the node has complete the initial bootstrap, the tokens are saved in the system.local table. – grom Apr 13 '18 at 23:17