存算分离cloud模式下的灾备问题

Viewed 8

两个完全独立的 Cloud 集群, 如下
集群A
├─ FE-A
├─ BE-A
├─ MS/RE-A
└─ FDB-A

集群B
├─ FE-B
├─ BE-B
├─ MS/RE-B
└─ FDB-B

集群B如何同步复制集群A,或者使用DDL重建链接到A的S3上使其数据能访问?
存算分离模式下元数据好像不仅仅存储在FDB中,还有部分如catalog/databases等等是在FE meta中的?

3 Answers

补充一下:存算分离下的数据有几部分,如下所示,那么这3部分的数据如何顺利迁移到新集群B中
┌──────────────────────────────────────────
│ FE 层(BDBJE) │
│ 存储内容:Database/Table/Partition/Column定义、 │
│ 权限、Job 等 MySQL 协议依赖信息 │
│ 位置:FE 节点本地磁盘(doris-meta 目录) │
├─────────────────────────────────────────────────────────┤
│ MetaService / FDB 层 │
│ 存储内容:Tablet 元数据、Rowset 元数据、 │
│ 导入事务记录、BE/Compute Group 注册关系 │
│ 位置:FoundationDB 集群(内存 + SSD 持久化) │
├─────────────────────────────────────────────────────────┤
│ 共享存储层(S3 / HDFS) │
│ 存储内容:实际 Tablet 数据文件(Segment/Rowset 文件) │
│ 位置:对象存储,两集群共享或跨 Region 复制 │
└──────────────────────────────────────────

当前开源版本的 cloud 模式不支持backup,所以没办法走 CCR的方式进行实时同步。
当前可以在A集群使用export 的方式将数据备份到对象存储/HDFS,然后再加工HDFS/S3的数据load到B集群中。
同时 4.0 版本支持了Doris catalog,走arrow flight 模式,你可以走这个方式进行数据同步,A集群数据同步到BE集群

谢谢你的建议,你说的这种办法本质上非常像 MySQL 的 dump/import,只不过使用对象存储/HDFS作为中间存储媒介。现在如果当前的集群A已经灾难down了,无法立即export最新的数据。
我网上看到有个DDL+ 旧S3方案,不知道是否可行,即是在集群A运行过程记录完整的DDL,当集群A灾难时,使用这个完整的DDL在异地建新集群B回放这套ddl,再链接 + 旧S3 bucket,这样可行吗?