OceanBase 集群支持多机房多地区部署方式吗?有哪些基础设施的要求?应如何选择方案?

在 OceanBase 集群的搭建中,允许将多个副本(节点)分散到多个机房、多个城市中,跨机房/跨城市实现 Paxos Group。在选择多机房、多城市集群架构时,通常也是为了获取机房级容灾甚至是城市级容灾的能力。从技术上来说,只要支撑 OceanBase 数据库不同副本节点的基础设施足够好,在合理的副本分布下,OceanBase 数据库就可以将数据分布在不同的节点上对外提供数据服务。

通常情况下,OceanBase 数据库集群对基础设施的基本要求如下:

  • 节点间的网络延迟时间(单向延迟)最好保证在 50ms 以内,最差(单向延迟)也要在 100ms 以内。
  • OBServer 环境中的时钟服务应该保证时钟同步的偏差在 100ms 以内,且不能够产生 1s 及以上的时钟跳变。

通常情况下,进行多机房/多城市的的部署方案最重要的是考虑业务和各方面产生的架构需求。因为多机房/多城市的部署方式也会直接带来整个系统成本的大幅提高(例如,跨城市的网络专线部署等)。所以不同的部署方案是一个基于成本、需求、产品能力、方案可行性等多个维度的权衡结果产出。

从技术上来讲,可以解决机房级容灾或者城市级容灾的集群解决方案如下:

  • 同城三机房
  • 在同城三机房中,三个机房能力对等,都可以承担全部(或者部分)数据的主副本(Leader)角色,同时也承担其他数据的备份副本 (Follower) 的角色。
  • 同城三机房集群架构如下图所示。
  • 三地五中心五副本
  • 城市 1 和城市 2 能力对等,可以承担全部(或者部分)数据的主副本(Leader)角色,同时也承担其他数据的备份副本 (Follower) 的角色,城市 3 仅承担从副本角色。
  • 三地五中心五副本集群架构如下图所示。

在实际的部署方案中,OceanBase 团队也根据客户的需求定制过同城双机房和两地三中心的方案。两种部署方案都各自解决了一部分相应场景对于系统高可用的需求,但是同时也存在一定容灾能力的短板。在一定时期有可能作为系统架构的中间态成为客户在初始部署的选择,客户也有可能与 OceanBase 数据库主备库架构搭配使用一起达到期望的容灾能力。具体的方案探讨需要考虑多个因素和方面,如果有实际具体的场景,请联系 OceanBase 数据库技术架构师进行方案讨论和对接。

1 个赞