cassandra:将磁盘运送到新的dc以同步50tb的数据

zvms9eto  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(350)

我们正在向cassandra集群添加一个新的数据中心。目前,我们有一个15节点的dc,rf=3,产生大约50tb的数据。
我们正在另一个国家添加另一个数据中心,我们希望两个数据中心都包含所有数据。显然,在互联网上同步50tb的数据将花费大量的时间。
是否可以将一个完整的备份复制到几个磁盘,然后将其运送到新的dc,然后进行恢复?我只是想知道这样做的程序是什么。
如果可能的话,有人能给我一些关于这次行动的建议吗?或者其他的建议?
我们的新dc将暂时变小(6个节点),尽管有足够的空间可用。新的dc主要是作为一个实时备份/故障转移,一般来说,它不会成为写操作的主要集群。

vs91vp4v

vs91vp4v1#

热释光;博士;由于两个dcs之间的拓扑结构(节点数)发生了变化,因此不可能避免数据流。
我们的新dc将暂时变小(6个节点)
由于节点上的令牌对齐方式不同(新集群的环将改变),典型的过程将无法工作。因此,仅仅复制现有的sstables是行不通的,因为保存这些表的节点可能没有与文件中的数据对应的令牌,因此c*将无法找到所述数据。
将数据大容量加载到新的dc也会失败,因为如果重新插入数据,将覆盖旧数据。
如果要保留拓扑,请概述该过程:
从原始dc快照数据
配置新的dc。为每台机器设置初始的\u令牌是非常重要的。您可以通过运行 nodetool ring 在原始集群上。这就是为什么需要相同数量的节点。同样重要的是,在复制sstable文件时,需要文件和令牌来自同一节点。
将数据发送到新的dc(请记住,如果新节点10.0.0.1从旧dc中的192.168.0.100获取了它的令牌,那么它还必须从192.168.0.100获取它的快照数据)。
启动新的dc,并确保两个dc彼此正常。
重建和修复 system_distributed 以及 system_auth (假设已启用身份验证)
根据需要更新客户端一致性(是否要同时向两个DC写信?从你的描述听起来像是一个不,所以你可能都很好)。
更新架构,确保使用 NetworkTopologyStrategy 对于要共享的任何keypce,请为新dc添加一些复制。

ALTER KEYSPACE ks WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'oldDC' : 3, 'newDC':3 };

对新dc中的每个节点运行完全修复。

相关问题