一种有效降低容器化关系型数据库I/O消耗的方法技术

技术编号:21453513 阅读:49 留言:0更新日期:2019-06-26 04:39
本发明专利技术公开了一种有效降低容器化关系型数据库I/O消耗的方法,本发明专利技术方法通过在RDS实例层和存储层之间通过在kubernetes和Docker平台搭建基于memcached的高可用分布式缓存架构;RDS实例层需要写入到存储层的数据先写入所述高可用分布式缓存架构持久保存,再由所述高可用分布式缓存架构刷新到存储层;并由所述高可用分布式缓存架构缓存RDS实例层中的热点数据;本发明专利技术可利用高可用分布式缓存架构阻挡了RDS实例层和存储层之间的直接交互,能有效降低RDS实例层中I/O的消耗,同时,能够降低网络I/O距离。

【技术实现步骤摘要】
一种有效降低容器化关系型数据库I/O消耗的方法
本专利技术属于容器虚拟化的性能优化
,具体涉及一种有效降低容器化关系型数据库I/O消耗的方法。
技术介绍
随着信息技术的快速发展,集群系统的规模日益庞大,如何充分高效的使用集群系统资源成为急需解决的问题。由于传统虚拟化技术存在实施难度高、更新和升级困难等问题,容器化成为了传统虚拟化技术的替代,具有轻量级,共享资源及快速扩展等优点。容器可以解决许多分布式应用挑战,例如便携性和性能开销。不过使用容器作为大规模系统的基础技术时其资源管理领域面临许多挑战。Kubernetes是一个在平台即服务(PaaS)云中实现基于容器部署的系统,是业界广泛认可的docker集群解决方案,它可以部署云原生应用程序,是一个由(微)服务组成的分布式和水平可扩展系统,具有弹性和弹性支持等功能。云行业对kubernetes和Docker的组合接受程度超乎想象,并逐渐将其引入RDS(RelationalDatabaseService,关系型数据库服务)领域,但数据库作为一种有状态的应用,使用容器部署时,必须考虑数据持久化问题,就出现了本地存储和远程存储(分离架构的原因):Kubernetes提供的volume类型中的emptyDir或hostPath(本地存储)方式,会导致容器在重启或漂移后无法保留之前的数据,存储容量受限于单个node节点的容量,以及RDS实例部署节点选择受限于底层存储介质(SSD/HDD);而Kubernetes提供的volume类型中的云存储以及分布式存储方式都可以实现数据的持久存储,这种将数据持久化到远程存储端的方式便利用了计算与存储分离架构。计算与存储分离最大的优势就是:利用volume将有状态的数据挂载到存储层,RDS实例部署时,不需要像local方式去感知Node节点的存储介质,只需要调度到满足计算资源(requests、limits)要求的Node节点,数据库实例启动时,只需在存储层挂载匹配的volume即可,显著的提高了数据库容器实例的部署密度和计算资源的利用率,同时架构也清晰,且存储容量扩展方便。这种分离架构与本地存储(local)方式相比,需要进行远程的数据传输,单路I/O多了网络开销,较local方式请求响应时间增加,对数据库这种延时敏感型应用,网络延时会极大影响数据库的性能,导致业务系统的服务质量低下,若在高密度部署的场景,可能导致计算资源和存储资源利用不充分。互联网的飞速发展以及业务的不断扩张,使得数据量急剧膨胀,单个微服务通常对应单独的数据库,这样一个大型应用程序通常由多个库来分担庞大的数据量,同时可能会有多个备份实例,导致数据库实例数量庞大,此时计算与存储分离架构面临多个实例需要将数据持久保存到存储层,造成网络I/O开销,尤其在RDS实例层(平台中所有的RDS实例)高度并发访问远端存储系统场景,网络带宽成为性能瓶颈,网络流量消耗剧增。同时,在存储层引入分布式存储时,分布式存储系统会把计算机系统的两大瓶颈点(磁盘I/O和网络I/O)引入业务系统,进一步加剧分离架构的I/O开销。现有的优化计算与存储分离架构性能的方法:(1)针对RDS实例层进行的优化:数据库实例可以通过优化事务commit时写Redo的速度来提高I/O吞吐,以及数据库读写分离,DB拆分等;(2)针对存储层进行优化:存储层的多副本(replicas)写入设计中采用副本达到多数即返回策略,硬件升级,或在存储层采用流量控制设计。这些方法不仅成本高昂,而且对于存储分离架构的性能很难达到数量级上的提升,无法满足要求。
技术实现思路
针对上述现有的优化计算与存储分离架构性能中成本高、性能提升不明显的问题,本专利技术于提出一种有效降低容器化关系型数据库I/O消耗的方法,该方法通过在RDS实例层和存储层之间加入高可用分布式缓存来实现保存数据采用计算与存储分离架构后造成的I/O开销,具体技术方案如下:一种有效降低容器化关系型数据库I/O消耗的方法,所方法包括:S1、在RDS实例层和存储层之间通过在kubernetes和Docker平台搭建基于memcached的高可用分布式缓存架构:S11、在client端memcached存储数据的Key值前加上namespace_name前缀;S12、制定所述高可用分布式缓存架构中的libevent、memcached、repcached、magent组件相关组件的容器镜像:libevent+magent和libevent+memcache+repcached;S13、使用StorageClass在存储层动态创建PersistentVolume,并基于存储层协议在所述高可用分布式缓存架构中创建一个共享存储进行动态分配卷,标明存储层创建好的共享路径以及env中指定provisioner_name;S14、基于所述容器镜像:libevent+magent和libevent+memcache+repcached部署memcachedmaster容器、memcachedslave容器和memcachedmagent容器,将所述memcachedmaster容器和memcachedslave容器设置在不同node节点上;S15、在所述高可用分布式缓存架构中定义一个svc.yaml文件,并在所述svc.yaml文件中设置与每一个memcachedpod对应的PersistentVolume;S2、RDS实例层需要写入到存储层的数据先写入所述高可用分布式缓存架构持久保存,再由所述高可用分布式缓存架构刷新到存储层;S3、由所述高可用分布式缓存架构缓存RDS实例层中的热点数据。进一步的,所述RDS实例层、高可用分布式缓存架构和存储层之间的数据访问模式为串联模式;且所述RDS实例层在所述高可用分布式缓存架构上直接进行读写操作。进一步的,所述高可用分布式架构通过所述PersistentVolume按照指定周期大小进行数据刷新。本专利技术的有效降低容器化关系型数据库I/O消耗的方法,通过在RDS实例层和存储层之间在kubernetes和Docker平台搭建基于memcached的高可用分布式缓存架构,并且将RDS实例层、高可用分布式缓存架构和存储层之间的数据交互方式设置成串联方式,能够有效降低网络I/O距离;通过高可用分布式架构持久保存RDS实例层中的数据,并由高可用分布式缓存架构将数据刷新到存储层,一次实现RDS实例层和存储层之间的数据交互,能有效降低RDS中的I/O消耗;与现有技术相比,本专利技术的有益效果为:高可用性:高可用分布式缓存架构的设计考虑了容灾问题,使用主从复制且主从不在同一节点的方式部署,可实现数据备份以及缓存实例数据同步;轻量特性:高可用分布式缓存架构使用容器封装memcache应用,实现快速分发和部署,并利用kubernetes技术部署分布式系统的方法,实现对各实例的管理简单化。附图说明图1是采用本专利技术实施例中基于kubernetes和Docker平台采用高可用分布式架构的完成架构图示意;图2是本专利技术实施例中所述RDS实例层缓存模式示意图;图3是本专利技术实施例中所述高可用分布式架构的组成结构图示意;图4是本专利技术实施例中所述RDS实例层写请求的处理流程图图示意;图本文档来自技高网
...

