内容介绍:
一、初识RDS通用云盘
二、RDS通用云盘核心能力介绍
三、方案及应用案例、产品选型介绍
四、线上活动与权益
本次课程主题是体验云数据库RDS通用云盘核心能力。由杨浩磊(木信)分享。
本次课程按照以下4个部分行展开,第一部分介绍RDS通用云盘。第二部分针对RDS通用云盘的核心能力进行详细介绍。第三部分介绍本次实践用到的方案和产品选型。第四部分介绍线上活动和权益。
一、初识RDS通用云盘
介绍RDS通用云盘之前首先认识RDS。RDS是一款低成本、易操作和轻运维的云数据库RDS。RDS提供安全、稳定、可靠、高性价比和可弹性伸缩的在线数据库服务,包含四款引擎,MySQL、 SQL server、 PostgreSQL和Maria DB。并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,解决数据库运维的烦恼。
接下来介绍RDS通用云盘,RDS通用云盘利用多级存储介质共同实现高性能和低成本功能,PPT中间上面是计算层ECS,下边是通用云盘。它从左到右分三层,分别是缓存层、数据层和冷存层,三层分别采用不同的存储介质,共同达到更高的性能和更低的成本。
然后介绍多级存储介质,从左到右分别是高速缓存盘、数据盘和冷存盘,从性能、弹性和可靠性三个维度来对比。性能方面,高速缓存盘有很高的IOPS和很低的IO延时。
数据盘具有适中的吞吐和IO延时,能够使客户正常使用。冷存盘要做网络带宽,它的IO性能相对较弱。弹性方面,弹性主要对比的是存储空间,高速缓存盘的存储空间在64GB和8TB之间,数据盘存储空间范围更大,有10GB到64TB,冷存盘在OSS上,是对象存储,存储空间相对来说是无上限的。
可靠性方面,高速缓存盘用于缓存,所以它的可靠性是单副本并不持久化,不能够持久化的保障。ESSD有多副本,具有AZ级别的容灾,具有比较高的数据保障,冷存盘具有RegIOn级别的容灾,保障性更强。
对比三个特性,总结来看缓存盘有更高的性能,但可靠性相对较弱,而越往下越冷存。性能相对较弱,但容量和可靠性相对较强,缓存盘提供IO加速的能力。客户在用通用云盘时,其实只要看到IO加速开关,并不需要关心用多大的缓存盘。
IO加速的功能对客户是免费的。数据盘结合存储能力,提供IO突发的功能,可以让IO的带宽和云盘的大小进行解耦,能够应对客户突发的流量。成本则根据客户具体突发的使用量进行计费。对于冷存盘,利用低成本的性能提供数据归档,将不常访问的表的数据从ESSD归档到OSS中,用更低的存储介质换取更低的存储成本。
RDS通用云盘的存储架构,左侧是RDS整体架构,存储层和计算层是分离的,上层是计算层,下层是存储层,存储层是融合三种存储介质的通用云盘。
这三种存储介质分别是缓存,数据和冷存。高速缓存盘提供IO加速的能力。IO加速通过两方面,一方面扩充Buffer Pool,将Buffer Pool里的配置放到Buffer Pool Extension里,进一步提升查询效率。另一方面,将ESSD数据盘里的临时表文件放到高速缓存盘。能够更进一步的加快复杂查询。数据盘与之前的RDS保持一致。冷存盘用OSS对象存储,主要将数据盘里的ibd数据文件通过DDL转移到OSS中,转移之后不影响正常访问,可以提供只读查询。
总的来说,RDS通用云盘利用多级存储架构可以为整体的RDS提供大幅的读写性能的提升,将数据存储到OSS上之后,存储成本大幅度的下降。
二、RDS通用云盘核心能力介绍
RDS通用云盘的三项核心能力,第一项是缓存层的IO加速。缓存层的IO加速是通过两个能力来提升RDS的查询速度,第二项是Buffer Pool Extension,第三项是将临时表空间从ESSD放到高性能的缓存盘中,架构图主要是Buffer Pool Extension的工作机制,如果没有Buffer Pool Extension,当一个查询来向数据库进行查询时,首先看BP里面有没有命中,如果没有命中就直接去ESSD中查询。
有Buffer Pool Extension之后,如果BP没有命中,会去BPE里查询。BPE没有命中之后才会去ESSD中查询,相当于加一层缓存,扩充内存的数据,提高查询的速度。因为中间加层缓存,相对来说能够提高一定的稳定性,具体是减少云盘的IO吞吐抖动,对RDS造成的一些影响。右边是在8核16G的RDS上进行的性能测试的数据。
总结IO加速的性能优势,第一个提高读写性能,缩短SQL查询的执行耗时。第二条提高实例稳定性,降低云盘IO抖动对数据库的影响,因为中间加一层缓存盘来作为缓存。第三个是IO加速本身不需要额外支出费用。客户在使用RDS通用云盘时,只需打开IO加速的开关,并不需要关心使用多大的缓存盘。阿里云会根据实际的规格来分配对应的缓存盘大小,本身这块盘是不需要支付额外的费用。
介绍IO突发,IO突发释放的是底层的存储能力。首先介绍IO突发的背景,在RDS之前各种的存储介质里面是PL1到PL3,IO性能都是跟云盘容量绑定,当客户的IO流量激增时,想要更高的IO带宽或者IOPS时,就需要提升云盘的容量或者提升云盘的PL等级。使用RDS通用云盘后,应对激增的IO流量时,只要打开IO突发。IO突发有两个功能优势。一个是把IO的性能和云盘存储进行解耦。另一个是提供IO性能突发能力能够应对实际IO流量的激增,对云盘的IO上限进行弹性的提升。具体的费用根据实际的突发使用量收费,不需要额外为存储容量本身付费。
介绍IO突发的说明,表格里面和官网上描述相同,IO突发只是对RDS存储层的IO进行释放,但整个RDS的IOPS受ECS和云盘两块的影响,也受到计算层的影响。如果真正要释放突发能力,需要配合较高的RDS规格才能发挥优势。也就是为什么打开突发之后,IOPS上限值和吞吐的上限值都有实际规格,有最大的IO上限值。没有打开IO突发时,有提升的IOPS,是RDS通用云盘对比于ESSD PL的差异性,RDS通用云盘的基准的IOPS已经比ESSD PL高出一部分。具体高出多少可以参考官方文档。
介绍冷存层的数据归档,冷存层的据归档就是利用阿里SQL自研的OSS存储技术,将数据从ESSD中通过DDL转移到OSS中。并且它是完全兼容InnoDB存储引擎,归档表允许select正常查询,归档表的查询可以通过IO加速进行查询加速,因为OSS的查询性能相对较弱,没有ESSD盘高,可以通过前加内存缓存盘来提升它的查询加速。
下图是对于归档表的查询,在没有开启IO加速和开启IO加速之后,归档表的查询速度有明显的提升,图片左侧是归档表的整体架构,上层是内存,下层是通用盘,将ibd文件通过DDL之后切分出metadata和头文件,metadata和头文件存放在ESSD上,而大部分将会切块之后放到OSS中。相当于数据归档实验的架构图。
数据归档之后会把数据存放成两部分,一部分在ESSD里,一部分在OSS中。怎么对这两部分数据做备份拍照是比较大的挑战。这里采用自研的GrailFS的备份系统,将常规数据和归档数据完成一致性的快照。
RDS内核提供缩表的语义,在备份期间禁止OSS DDL不影响正常的常规表的DDL。此外OSS备份时会有备份文件膨胀。这里加一些自动回收的机制防止备份文件块进行膨胀,左侧是归档备份的整体流程图,当备份请求过来之后,备份系统会向引擎下发一个缩表的动作,然后创建一个快照,也就是将metadata拷贝一份,当metadata拷贝后就会解锁OSS DDL。
解锁后,引擎已经可以正常的去进行OSS 的DDL,但备份还没有完成,因为将metadata获取完,需要进一步的拷贝OSS里面的block,当OSS里的block拷贝完成后,备份完成。图中的3和4对应的是两次不同的备份,3代表的是初次备份时会进行一次全拷贝,4代表增量的备份时,只拷贝delta的数据。
介绍数据归档的使用情况,对于RDS MySQL和RDS PostgreSQL有不同的DDL来执行,执行后这些表都会归档到OSS。表可以支持select查询。对于SQL server和Maria DB。SQL server支持的数据归档可以参考官方文档,而Maria DB暂时不支持数据归档功能。
三、方案及应用案例、产品选型介绍
本次实践是体验RDS通用云盘里IO加速、IO突发和数据归档三项功能。这三项功能可以分成两块,一块是体验性能,一块是体验它的成本,首先主要用到一个RDS MySQL通用版实例和ECS实例,用ECS来对RDS进行压测,体验IO加速和IO突发这两个功能带来的性能提升,DMS执行DDL将数据归档到OSS里,来体验数据归档功能带来的成本优势。
选型是选用一个RDS MySQL,以RDS MySQL来进行实践,选用RDS MySQL8.0高可用系列,8核16G,然后用200g的通用云盘,另外用ECS,8核32G,用40G的系统盘来作为压测机。
介绍RDS通用云盘的客户实战,汇联遇到业务高峰期后,数据库查询压力激增。然后选择RDS通用云盘,打开IO突发之后性能有显著的提升,而且成本也获得比较大的收益。
四、线上活动与权益
首先是数据库上云,超值礼包抢先领,可以访问图中链接,右边可以免费试用RDS MySQL高可用版,8核4G,50G的存储,可以在免费试用频道搜索云数据库RDS MySQL。
以上是本次分享的全部内容。