展开
当前位置:

RDS架构

基础架构

RDS由六个服务构成,分别是数据链路服务、高可用服务、备份服务(含恢复)、监控服务、调度服务和迁移服务。

数据链路服务

数据链路服务主要提供数据操作,包括表结构和数据的增删改查。

DNS

DNS模块提供域名到IP的动态解析功能,以便屏蔽RDS实例IP地址变化带来的影响。

举例来说,
某RDS实例的域名为test.rds.aliyun.com,而这个域名对应的IP地址为10.1.1.1。某程序连接池中配置为test.rds.aliyun.com或10.1.1.1,都可以正常访问RDS实例。

当该RDS实例发生了可用区迁移或者版本升级后,IP地址就可能变为10.1.1.2。如果程序连接池中配置的是test.rds.aliyun.com,仍然可以正常访问RDS实例。如果程序连接池中配置的是10.1.1.1,就无法访问RDS实例了。

SLB

SLB模块提供实例IP地址(包括内网和外网IP),以便屏蔽物理服务器变化带来的影响。

举例来说,
某RDS实例的内网IP地址为10.1.1.1,对应的Proxy或者DB Engine运行在192.168.0.1上。在正常情况下,SLB模块会将访问10.1.1.1的流量重定向到192.168.0.1上。

当192.168.0.1发生了故障,处于热备状态的192.168.0.2接替了192.168.0.1的工作。此时SLB模块会将访问10.1.1.1.的流量重定向到192.168.0.2上,RDS实例仍旧正常提供服务。

Proxy

Proxy模块提供数据路由、流量探测和会话保持等功能,该模块还在不断发展中。

数据路由功能:支持大数据场景下的分布式复杂查询聚合和相应的容量管理。
流量探测功能:降低SQL注入的风险,在必要情况下支持SQL日志的回溯。
会话保持功能:解决故障场景下的数据库连接中断问题。

DB Engine

RDS全面支持主流的数据库协议,具体情况如下表所示:

RDBMS Version
MySQL 5.1(Deprecated), 5.5, 5.6
SQL Server 2008 R2
PostgreSQL 9.4
PPAS 9.3,高度兼容Oracle

DMS

DMS(Data Management Service,简称DMS)是一个访问管理云端数据的WEB服务,提供了数据管理、对象管理、数据流转和实例管理等功能。目前支持MySQL、SQL Server、PostgreSQL、PPAS和ADS等数据源。

高可用服务

高可用服务主要保障数据链路服务的可用性,除此之外还负责处理数据库内部的异常。
另外,高可用服务由多个HA节点提供,本身具有高可用的特点。

Detection

Detection模块负责检测DB Engine的主节点和备节点是否提供了正常的服务。
通过间隔为8-10秒的心跳信息,HA节点可以轻易获得主节点的健康情况。再结合备节点的健康情况和其他HA节点的心跳信息,Detection模块可以排除网络抖动等异常引入的误判风险,在30秒内完成异常切换操作。

Repair

Repair模块负责维护DB Engine的主节点和备节点之间的复制关系,还会修复主节点或者备节点在日常运行中出现的错误。如:
主备复制异常断开的自动修复
主备节点表级别损坏的自动修复
主备节点Crash的现场保存和自动修复

Notice

Notice模块负责将主备节点的状态变动通知到SLB或者Proxy,保证用户访问正确的节点。

举例来说,
Detection模块发现主节点异常,并通知Repair模块进行修复。
Repair模块进行了尝试后无法修复主节点,通知Notice进行流量切换。
Notice模块将切换请求转发至SLB或者Proxy,此时用户流量全部指向备节点。
与此同时,Repair在别的物理服务器上重建了新的备节点,并将变动同步给Detection模块。Detection模块开始重新检测实例的健康状态,并通过。

备份服务

备份服务主要提供数据的离线备份、转储和恢复。

Backup

Backup模块负责将主备节点上面的数据和日志压缩和上传。

