Cassandra群集-迁移群集中的所有主机

Cassandra群集-迁移群集中的所有主机,cassandra,Cassandra,我使用的Cassandra(3.5)有20个节点,其中数据中心1有10个节点,数据中心2有10个节点,数据量巨大。所有主机都属于旧主机。现在我们有了新一代主机,比如第二代 我已尝试添加新节点并停用旧节点。但这将是非常消耗的 Q1:如何将所有主机从旧主机迁移到第2代主机?最好的方法是什么? 问题2:什么是回滚策略? 问题3:最后,迁移到第2代主机后,如何验证数据?如果您只是用较新的硬件替换节点,保持相同的节点数,那么很简单(操作应在每个节点上完成): 在每个节点上准备新安装,配置与现有节点相同,但

我使用的Cassandra(3.5)有20个节点,其中数据中心1有10个节点,数据中心2有10个节点,数据量巨大。所有主机都属于旧主机。现在我们有了新一代主机,比如第二代

我已尝试添加新节点并停用旧节点。但这将是非常消耗的


Q1:如何将所有主机从旧主机迁移到第2代主机?最好的方法是什么?
问题2:什么是回滚策略?

问题3:最后,迁移到第2代主机后,如何验证数据?

如果您只是用较新的硬件替换节点,保持相同的节点数,那么很简单(操作应在每个节点上完成):

  • 在每个节点上准备新安装,配置与现有节点相同,但IP地址不同,但不启动节点
  • (可选)使用
    nodetool disableautocompression
    禁用自动压缩功能-这有助于更快地执行步骤5
  • 使用
    rsync
    将数据从旧节点复制到新节点(这可能需要很长时间)
  • 执行
    nodetool排放
    &停止旧节点
  • 使用
    rsync
    同步初始复制后发生的更改(应该相对较快)
  • 确保旧节点不会再次启动(例如,删除Cassandra包)——否则可能会出现混乱
  • 启动新节点
  • 这是因为Cassandra节点由存储在本地表中的UUID标识,所以更改IP不会影响操作


    另外,如果您将来需要更换节点(不是如所述,而是完全死掉),请使用-在这种情况下,您不会像取消调试然后重新添加节点时那样两次流式传输数据。

    如果您只是用较新的硬件更换节点,保持相同的节点数,那么这很简单(应在每个节点上执行操作):

  • 在每个节点上准备新安装,配置与现有节点相同,但IP地址不同,但不启动节点
  • (可选)使用
    nodetool disableautocompression
    禁用自动压缩功能-这有助于更快地执行步骤5
  • 使用
    rsync
    将数据从旧节点复制到新节点(这可能需要很长时间)
  • 执行
    nodetool排放
    &停止旧节点
  • 使用
    rsync
    同步初始复制后发生的更改(应该相对较快)
  • 确保旧节点不会再次启动(例如,删除Cassandra包)——否则可能会出现混乱
  • 启动新节点
  • 这是因为Cassandra节点由存储在本地表中的UUID标识,所以更改IP不会影响操作


    另外,如果您将来需要更换节点(未按描述,但已完全死亡),使用-在这种情况下,您不会像取消调试然后重新添加节点时那样两次流式传输数据。

    DCs中的节点数相同?DCs中的节点数相同?谢谢Alex…Q:什么是回滚策略?Q:迁移后如何验证数据?为什么需要回滚?这只是一个硬件更改,而不是版本升级…同样用于验证-迁移后需要运行修复(如果步骤4-7需要3小时以上,则可能需要在每个节点升级后运行修复).谢谢Alex…Q:什么是回滚策略?Q:迁移后如何验证数据?为什么需要回滚?这只是一个硬件更改,而不是版本升级…类似地,验证-迁移后需要运行修复(如果步骤4-7需要3小时以上,则可能需要在每个节点升级后运行)。