无需停机即可将生产环境cassandra集群移至AWS cassandra

时间:2019-03-17 04:28:21

标签: amazon-web-services cassandra cassandra-2.0

我有4个节点的cassandra集群在本地DC中的生产环境中运行。我必须将其移至AWS cassandra。由于某些原因,我不想将cassandra移至dynamoDB。

使用的Cassandra版本相当旧,即1.2.9。

如何将cassandra从本地DC迁移到AWS cassandra,而不会造成数据丢失和零停机时间。

关于, Vivek

2 个答案:

答案 0 :(得分:2)

在AWS中创建新的DC。在两个DC之间配置DC间同步。拆除旧的DC。

https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsAddDCToCluster.html

答案 1 :(得分:1)

我以前做过。

正如Alex Tbk所说,您将在AWS的节点上添加一个新的数据中心。

  1. 使用新的逻辑数据中心名称添加新的空节点。您需要使用GossipingPropertyFile窃听功能(如果尚未安装),并在cassandra-rackdc.properties文件中指定DC。您还可以在该文件中指定一个逻辑机架,通常将AWS可用区放在那里是个好主意。

  2. 构建了一个AWS节点后,请使用第一个节点的IP作为种子来构建其余节点。您不希望他们尝试在重新启动时尝试达到本地DC。然后,您还需要将第一个节点设置为使用另一个节点作为种子节点。

  3. 一旦构建了节点,就需要修改密钥空间并为新的AWS DC指定复制因子。

  4. 使用您现有的DC作为源,在每个AWS节点上运行nodetool rebuild

    nodetool rebuild -- sourceDCName

  5. 绝对会考虑升级。 1.2是可靠的版本,但您错过了许多新功能/修复程序。

注意:有些人建议使用AWS特定的告密者(EC2SnitchEC2MultiRegionSnitch),但是您希望集群中的所有节点都在同一告密者上运行。因此,对于混合云部署(在您有机会对内部部署节点进行分解之前),您需要坚持使用GossipingPropertyFile告密者。老实说,这是我唯一使用的告密者,无论提供者是什么,您也应该对此感到满意。