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