我有4个节点的cassandra集群在本地dc的生产环境中运行。我得把它搬到Cassandra。我不想因为某些原因把Cassandra搬到迪纳莫德。使用的Cassandra版本非常旧,即1.2.9。如何将cassandra从本地dc移动到aws cassandra而不丢失数据和零停机时间。你好,维韦克
mrfwxfqh1#
我以前做过。正如alex tbk所说,您将在aws中添加节点,并使用新的数据中心。使用新的逻辑数据中心名称添加新的空节点。你需要使用 GossipingPropertyFile 告密者(如果你还没有)并在 cassandra-rackdc.properties 文件。您还可以在该文件中指定一个逻辑机架,通常最好将aws可用性区域放在那里。在构建一个aws节点之后,使用第一个节点的ip作为种子构建其余的节点。你不会希望他们在重新启动时试图攻击你的prem dc。之后,还需要将第一个节点设置为使用其他节点中的一个作为种子节点。一旦构建了节点,就需要修改keyspace并为新的awsdc指定一个复制因子。运行 nodetool rebuild 在每个aws节点上,使用现有dc作为源。 nodetool rebuild -- sourceDCName 一定要考虑升级。1.2是一个稳定的版本,但你错过了这么多的新功能/修复。注意:有些人建议使用aws特定的告密者( EC2Snitch , EC2MultiRegionSnitch ),但您希望群集中的所有节点都运行在同一个告密者上。因此,对于混合云部署(在您有机会装饰您的内部部署节点之前),您需要坚持 GossipingPropertyFile 告密者。老实说,这是我唯一使用的告密者,无论供应商,你应该是罚款,太。
GossipingPropertyFile
cassandra-rackdc.properties
nodetool rebuild
nodetool rebuild -- sourceDCName
EC2Snitch
EC2MultiRegionSnitch
u0sqgete2#
在aws中创建新dc。在两个dc之间配置dc间同步。使旧的dc退役。https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsadddctocluster.html
2条答案
按热度按时间mrfwxfqh1#
我以前做过。
正如alex tbk所说,您将在aws中添加节点,并使用新的数据中心。
使用新的逻辑数据中心名称添加新的空节点。你需要使用
GossipingPropertyFile
告密者(如果你还没有)并在cassandra-rackdc.properties
文件。您还可以在该文件中指定一个逻辑机架,通常最好将aws可用性区域放在那里。在构建一个aws节点之后,使用第一个节点的ip作为种子构建其余的节点。你不会希望他们在重新启动时试图攻击你的prem dc。之后,还需要将第一个节点设置为使用其他节点中的一个作为种子节点。
一旦构建了节点,就需要修改keyspace并为新的awsdc指定一个复制因子。
运行
nodetool rebuild
在每个aws节点上,使用现有dc作为源。nodetool rebuild -- sourceDCName
一定要考虑升级。1.2是一个稳定的版本,但你错过了这么多的新功能/修复。注意:有些人建议使用aws特定的告密者(
EC2Snitch
,EC2MultiRegionSnitch
),但您希望群集中的所有节点都运行在同一个告密者上。因此,对于混合云部署(在您有机会装饰您的内部部署节点之前),您需要坚持GossipingPropertyFile
告密者。老实说,这是我唯一使用的告密者,无论供应商,你应该是罚款,太。u0sqgete2#
在aws中创建新dc。在两个dc之间配置dc间同步。使旧的dc退役。
https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsadddctocluster.html