【技术保护点】
1.一种有效降低容器化关系型数据库I/O消耗的方法,其特征在于,所方法包括:S1、在RDS实例层和存储层之间通过在kubernetes和Docker平台搭建基于memcached的高可用分布式缓存架构:S11、在client端memcached存储数据的Key值前加上namespace_name前缀;S12、制定所述高可用分布式缓存架构中的libevent、memcached、repcached、magent组件相关组件的容器镜像:libevent+magent和libevent+memcache+repcached;S13、使用StorageClass在存储层动态创建Persistent Volume,并基于存储层协议在所述高可用分布式缓存架构中创建一个共享存储进行动态分配卷,标明存储层创建好的共享路径以及env中指定provisioner_name;S14、基于所述容器镜像:libevent+magent和libevent+memcache+repcached部署memcached master容器、memcached slave容器和memcached magent容器,将所述memcached master容器和memcached slave容器设置在不同node节点上;S15、在所述高可用分布式缓存架构中定义一个svc.yaml文件,并在所述svc.yaml文件中设置与每一个memcached pod对应的Persistent Volume;S2、RDS实例层需要写入到存储层的数据先写入所述高可用分布式缓存架构持久保存,再由所述高可用分布式缓存架构刷新到存储层;S3、由所述高可用分布式缓存架构缓存RDS实例层中的热点数据。...

【技术特征摘要】
1.一种有效降低容器化关系型数据库I/O消耗的方法,其特征在于,所方法包括:S1、在RDS实例层和存储层之间通过在kubernetes和Docker平台搭建基于memcached的高可用分布式缓存架构:S11、在client端memcached存储数据的Key值前加上namespace_name前缀;S12、制定所述高可用分布式缓存架构中的libevent、memcached、repcached、magent组件相关组件的容器镜像:libevent+magent和libevent+memcache+repcached;S13、使用StorageClass在存储层动态创建PersistentVolume,并基于存储层协议在所述高可用分布式缓存架构中创建一个共享存储进行动态分配卷,标明存储层创建好的共享路径以及env中指定provisioner_name;S14、基于所述容器镜像:libevent+magent和libevent+memcache+repcached部署memcachedmaster容器...

【专利技术属性】
技术研发人员:李鹏杨菲王汝传徐鹤李超飞樊卫北朱枫程海涛
申请(专利权)人:南京邮电大学江苏省精创电气股份有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1