暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase系统架构集群级别的扩容和缩容

2023-12-28
288

基于分布式架构的 OceanBase 数据库提供灵活的在线扩展性。在集群持续可用的前提下,提供在线扩缩容。

OceanBase 数据库是分布式的数据库系统,通常由多个可用区(Zone)组成,每个可用区(Zone)内包含若干多台物理服务器(OBServer)。OceanBase 数据库的整体结构入下图所示。

集群扩缩容

与传统单机数据库相比,基于分布式架构的 OceanBase 数据库提供灵活的在线扩展性。在集群持续可用的前提下,提供在线扩缩容。当集群的容灾需求发生变化时,可通过调整可用区数量(加/减 Zone)的方式提高或降低集群的容灾能力。当集群的外部负载发生变化时,可通过调整可用区内物理机的数量(加/减 OBServer)的方式改变集群的负载能力。以下从两个层面详细介绍 OceanBase 数据库的扩缩容能力。

可用区(Zone)动态调整

OceanBase 集群中的每一份数据都维护了多个副本,一份数据的多个副本通过 paxos 协议组成一个基本的高可用单元。通常情况下,会在每个可用区内部署至多一个数据副本,在少数可用区发生故障时,剩余可用区内的副本仍可以通过 paxos 协议,在保证数据完整的前提下,继续提供服务。可通过增加可用区的数量来增加数据的副本数,进而提高系统可用性,具体示例如下。

存在一个 OceanBase 集群,共包含 3 个可用区 Zone1、Zone2、Zone3。集群中的每一份数据包含 3 个副本,分别部署在以上 3 个可用区内。为进一步提高系统的可用性,期望升级数据副本数为 5 副本,可通过扩容可用区数量的方式达到这个目标。首先为集群添加两个新的可用区 Zone4 和 Zone5。然后在新的可用区 Zone4 和 Zone5 内添加物理机。随后可根据用户需求,在可用区 Zone4 和 Zone5 上部署新的数据副本,完成 Zone 级别的动态扩容。相反地,可用通过减少可用区的数量,来实现可用区级别的动态缩容操作。

物理机的扩缩容

为支持数据库服务能力的线性扩展,OceanBase 数据库支持可用区内物理机的动态扩缩容操作,即在可用区内调整物理机的数量来扩展服务能力,OceanBase 数据库实现服务能力线性扩展的,具体示例如下。

存在一个 OceanBase 集群,共包含 3N 个 OBServer(包含 3 个可用区 Zone1、Zone2、Zone3,每个 Zone 包含 N 个 OBServer)提供读写服务,当集群提供的服务能力不能完全满足读写请求时,需要对该 OceanBase 集群扩容以提高集群服务能力。为集群扩容三台新 OBServer,每个可用区扩容一台,扩容后每个可用区包含 N+1 台 OBServer。通过动态扩容,集群中的 OBServer 数量相应增加,RootService 会根据内部的负载均衡机制,将集群内原有负载依次均衡到新扩容的 OBServer 上,具体的负载均衡机制与策略,可参考 资源单元的均衡 和 数据均衡

相反地,当集群中的 OBServer 的服务能力对当前负载有较多冗余时,可考虑通过缩减 OBServer 来降低集群成本,称即将被缩减掉的 OBServer 为待删除 OBServer。具体地,可执行集群管理指令,将待删除 OBServer 上的数据和负载迁移到其他可用 OBServer 上去,然后回收待删除 OBServer,完成物理机缩容。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论