运维实践 | OpenMLDB 跨机房容灾方案

背景
在单集群部署环境下,OpenMLDB 具备集群内节点级别的高可用能力。但若受到机房断电或者自然灾害等不可抗拒因素,则将造成的机房或大部分节点无法正常运转的情况,从而引发该集群状态异常,导致在线服务中断。为此,OpenMLDB 提供了一个跨机房容灾方案来解决该问题。在该方案中,用户可以在多个异地机房,分别部署独立的 OpenMLDB 集群,并且将这多套 OpenMLDB 集群设置成为主从复制模式。在这种部署架构下,如果主集群无法提供服务,用户可以进行主从切换,从而保证业务不中断。

架构

名词定义

  • 主集群:能支持读写的集群,并且可以给从集群同步数据。一个主集群可以有多个从集群。
  • 从集群:只提供读请求的集群,数据和主集群保持一致;可以在需要的时候切换为主集群;可以部署多个。
  • 分片 leader:主分片,接收读写数据。
  • 分片 follower:从分片,只接受分片 leader 同步过来的数据,目前不接受客户端的直接写请求。
  • offset:本文 offset 特指 OpenMLDB 的 binlog 所保存的数据偏移量,该值越大,说明保存有更多的新鲜数据。

关于名词的进一步解释可以查看 OpenMLDB 的在线模块架构文档:https://openmldb.ai/docs/zh/main/reference/arch/online_arch.html

目标

  • 主集群支持写操作,主从集群都可以支持读操作
  • 一个主集群可以有多个从集群作为备份
  • 主集群出现意外不可用时能够手动切换,让其中一个从集群提升为主集群
  • 能够自动处理主集群或者从集群内部节点下线不可用(包括 nameserver 和 tablet)的情况

技术方案

主从集群的整体技术架构如下图所示:
file
主从集群之间的同步信息,主要包含数据同步和元信息同步两部分。

初始状态

对于主从集群的初始状态,可以为以下状态之一:

  • 主集群和从集群的数据均为空
  • 主或从集群不为空,主从集群的表名以及 schema 一致,并且主集群 offset 大于等于从集群的 offset,否则会报错。<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值