一种基于负载预测的弹性伸缩方法及系统与流程

文档序号:14156730阅读:289来源:国知局

本发明涉及云计算领域,尤其涉及一种基于负载预测的弹性伸缩方法及系统。



背景技术:

云计算(cloudcomputing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助;均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据,解决大量并发访问服务问题。弹性伸缩服务则是是根据用户的业务需求和策略,自动调整其弹性计算资源的管理服务;其能够在业务负载增长时自动增加云服务器实例,保证业务的平稳健康运行;并在业务负载下降时自动减少云服务器实例,节省相应计算资源。

目前的弹性伸缩方案一般都是通过监控伸缩组中的云服务器实例的负载,如cpu、内存、io等指标的应用负载数据,如果总应用负载数据高于上限阀值,则触发弹性扩张规则,向伸缩组添加云服务器实例;如果总应用负载数据低于下限阀值,则触发弹性收缩规则,从伸缩组减少云服务器实例资源。但是这种方式一方面依赖于监控系统的实时有效性,对业务负载波动响应不够及时;另一方面要手机伸缩组所有云服务器实例的负载数据,当伸缩组规模加大时,弹性服务的可用性降低。



技术实现要素:

针对现有技术的不足,本发明的目的旨在于提供一种基于负载预测的弹性伸缩方法及系统,其能及时有效地提供弹性服务,实现资源的按需提供,并能够更加适应大规模集群的应用场景。

为实现上述目的,本发明提供了一种基于负载预测的弹性伸缩方法,

根据预设历史时间范围内的应用负载数据以及第一预设规则确定当前的服务请求数据;

当所述当前的服务请求数据满足预设的伸缩要求时,生成相应的伸缩规则以触发伸缩活动请求;

根据所述伸缩活动请求创建一伸缩活动;

执行所述伸缩活动以实现伸缩组的云服务器实例的添加与删除。

作为优选的,所述伸缩规则为如下公式,

为自适应递增因子;

为自适应递减因子;

其中,req_numm为所述当前的服务请求数据;k为当前的伸缩组中云服务器实例数,k′为执行伸缩活动后的伸缩组中的云服务器实例数,(k-1)c为k-1台云服务器实例的服务能力,δc为伸缩组的处理能力增量。

作为优选的,所述根据所述伸缩活动请求创建一伸缩活动包括,

根据所述伸缩活动请求确定一对应的伸缩组;

根据所述伸缩组的配置信息确定所述伸缩组对应的云服务器实例的配置参数;

根据所述伸缩规则确定需要添加或删除的云服务器实例的数量。

作为优选的,所述执行所述伸缩活动以实现伸缩组的云服务器实例的添加与删除包括,

根据所述云服务器实例的配置参数确定一云服务器实例;

在所述伸缩组中添加或删除所述云服务器实例。

作为优选的,所述弹性伸缩方法还包括,

从所述伸缩活动完成开始计时以得到一完成时间;

判断所述完成时间是否达到预设的冷却时间;

若所述完成时间达到预设的冷却时间,执行所述根据预设历史时间范围内的应用负载数据以及第一预设规则确定当前的服务请求数据。

本发明还提供一种系统,包括,

存储器,用于存储程序指令;

处理器,用于运行所述程序指令,以执行以下步骤,

根据预设历史时间范围内的应用负载数据以及第一预设规则确定当前的服务请求数据;

当所述当前的服务请求数据满足预设的伸缩要求时,生成相应的伸缩规则以触发伸缩活动请求;

根据所述伸缩活动请求创建一伸缩活动;

执行所述伸缩活动以实现伸缩组的云服务器实例的添加与删除。

作为优选的,所述伸缩规则为如下公式,

为自适应递增因子;

为自适应递减因子;

其中,req_numm为所述当前的服务请求数据;k为当前的伸缩组中云服务器实例数,k′为执行伸缩活动后的伸缩组中的云服务器实例数,(k-1)c为k-1台云服务器实例的服务能力,δc为伸缩组的处理能力增量。

作为优选的,所述处理器执行所述根据所述伸缩活动请求创建一伸缩活动包括,

根据所述伸缩活动请求确定一对应的伸缩组;

根据所述伸缩组的配置信息确定所述伸缩组对应的云服务器实例的配置参数;

根据所述伸缩规则确定需要添加或删除的云服务器实例的数量。

作为优选的,所述处理器执行所述伸缩活动以实现伸缩组的云服务器实例的添加与删除包括,

根据所述云服务器实例的配置参数确定一云服务器实例;

在所述伸缩组中添加或删除所述云服务器实例。

作为优选的,所述处理器还用于执行,

从所述伸缩活动完成开始计时以得到一完成时间;

判断所述完成时间是否达到预设的冷却时间;

若所述完成时间达到预设的冷却时间,所述处理器执行所述根据预设历史时间范围内的应用负载数据以及第一预设规则确定当前的服务请求数据。

本发明的有益效果如下:

1.能够基于云服务器的应用负载变化,预测当前的应用负载数据,从而有效克服实时分析所产生的服务时延,对应用负载波动响应更加及时有效;

2.不依赖伸缩组所有的云服务器实例监控数据,更加适应大规模群集的应用场景;

3.基于应用负载弹性伸缩,可以避免非应用负载导致非必要性资源消耗,真正意义上实现资源的按需提供;

4.通过应用负载的预测,可以为用户提供更加智能化的弹性服务。

附图说明

图1为本发明一种基于负载预测的弹性伸缩方法的流程图;

图2为本发明中步骤s103的子步骤流程图;

图3为本发明中步骤s104的子步骤流程图;

图4为本发明一种系统的结构示意图。

具体实施方式

下面将结合附图以及具体实施方式,对本发明做进一步描述:

请参见图1,本发明涉及一种基于负载预测的弹性伸缩方法,其较佳实施方式包括如下步骤,开始

步骤s101,根据预设历史时间范围内的应用负载数据以及第一预设规则确定当前的服务请求数据。

一般情况下,可以通过系统的负载均衡器采集伸缩组的云服务器实例的流量数据,将采集到的流量数据进行分析以得到应用负载数据以进行存储,基于上述分析的历史数据,即在预设历史时间范围内的应用负载数据,并采用第一预设规则确定系统的服务请求数。例如,本发明中的第一预设规则可以是通过采用lms算法来获取服务请求数,lms算法作为进一步精化权值的算法,全名最小均方法(leastmeansquares),该算法可被看做对可能的权值空间进行随记梯度下降,使误差平方和e最小化。

其中,伸缩组是具有相同应用场景的云服务器实例的集合。伸缩组定义了组内云服务器实例数的最大值、最小值以及相关的负载均衡实例和数据库实例;

步骤s102,当所述当前的服务请求数据满足预设的伸缩要求时,生成相应的伸缩规则以触发伸缩活动请求。

其中,伸缩规则是指定义伸缩活动中添加还是删除云服务器实例,以及添加或删除云服务器的数量。伸缩活动则是完成弹性伸缩过程的重要步骤,根据伸缩配置信息通过调用云平台接口,完成云服务器实例的创建配置等一系列操作。伸缩配置则定义了用于弹性伸缩的云服务器实例的配置信息。

具体的,作为优选的,所述伸缩规则为如下公式,

为自适应递增因子;

为自适应递减因子;

其中,req_numm为所述当前的服务请求数据;k为当前的伸缩组中云服务器实例数,k′为执行伸缩活动后的伸缩组中的云服务器实例数,(k-1)c为k-1台云服务器实例的服务能力,δc为伸缩组的处理能力增量。

例如,具体的,可以采用lms算来预测系统的m时刻的服务请求数据req_numm,将服务请求数据req_numm与k-1台云服务器实例的服务能力(k-1)c进行比较,并引入一个伸缩组的处理能力增量δc。把伸缩组的总体处理能力分为3个判定区间,由低到高分别是(0,(k-1)c)、[(k-1)c,(k-1)c+δc)及[(k-1)c+δc,+∞),在这3个判定区间里分别对应减小、维持、增加伸缩组规模。考虑到负载请求的多样性以及丰富的业务场景,采用上述的云服务器实例的弹性伸缩规则。

故基于历史的应用负载数据,预测系统当前的应用负载的服务请求数据,可以有效克服实时分析所产生的服务时延,同时采用自适应递增因子和自适应递减因子,可以有效应对系统的应用负载的多样性波动。

另外,本发明还可以实时监控伸缩组内云服务器,并根据用户配置的报警规则,对非应用负载所产生的资源损耗进行报警,但不触发执行伸缩活动请求。当然,本发明还可以定期检查伸缩组内云服务器实例的健康情况,如发现有不监控的云服务器实例(如云服务器非运行状态)则会触发执行伸缩活动请求,更换该实例。

步骤s103,根据所述伸缩活动请求创建一伸缩活动。其中伸缩活动请求包括伸缩规则、伸缩组等信息,即可以根据这些信息创建一伸缩活动。

如图2所示,作为优选的,所述步骤s103包括,

步骤s201,根据所述伸缩活动请求确定一对应的伸缩组。其中,分析伸缩活动请求的信息,确定伸缩活动请求所对应的伸缩组。

步骤s202,根据所述伸缩组的配置信息确定所述伸缩组对应的云服务器实例的配置参数。其中,根据伸缩组的配置信息,查询对应的伸缩配置信息,即获得需要创建云服务器实例的伸缩组对应的云服务器实例的配置信息(如cpu,内存,带宽,镜像等);

步骤s203,根据所述伸缩规则确定需要添加或删除的云服务器实例的数量。具体的,分析伸缩活动请求中的伸缩规则信息,确定伸缩活动需要添加或删除的云服务器数量。一般情况下,可以根据需要添加或删除云服务器实例的数量、云服务器实例的配置信息创建伸缩活动。

步骤s104,执行所述伸缩活动以实现伸缩组的云服务器实例的添加与删除。

具体的,如图3所示,作为优选的,所述步骤s104包括,

步骤s301,根据所述云服务器实例的配置参数确定一云服务器实例。

步骤s302,在所述伸缩组中添加或删除所述云服务器实例。

作为进一步优选的,所述弹性伸缩方法还包括,

步骤s105,从所述伸缩活动完成开始计时以得到一完成时间。

步骤s106,判断所述完成时间是否达到预设的冷却时间;

若所述完成时间达到预设的冷却时间,执行所述根据预设历史时间范围内的应用负载数据以及第一预设规则确定当前的服务请求数据。预设的冷却时间是指,在同一伸缩组内,一个伸缩活动执行完成后的一段锁定时间。

具体的,一个伸缩活动完成后,应启动伸缩组的冷却功能,即完成时间达到预设的冷却时间后,该伸缩组才能接收新的执行伸缩活动请求,从而保证该弹性伸缩方法的正常实施。

总的来说,本发明能够基于云服务器的应用负载变化,预测当前的应用负载数据,从而有效克服实时分析所产生的服务时延,对应用负载波动响应更加及时有效;不依赖伸缩组所有的云服务器实例监控数据,更加适应大规模群集的应用场景;基于应用负载弹性伸缩,可以避免非应用负载导致非必要性资源消耗,真正意义上实现资源的按需提供;通过应用负载的预测,可以为用户提供更加智能化的弹性服务。

如图4所示,本发明还涉及一种系统,该系统100包括,

存储器101,用于存储程序指令;

处理器102,用于运行所述程序指令,以执行以下步骤,

根据预设历史时间范围内的应用负载数据以及第一预设规则确定当前的服务请求数据;当所述当前的服务请求数据满足预设的伸缩要求时,生成相应的伸缩规则以触发伸缩活动请求;根据所述伸缩活动请求创建一伸缩活动;执行所述伸缩活动以实现伸缩组的云服务器实例的添加与删除。

作为优选的,所述伸缩规则为如下公式,

为自适应递增因子;

为自适应递减因子;

其中,req_numm为所述当前的服务请求数据;k为当前的伸缩组中云服务器实例数,k′为执行伸缩活动后的伸缩组中的云服务器实例数,(k-1)c为k-1台云服务器实例的服务能力,δc为伸缩组的处理能力增量。

作为优选的,所述处理器具体还用于执行根据所述伸缩活动请求确定一对应的伸缩组;根据所述伸缩组的配置信息确定所述伸缩组对应的云服务器实例的配置参数;根据所述伸缩规则确定需要添加或删除的云服务器实例的数量。

作为优选的,所述处理器具体还用于执行根据所述云服务器实例的配置参数确定一云服务器实例;在所述伸缩组中添加或删除所述云服务器实例。

另外,作为进一步优选的,所述处理器还用于执行从所述伸缩活动完成开始计时以得到一完成时间。

当所述完成时间达到预设的冷却时间后,所述处理器可以返回执行所述根据预设历史时间范围内的应用负载数据以及第一预设规则确定当前的服务请求数据。

对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1