将节点添加到现有Cassandra集群中

问题描述 投票:1回答:1

我们目前有一个2节点的Cassandra集群。我们想使用机架功能将另外4个节点添加到集群中。未来的拓扑将是:

  • node-01(Rack1)
  • node-02(Rack1)
  • node-03(Rack2)
  • node-04(Rack2)
  • node-05(Rack3)
  • node-06(Rack3)

我们想使用不同的机架,但使用相同的DC。

但是现在我们使用SimpleStrategy,并且所有键空间的复制因子均为1。我从2节点集群切换到6节点集群的计划如下所示:

  1. 将端点侦听更改为GossipingPropetyFileSnitch
  2. 使用replication_factor NetworkTopologyStrategy更改'datacenter1': '3'的键空间。

根据文档,当我们向现有集群添加新的DC时,我们也必须更改系统键空间。但是在本例中,我们仅更改了snitch和keyspace策略,而不更改了Datacenter。还是在添加更多节点并更改密探的情况下,我是否也应该更改系统键空间策略和复制因子?

cassandra cassandra-3.0
1个回答
0
投票

首先,我将一个节点上的endpoint_snitch更改为GossipingPropertyFileSnitch,然后重新启动它。首先,您需要确保该方法有效。通常,您不能(轻松)更改正在运行的集群上的逻辑数据中心或机架名称。您不是在哪个[[技术上]]上执行此操作,但是SimpleStrategy可能会在后台进行某些操作来抽象化数据中心/机架感知,因此进行测试是个好主意。]如果可行,请进行更改并重新启动另一个节点。如果不起作用,则可能需要添加6个新节点(而不是4个)并停用现有的2个节点。

或者我也应该更改系统键空间策略和复制因子吗?

是,您应该在以下键空间上设置相同的键空间复制定义:system_authsystem_tracessystem_distributed

考虑这种情况:如果您的2个节点之一崩溃,您将无法通过system_auth表以分配给该节点的用户身份登录。因此,确保system_auth被正确复制非常重要。

我之前写过一篇文章(于2018年更新):Replication Factor to use for system_auth

此外,我建议在system_tracessystem_distributed上使用相同的方法,因为如果找不到这些键空间的有效令牌范围,将来的节点添加/替换/修复可能会失败。基本上,对它们使用相同的方法可以防止将来出现潜在的问题。
© www.soinside.com 2019 - 2024. All rights reserved.