一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种云原生MySQL集群自主扩容缩容的方法与流程

2022-03-09 00:06:30 来源:中国专利 TAG:
一种云原生mysql集群自主扩容缩容的方法
技术领域
1.本发明涉及数据库控制技术领域,涉及一种数据库的控制方法,具体而言是一种云原生mysql集群自主扩容缩容的方法。


背景技术:

2.mysql数据库做为当前最流行的开源关系型数据库之一,其稳定、易用、高性能的特性已经得到广泛认同。但由于其开源属性,以及非常灵活的使用方式,用户在其数据库架构及使用中很难保证环境统一,版本一致,不能做到一键部署,扩容缩容经常需要耗费用户大量精力和时间。kubernetes做为当前主流的基于容器技术的分布式架构方案,在无状态应用部署、扩容等方便的编排已经很成熟,但是对数据库这种有状态的应用支持还比较有限。
3.目前kubernetes原有的statefulset支持有状态应用,通过一定配置优化可以实现mysql复制,但是配置复杂,扩展性差。当用户创建完成mysql集群,使集群架构固定下来之后,如果应用对mysql集群请求突然变大,现有mysql集群则会存在性能瓶颈,此时则需要手动调整资源配置或者扩容,及时性较低,并且可能由于临时扩容加剧集群性能瓶颈。


技术实现要素:

