数据容灾

更新时间:
复制为 MD 格式

方案选型

Elasticsearch(ES)异地容灾主要有以下方案:

  • OSS快照备份与恢复:通过将索引数据备份到阿里云对象存储OSS,实现数据持久化保存。首次快照为全量备份,后续为增量备份。通过跨集群OSS仓库,可将快照数据恢复到目标ES实例。详情请参见通过跨集群OSS仓库备份与恢复数据

  • Logstash:通过配置管道(Pipeline),从源端ES集群读取数据,经过处理后写入目标集群。适用于版本跨度较大的数据迁移和需要数据过滤转换的场景。详情请参见快速入门

  • Reindex:通过ES内置的Reindex API,将全量或符合条件的数据从一个索引复制到另一个索引,支持跨集群操作。适用于数据量较小的一次性迁移场景。详情请参见通过Reindex API迁移数据

  • 跨集群复制(CCR):将Leader集群的可写索引,以异步、增量的方式自动复制到一个或多个Follower集群。支持近实时同步,适用于对RPORTO要求较高的容灾场景,详情请参见通过CCR实现跨集群数据复制

方案对比

方案

适用场景

RPO

RTO

主要限制

OSS快照

大规模数据(GB~PB级别)的定期备份与恢复

小时级到天级(取决于快照间隔)

数小时(取决于数据量和分片恢复时间)

无法实现持续同步;恢复期间可能需要停止服务

Logstash

对实时性要求不高的数据迁移;需要数据过滤转换的场景;版本跨度较大的迁移

秒级到分钟级(取决于同步频率)

数小时(取决于数据量和实例性能)

批量同步,无法实时;不支持同步delete操作

Reindex

数据量较小的一次性索引迁移

不适用(一次性操作)

分钟级到数小时(取决于数据量)

无法持续同步;大规模数据迁移效率低

CCR

异地容灾、读写分离、就近访问

近零(秒级)

秒级到分钟级

Follower索引只读;需要相同的mapping和分片数

对于RPO和实时性要求高的异地容灾场景,CCR是最佳选择:

  • CCR实现秒级数据同步,数据丢失最小化。

  • 主集群故障时,业务流量切换到Follower集群即可恢复服务,无需等待快照恢复。

  • 虽然初始部署成本较高,但长期来看避免了数据丢失导致的业务损失,性价比更高。