gpt4 book ai didi

database - Cassandra:将磁盘运送到新 DC 以同步 50TB 数据

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:36 24 4
gpt4 key购买 nike

我们正在向我们的 Cassandra 集群添加一个新的数据中心。目前,我们有一个 15 节点的 DC,RF=3,产生了大约 50TB~ 的数据。

我们正在另一个国家/地区添加另一个数据中心,我们希望两个数据中心都包含所有数据。显然,在互联网上同步 50TB 数据将花费大量时间。

是否可以将一个完整的副本复制回几个磁盘,将其运送到新的 DC,然后恢复?我只是想知道这样做的程序是什么。

如果可能的话,有人可以给我一些关于这个操作的指导吗?或者有什么其他技巧吗?

我们的新 DC 暂时会更小(6 个节点),但会有足够的空间可用。一般来说,新 DC 主要用作实时备份/故障转移,不会成为写入的主要集群。

最佳答案

长话短说;由于两个 DC 之间的拓扑结构(节点数)发生变化,据我所知,避免将数据流式传输是不可能的。

Our new DC is going to be smaller (6 nodes) for the time being

由于节点上的 token 对齐方式不同(新集群的环将发生变化),典型流程将无法正常工作。因此,仅仅复制现有的 SSTables 是行不通的,因为保存这些表的节点可能没有与文件中的数据相对应的标记,因此 C* 将无法找到所述数据。

将数据批量加载到新 DC 也已过时,因为如果您重新插入旧数据,将会覆盖旧数据。

如果您要保留拓扑,请概述该过程:

  1. 快照来自原始 DC 的数据
  2. 配置新的 DC。为每台机器设置 initial_token 非常重要。您可以通过在原始集群上运行 nodetool ring 来获取所需 token 的列表。这就是为什么您需要相同数量的节点。同样重要的是,在复制 SSTable 文件时,您需要文件和 token 来自同一节点。
  3. 将数据发送到新 DC(请记住,如果新节点 10.0.0.1 从旧 dc 的 192.168.0.100 获取 token ,那么它还必须从 192.168.0.100 获取快照数据)。
  4. 启动新的 DC 并确保两个 DC 都能正常看到对方。
  5. 重建并修复 system_distributedsystem_auth(假设您启用了身份验证)
  6. 根据您的需要更新客户端一致性。 (你想写信给两个 DC 吗?从你的描述听起来像是不,所以你可能都很好)。
  7. 更新架构,确保您对要共享的任何 key 空间使用 NetworkTopologyStrategy,然后为新 DC 添加一些复制。
    ALTER KEYSPACE ks WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'oldDC' : 3, 'newDC':3 };
  1. 对新数据中心的每个节点进行全面修复。

关于database - Cassandra:将磁盘运送到新 DC 以同步 50TB 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58409127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com