RDS默认将备份上传到到OSS中,在特定场景下还支持将备份文件转储到更加廉价和持久的OAS上。
在备节点正常运作的情况下,备份总是在备节点上面发起,以避免对主节点提供的服务带来冲击;在备节点不可用或者损坏的情况下,Backup模块会通过主节点创建备份。

Recovery

Recovery模块负责将OSS上面的备份文件恢复到目标节点上。

回滚主节点功能:客户发起数据相关的误操作后可以通过回滚功能按时间点恢复数据。
修复备节点功能:在备节点出现不可修复的故障时自动新建备节点来降低风险。
创建只读实例功能:通过备份来创建只读实例。

Storage

Storage模块负责备份文件的上传、转储和下载。

目前备份数据全部上传至OSS进行存储,客户可以根据需要获取临时链接来下载。在某些特定场景下,Storage模块支持将OSS上面的备份文件转储至OAS来提供更长时间和更低费用的离线存储。

监控服务

Service

Service模块负责服务级别的状态跟踪。

举例来说,
Service模块会监控SLB、OSS、OAS和SLS等RDS依赖的其他云产品是否正常,包括功能和响应时间等。另外对RDS内部的服务,Service也会通过日志来判定是否正常运作。

Network

Network模块负责网络层面的状态跟踪。

举例来说,
ECS与RDS之间的连通性监控。
RDS物理机之间的连通性监控。
路由器和交换机的丢包率监控。

OS

OS模块负责硬件和OS内核层面的状态跟踪。

举例来说,
硬件检修:OS模块会不断检测CPU、内存、主板、存储等设备的工作状态,并预判是否会发生故障,并提前进行自动报修。
OS内核监控:OS模块会跟踪数据库的所有调用,并从内核态分析调用缓慢或者出错的原因。

Instance

Instance模块负责RDS实例级别的信息采集。

举例来说,
实例的可用信息。
实例的容量和性能指标。
实例的SQL执行记录。

调度服务

调度服务主要提供资源调配和实例版本管理。

Resource

Resource模块主要负责RDS底层资源的分配和整合,对用户而言就是实例的开通和迁移。

举例来说,
用户通过控制台或者Open API创建实例,Resource模块会计算出最适合的物理服务器来承载流量。RDS实例跨可用区迁移的情况类似。
在经过长时间的实例创建、删除和迁移后,Resource模块会计算可用区内的资源碎片化程度,并定期发起资源整合以提高可用区的服务承载量。

Version

Version模块主要负责RDS实例的版本升级。

举例来说,
MySQL大版本升级:MySQL 5.1升级至5.5和5.6;MySQL 5.5升级至5.6。
MySQL小版本升级:MySQL源码存在的bug修复。

迁移服务

迁移服务主要帮助用户把数据从自建数据库迁移到RDS里面。

DTS

DTS(Data Transfer Service,简称DTS)是一个云上的数据传输服务,目前支持MySQL、SQL Server和PostgreSQL三种数据库。DTS还提供了三种迁移模式,分别为结构迁移、全量迁移和增量迁移。

结构迁移:DTS会将迁移对象的结构定义迁移到目标实例,目前支持结构迁移的对象有表、视图、触发器、存储过程和存储函数。
全量迁移:DTS会将源数据库迁移对象在的数据全部迁移到目标实例。在全量迁移过程中,为了保证数据一致性无主键的非事务表会被锁定,锁定期间这些表无法写入,锁定时长依赖于这些表的数据量大小,在这些无主键非事务表迁移完成后,锁才会释放。
增量迁移:增量迁移会将迁移过程进行数据变更同步到目标实例,如果迁移期间进行了DDL操作,那么这些结构变更不会同步到目标实例。

FTP

FTP模块主要负责RDS for SQL Server的全量迁移上云。

用户在自建的SQL Server数据库上进行一次备份后,可以通过FTP客户端将备份文件上传至RDS提供的专用FTP上,FTP模块会将备份还原到指定的RDS实例上。

阿里云代理网,享受阿里云代理价

RDS架构:等您坐沙发呢!

发表评论

表情
还能输入210个字