01 阿里云RDS的架构与规格大图
下图从高可用类型、数据可靠性、资源复用率、规格大小、规格代码等角度,较为完整的概况了当前RDS主要的架构与规格:
从高可用区架构上,分为单节点(基础版)、双节点(高可用版)以及三节点企业版、集群版(仅SQL Server AlwaysOn)。从资源共享与隔离上,则分为通用型、独享型、共享型和独占物理机(可以理解为是特殊的独享型)。从磁盘使用上的不同,则分为云盘版和本地盘版。
当前,RDS最大规格为104核CPU,768GB内存。其中通用型,最大为12核CPU;共享型最大为32核CPU。
02 主要的架构类型
数据库通常是企业业务架构中的核心组件,数据库的可用性与业务可用性直接相关。所以,高可用是云数据库架构选型第一个需要关注的内容。
从高可用角度,阿里云数据库提供了基础版(即单节点)、双节点高可用版、三节点企业版。不同的版本,则是在成本、可用性、数据可靠性之间的平衡:
- 单节点通过简单的架构,以最低的成本提供了基本可用的云数据库服务
- 双节点高可用版则是适合绝大多数业务场景的模式,两个节点分布于一个地区的两个可用区,故障时,切换速度较快,数据双副本,可靠性也比较高
- 三节点企业版,则通过X-Paxos实现底层数据一致,并以三副本(两份数据+一份日志)保障数据可靠性
2.1 基础版(即单节点版本)
阿里云基础版使用阿里云云盘作为数据库存储,挂载在数据库的计算节点上,实现了存储与计算的分离。这使得,计算节点出现故障的时候,重新使用一个新的计算节点,再重新挂载原来的数据库存储,即可启动数据库,恢复出现故障的数据库。所以,在计算节点发生故障的时候,RPO通常小于1分钟,RTO则为5分钟~一小时。当整个可用区发生故障的时候,RPO和RTO的值则依赖数据库备份的频率情况。
2.2 高可用版
两节点高可用是用户使用最多的版本,也是数据库最为常见的架构。数据库有主备两个节点组成,通过数据库层的逻辑日志进行复制。相比单节点,无论是在数据可靠性、服务的可用性都有非常大的提升。由于主备节点都在同一个大region,日志延迟通常都非常小,所以发生单节点故障时,高可用版的数据可靠性通常是比较高的。注意到,AWS对应的双节点版本的RPO是零,那么阿里云数据库怎样呢?
具体的,对阿里云RDS MySQL,阿里云的两节点高可用,根据所选择的参数模板分为如下三类:
- 高性能:sync_binlog=1000, innodb_flush_log_at_trx_commit=2, async
- 异步模式:sync_binlog