The four steps you have outlined are definitely a viable option. There is also a simple binary installation route: https://docs.datastax.com/en/latest-upgrade/upgrade/datastax_enterprise/upgrdCstarToDSE.html
I will speak in the context of the steps described above. If you are interested in what happens with a binary installation, we can also talk about it.
Note doc links are for Cassandra 3.0 (DataStax 5.0) - make sure the document versions match your version of Cassandra.
If the current major version of Cassandra == the current major version of Cassandra is in DataStax, you can add DataStax nodes as a new DC in the same cluster as the current Cassandra environment, as follows: http://docs.datastax.com/en/cassandra/ 3.0 / cassandra / operations / opsAddDCToCluster.html - This will result in existing data appearing from the existing Cassandra DC to DataStax DC.
If you are not compatible with Cassandra versions (the current Cassandra is older / older than DataStax Cassandra), then you can access DataStax through https://academy.datastax.com/slack , as the process will be more specific to your environment and can vary greatly.
As stated in the docs, you want to run
ALTER KEYSPACE "your-keyspace" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'OldCassandraDC':3, 'DataStaxDC':3};
(obviously changing the DC name and replication rate to your specifications)
This will ensure that the new data from your manufacturers is replicated to the new DataStax nodes.
Then you can run nodetool rebuild -- name_of_existing_data_center from the nodetool rebuild -- name_of_existing_data_center nodes to stream data from existing Cassandra nodes. Depending on how much data there is, it may be time consuming, but it is the easiest, best way to do this.
Then you would like to update the contact points in your manufacturers / consumers one by one before the decommissioning of the old Cassandra DC.
Some tips in my experience:
- Make sure your DataStax nodes use GosspingPropertyFileSnitch in the cassandra.yaml file before starting these nodes.
- When starting
nodetool rebuild do this using the screen so that you can see when it will complete (or errors). Otherwise, you will need to track progress using nodetool netstats and check for streaming activity. - Build OpsCenter to track what happens in the DataStax cluster during rebuilds. You can monitor stream throughput, pending compression, and other Kassandra metrics.
- When the time comes to decommission the old DC, make sure that you follow these steps: http://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsDecomissionDC.html
Hope this helps!