多节点数据中心的重启顺序

时间:2018-10-24 04:38:28

标签: cassandra

我们使用的是Cassandra版本:3.11.2,我们有两个数据中心A和B各自都有3个节点,而我在cassandra的所有6个节点中提到的种子分别是DC A的第一个IP和DC B的1个.yml。

现在需要维护DC B节点上的修补程序,我们需要在DC B节点上停止cassandra并重新启动它。

我的困惑是:

  • 重新启动DC B是否会影响DC A节点及其数据复制?

重新开始怀疑:

  • 我只能在DC B节点上停止并重新启动(从种子节点开始,然后是非种子)。这是重新启动的正确方法吗? 或
  • 由于种子节点来自两个DC,我是否需要在维护DC B之后从种子节点开始停止两个DC上的所有节点?

鉴于场景节点故障或数据丢失,我问这些问题。

请提出建议。

1 个答案:

答案 0 :(得分:1)

如果(默认情况下)启用了hinted_handoff_enabled并且您的维护在max_hint_window_in_ms时间范围(3小时)内,那么在重新启动DC B之后,数据将从以下位置的节点流式传输DC A,因此最终您也将所有数据都存储到DC B中。为了确保这一点,您可以在所有节点都恢复后perform repair

关于重启:

  • 最好先在DC B中启动种子节点,但是此时您需要确保DC A中的种子节点处于联机状态; <​​/ li>
  • 您无需在重启一个DC之前停止集群的所有节点;
  • DC B中,您甚至可以一个接一个地修补节点,然后分别重新启动它们,但这可能取决于您正在执行的修补类型,例如Cassandra升级还是类似的事情。在这种情况下,您可能需要禁用维修等。