4.针对上述问题,本发明的目的是提供一种云原生mysql集群自主扩容缩容的方法,以解决数据库集群在扩容缩容时,需要用户手动调整资源配置、手动调整数据库参数配置,耗费大量时间的技术问题。
5.本发明的目的通过以下技术方案实现:
6.一种云原生mysql集群自主扩容缩容的方法,其特征在于,包括以下步骤:
7.1)采集容器资源的多个资源指标和数据库的多个性能指标;为每个所述待测资源指标设置第一触发阈值和第二触发阈值,其中,所述第一触发阈值和所述第二触发阈值都是所述待测资源指标的临界范围阈值,所述第一触发阈值大于所述第二触发阈值;基于所述第一触发阈值和第二触发阈值,配置资源阈值范围;为每个所述待测性能指标设置第三触发阈值和第四触发阈值,其中,所述第三触发阈值和所述第四触发阈值都是所述待测性能指标的临界范围阈值,所述第三触发阈值大于所述第四触发阈值;基于所述第三触发阈值和第四触发阈值,配置性能阈值范围;
8.2)若所述资源指标超出预先配置的资源阈值范围,则基于资源指标修改容器资源的资源限制,并调整数据库的性能参数;
9.3)若所述性能指标超出预先配置的性能阈值范围,则基于性能指标自动修改容器资源的资源限制或者自动调整数据库集群的节点数量。
10.进一步,基于资源指标修改容器资源的资源限制,并调整数据库的性能参数的步骤,包括:基于资源指标和预设资源变更比例,修改容器资源的资源限制。
11.进一步,基于性能指标自动修改容器资源的资源限制或者自动调整数据库集群的
节点数量,包括:判断剩余节点资源是否满足扩容要求;如果剩余节点资源不满足扩容要求,则触发独占模式,其中,在所述独占模式下,使用容器资源的目标业务实例单独占用当前所有可用容器资源;将其它业务实例迁移至其它数据库集群中或者删除所述其它业务实例。
12.获取缩容节点;采用所述缩容节点执行集群缩容;更新中间件集群、数据库服务以及高可用组件的配置;更新管理库中集群信息,以完成数据库缩容操作。
13.本发明采用采集容器资源的多个资源指标和数据库的多个性能指标,若资源指标超出预先配置的资源阈值范围,则基于资源指标修改容器资源的资源限制,并调整数据库的性能参数,若性能指标超出预先配置的性能阈值范围,则基于性能指标自动修改容器资源的资源限制或者自动调整数据库集群的节点数量。
14.本发明中,当数据库集群负载(对应容器资源指标、性能指标)变化超出阈值时,不需要用户干预,根据集群类型、负载情况对比配置的阈值、管理资源,自主实现数据库集群扩容或缩容,不仅可以应对数据库集群负载需求的变化,而且能提高数据库集群扩容缩容的效率,从而解决相关技术中数据库集群需要扩容缩容时,需要用户手动调整资源配置、手动调整数据库参数配置,耗费用户大量精力和时间的技术问题。
附图说明
15.图1是本发明的流程图。
具体实施方式
16.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
17.本发明可以应用于数据库容器化集群服务,对在kubernetes平台下管理的mysql容器化集群,提供一种兼容多个版本mysql镜像,多种架构(单实例、主从复制、mgr单主、mgr多主)的基于不同维度负载的自主扩容缩容方法。
18.本发明中的扩容缩容,不仅包括容器资源(例如,cpu、内存、磁盘、io)的增加(即扩容)与限制(即缩容),还包括mysql集群节点数的增加减少、数据库性能指标(例如,连接数、并发线程数、tps、qps)以及自定义资源的增加和减少。
19.本发明下述实施例,在mysql集群负载变化超出阈值时,不需要用户干预,根据集群类型及负载情况对比配置的阈值,并根据kubernates管理的资源,自主实现集群扩容或缩容,能及时应对mysql集群负载需求的变化,为寻求mysql集群负载需求和更低资源使用需求的平衡。依赖提供更精准的节点控制调度,控制器选择mysql集群不同维度的扩容缩容策略,做到资源使用和服务响应的平衡。
20.下面结合实施例来说明本发明。
21.实施例
22.图1是本发明的总体流程图,该方法包括如下步骤:
23.1)首先,采集容器资源的多个资源指标和数据库的多个性能指标。
24.2)若资源指标超出预先配置的资源阈值范围,则基于资源指标修改容器资源的资源限制,并调整数据库的性能参数。
25.即在容器源的资源指标超出预先配置的资源阈值范围时,基于资源指标调整容器资源限制,并自动调整数据库对应参数。
26.3)若性能指标超出预先配置的性能阈值范围,则基于性能指标自动修改容器资源的资源限制或者自动调整数据库集群的节点数量。
27.即在数据库的性能指标超出预先配置的性能阈值范围,则基于性能指标自动调整容器的资源限制或者自动对数据库集群进行伸缩处理(体现为自动调整数据库集群的节点数量)。
28.通过上述步骤,可以先采集容器资源的多个资源指标和数据库的多个性能指标,若资源指标超出预先配置的资源阈值范围,则基于资源指标修改容器资源的资源限制,并调整数据库的性能参数,若性能指标超出预先配置的性能阈值范围,则基于性能指标自动修改容器资源的资源限制或者自动调整数据库集群的节点数量。在该实施例中,当数据库集群负载(对应容器资源指标、性能指标)变化超出阈值时,不需要用户干预,根据集群类型、负载情况对比配置的阈值、管理资源,自主实现集群扩容或缩容,不仅可以应对数据库集群负载需求的变化,而且能提高数据库集群扩容缩容的效率,从而解决相关技术中数据库集群需要扩容缩容时,需要用户手动调整资源配置、手动调整数据库参数配置,耗费用户大量精力和时间的技术问题。
29.在实现数据库容器集群自主扩容缩容时,需要配置扩容缩容的判定阈值。
30.在采集容器资源的多个资源指标和数据库的多个性能指标之前,控制方法包括:确定容器资源的多个待测资源指标以及多个数据库的多个待测性能指标;为每个待测资源指标设置第一触发阈值和第二触发阈值,其中,第一触发阈值和第二触发阈值都是待测资源指标的临界范围阈值,第一触发阈值大于第二触发阈值;基于第一触发阈值和第二触发阈值,配置资源阈值范围;为每个待测性能指标设置第三触发阈值和第四触发阈值,其中,第三触发阈值和第四触发阈值都是待测性能指标的临界范围阈值,第三触发阈值大于第四触发阈值;基于第三触发阈值和第四触发阈值,配置性能阈值范围。
31.对mysql集群配置扩容缩容阈值,可以在部署mysql集群时配置,也支持在集群部署完成后开启,配置扩容缩容阈值。目前支持基于容器资源指标(cpu、内存、磁盘、io),数据库性能指标(连接数、并发线程数、tps、qps)以及自定义资源的阈值。
32.容器资源的多个待测资源指标包括但不限于:cpu、内存、磁盘、io;数据库的多个待测性能指标包括但不限于:连接数、并发线程数、tps、qps。
33.为每个待测资源指标设置的第一触发阈值和第二触发阈值,其中,第一触发阈值可以是指资源指标的扩容阈值(即上限阈值),第二触发阈值可以为资源指标的缩容阈值(即下限阈值);为每个待测性能指标设置的第三触发阈值和第四触发阈值,其中,第三触发阈值可以是指待测性能指标的扩容阈值(即上限阈值),第四触发阈值可以为待测性能指标的缩容阈值(即下限阈值)。
34.在设置上述容器资源指标、数据库性能指标、自定义资源阈值之后,需要设置扩容缩容动作与更变比例,对于容器资源变化触发阈值,默认修改资源限制,资源变更比例默认
设置为预设比例参数(例如,默认设置资源变更比例为10%),可以设置独占模式。对于数据库资源变化触发阈值,默认优先修改资源限制,其次调整数据库集群架构,例如,1主2从扩容为1主3从等。
35.采集容器资源的多个资源指标和数据库的多个性能指标。
36.本实施例可以依赖container-exporter采集容器资源的各个资源指标,依赖mysqld-exporter采集mysql数据库的各个性能指标。可选的,本实施例还可以使用operator listener组件从采集到的数据中获取已配置的阈值指标数据(部分指标),对比当前mysql集群资源配置,校验是否触发阈值。
37.若资源指标超出预先配置的资源阈值范围,则基于资源指标修改容器资源的资源限制,并调整数据库的性能参数。
38.基于资源指标修改容器资源的资源限制,并调整数据库的性能参数的步骤,包括:基于资源指标和预设资源变更比例,修改容器资源的资源限制。
39.对于容器资源指标变化触发阈值,mysqld-operator默认会参考资源变更比例取整修改资源限制,如果底层物理机node剩余资源不足以扩容时,则可能会触发独占模式,将其他业务实例进行迁移或者删除(根据实例配置)来完成扩容。
40.若性能指标超出预先配置的性能阈值范围,则基于性能指标自动修改容器资源的资源限制或者自动调整数据库集群的节点数量。包括:判断剩余节点资源是否满足扩容要求;如果剩余节点资源不满足扩容要求,则触发独占模式,其中,在独占模式下,使用容器资源的目标业务实例单独占用当前所有可用容器资源;将其它业务实例迁移至其它数据库集群中或者删除其它业务实例。
41.对于数据库性能指标变化触发阈值,通过mysqld-operator计算扩容方式,优先修改容器资源限制。如果需要调整数据库集群,可计算出调整方式和变更的节点数量,单实例支持调整为主从和mgr,主从和mgr支持调整其节点数目。例如在主从复制的集群里,如果qps触发阈值需要扩容,此时可能需要增加不同数目的从节点完成扩容。
42.对于数据库性能指标变化需要进行mysql集群扩容缩容时,mysqld-operator依据管理的node上实例数量及node空余资源计算出缩容节点node。kube-scheduler根据算法选择用来扩容的节点node,如果kubernates当前管理的节点node不足,或者node空余资源不足,则扩容失败。
43.通过上述实施例,可以对kubernetes平台下管理的mysql容器化集群,提供一种兼容多个版本mysql镜像,多种架构(单实例、主从复制、mgr单主、mgr多主)的基于不同维度负载的自主扩容缩容方法,自主实现集群扩容或缩容,能及时应对mysql集群负载需求的变化。
44.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献