首页> 中国专利> 一种基于SLA服务等级的云计算Web应用资源负载均衡算法

一种基于SLA服务等级的云计算Web应用资源负载均衡算法

摘要

本发明涉及云计算负载均衡领域,特别是一种基于SLA服务等级的云计算Web应用资源负载均衡算法。本发明首先开始一个新的数据采集周期T,然后向节点采集负载信息,以及节点上部署插件实例的负载信息;如果有服务请求R到达,那么根据服务请求R选择候选节点,即部署了执行服务请求R的插件实例的节点,否则判断采集周期结束是否结束,是则采集周期结束,否则继续等待服务请求;通过计算候选节点的负载指数,采用轮赌法选择执行服务请求的节点,将服务请求分配给该节点上插件实例执行。本发明针对云计算Web应用的特点,解决传统负载均衡算法不考虑SLA服务等级的问题;可以用于Web应用资源的负载均衡上。

著录项

  • 公开/公告号CN105407162A

    专利类型发明专利

  • 公开/公告日2016-03-16

    原文格式PDF

  • 申请/专利权人 国云科技股份有限公司;

    申请/专利号CN201510856230.2

  • 发明设计人 莫展鹏;杨松;季统凯;

    申请日2015-11-27

  • 分类号H04L29/08(20060101);

  • 代理机构广东莞信律师事务所;

  • 代理人余伦

  • 地址 523808 广东省东莞市松山湖科技产业园区松科苑14号楼

  • 入库时间 2023-12-18 14:59:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-01-01

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/08 变更前: 变更后: 申请日:20151127

    专利权人的姓名或者名称、地址的变更

  • 2018-12-25

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/08 变更前: 变更后: 申请日:20151127

    专利权人的姓名或者名称、地址的变更

  • 2018-11-06

    授权

    授权

  • 2016-04-13

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20151127

    实质审查的生效

  • 2016-03-16

    公开

    公开

说明书

技术领域

本发明涉及云计算负载均衡领域,特别是一种基于SLA服务等级的云计算 Web应用资源负载均衡算法。

背景技术

随着云计算的发展,尤其是SaaS模式的普及,云计算应用的开发模式也发 生了显著的变化。目前,插件开发者采用云服务供应商提供的API能开发出运 行在云平台上的应用;可是,应用的交付尤其是Web应用的交付已经与原有交 付模式不同,插件开发者提交的插件并不是完整的目标代码,而是构成应用的 一部分。遵循云计算按需使用的特性,云计算下的Web应用也支持负载均衡的 特性,目前云计算下Web应用负载均衡采用传统Web集群的负载均衡技术会带 来以下的问题:

1、当大型节点上部署了一个对资源服务能力需求较低的插件实例时,当插 件负载较大时,依然只消耗很小的资源服务能力,节点负载率自然较低。此时 请求依然有较大的概率分配给此节点进行执行,造成构件满载甚至崩溃。

2、当节点上部署若干资源服务能力需求较大的插件实例,以及一个资源服 务能力较小的插件实例时,即使后者处于空载状态,节点的负载率依然很高, 当请求该实例类型插件的任务请求转发时,只会有很小的概率转发至该节点, 造成资源的浪费。

发明内容

本发明解决的技术问题在于提供一种可靠性、高效的针对SLA服务等级的 云计算Web应用资源负载均衡算法,解决现有算法在云计算Web应用资源负载 均衡方面因不考虑服务等级需求而出现的效率低的问题。

本发明解决上述技术问题的技术方案是:

包括以下步骤:

步骤1:开始一个新的数据采集周期T;

步骤2:向节点采集负载信息,以及节点上部署插件实例的负载信息;

步骤3:判断是否有服务请求到达,如果有服务请求R到达,执行步骤4, 否则执行步骤8;

步骤4:根据服务请求R选择候选节点,即部署了执行服务请求R的插件实 例的节点;

步骤5:计算候选节点的负载指数;

步骤6:轮赌法选择执行服务请求的节点;

步骤7:将服务请求分配给该节点上插件实例执行,执行步骤3;

步骤8:判断采集周期结束是否结束,是则采集周期结束;否则行步骤3。

所述SLA指的是服务等级协议,是云服务提供商与租户确定的针对服务所 能达到的目标和质量;

所述节点指的是云服务提供商提供Web服务的资源基础,在节点自身服务 能力的约束下,云服务提供商将Web应用插件部署在节点上;

所述插件指的是由一个或多个功能组成的一个目标代码;所述插件实例是 插件的实例化,是功能特征描述的功能的具体执行者;一个插件根据租户需求, 可能部署一个或多个实例,根据负载的情况决定。

所述服务请求是指租户对云计算资源的请求;

在用户与Web应用平台方已签订SLA的情况下每一个服务请求都可以看作 一个二元组:

R=(AC,Level)

式中AC——处理服务请求的插件类型;

Level——该用户与Web应用提供方签订的SLA中规定的服务等级Level, Level用正整数表示,服务等级越高,服务质量越高。

所述负载指数是指待节点对服务请求的响应能力的计算值;

部署插件类型AC的节点实例的节点集合为

N={Node1,Node2,…,Noden}

,则节点Nodei的负载指数CLi的求解公式如下:

CLi=[LNodei×CoSACrCoSNodeip+LAci×(1-CoSACrCoSNodeip)]Level

式中——插件类型AC请求的资源服务能力;

——节点Nodei提供能资源服务能力;

——Nodei的负载利用率;

——Nodei上部署的插件类型AC的插件实例的负载利用率。

所述插件类型AC请求的资源服务能力,本发明选取CPU、内存、存储、 I/O、带宽五个指标表示节点的服务能力,因此某节点Nodex提供的服务能力记 为

CoSxp={Cx-cpup,Cx-memp,Cx-storep,Cx-I/Op,Cx-widthp}

式中p——提供服务能力标识。

某类型插件ACy对节点服务能力的需求记为

CoSyr={Cy-cpur,Cy-memr,Cy-storer,Cy-I/Or,Cy-widthr}

式中r——服务能力需求标识。

某节点Nodex的剩余服务能力为

CoSxf={Cx-cpuf,Cx-memf,Cx-storef,Cx-I/Of,Cx-widthf}

式中f——剩余服务能力标识。

所述插件实例负载利用率的计算方法为:设某构件实例Ac的插件类型为 ACi,某时刻构件处理的并发请求数为r,由定义4可得,插件实例负载利用率LAc的计算公式为:

LAc=rMaxi

式中Maxi——插件类型ACi的负载上限。

所述节点负载利用率的计算方法为:

LNode=CoSp-CoSfCoSp.

所述轮赌法选择执行服务请求的节点指的是计算服务请求R分配给节点 Nodei进行处理的概率,公式为:

Pi=ΣjnCLj-CLiΣjnCLj.

本发明的方法能产生如下的有益效果:

1、本发明的算法综合考虑节点负载、插件负载、租户服务等级,是一种针 对云计算Web应用的全面的算法;

2、本发明算法在参考节点负载作为选取节点依据的同时还考虑的节点上插 件实例的负载情况,从而避免插件实例负载较大但所在节点负载较低时,服务 请求仍然被分配给该插件进行处理的情况。可以满足不同租户对服务等级的不 同需求。能最大限度地利用资源,避免浪费。

附图说明

下面结合附图对本发明进一步说明:

图1为本发明的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的算法包括以下步骤:

步骤1:开始一个新的数据采集周期T;

步骤2:向节点采集负载信息,以及节点上部署插件实例的负载信息;

步骤3:判断是否有服务请求到达,如果有服务请求R到达,执行步骤4, 否则执行步骤8;

步骤4:根据服务请求R选择候选节点,即部署了执行服务请求R的插件实 例的节点;

步骤5:计算候选节点的负载指数;

步骤6:轮赌法选择执行服务请求的节点;

步骤7:将服务请求分配给该节点上插件实例执行,执行步骤3;

步骤8:判断采集周期结束是否结束,是则采集周期结束;否则行步骤3。

前述SLA指的是服务等级协议,是云服务提供商与租户确定的针对服务所 能达到的目标和质量。节点指的是云服务提供商提供Web服务的资源基础,在 节点自身服务能力的约束下,云服务提供商将Web应用插件部署在节点上。插 件指的是由一个或多个功能组成的一个目标代码;所述插件实例是插件的实例 化,是功能特征描述的功能的具体执行者;一个插件根据租户需求,可能部署 一个或多个实例,根据负载的情况决定。

所述服务请求是指租户对云计算资源的请求;

在用户与Web应用平台方已签订SLA的情况下每一个服务请求都可以看作 一个二元组:

R=(AC,Level)

式中AC——处理服务请求的插件类型;

Level——该用户与Web应用提供方签订的SLA中规定的服务等级Level, Level用正整数表示,服务等级越高,服务质量越高。

所述负载指数是指待节点对服务请求的响应能力的计算值;

部署插件类型AC的节点实例的节点集合为

N={Node1,Node2,…,Noden}

,则节点Nodei的负载指数CLi的求解公式如下:

CLi=[LNodei×CoSACrCoSNodeip+LAci×(1-CoSACrCoSNodeip)]Level

式中——插件类型AC请求的资源服务能力;

——节点Nodei提供能资源服务能力;

——Nodei的负载利用率;

——Nodei上部署的插件类型AC的插件实例的负载利用率。

所述插件类型AC请求的资源服务能力,本发明选取CPU、内存、存储、 I/O、带宽五个指标表示节点的服务能力,因此某节点Nodex提供的服务能力记 为

CoSxp={Cx-cpup,Cx-memp,Cx-storep,Cx-I/Op,Cx-widthp}

式中p——提供服务能力标识。

某类型插件ACy对节点服务能力的需求记为

CoSyr={Cy-cpur,Cy-memr,Cy-storer,Cy-I/Or,Cy-widthr}

式中r——服务能力需求标识。

某节点Nodex的剩余服务能力为

CoSxf={Cx-cpuf,Cx-memf,Cx-storef,Cx-I/Of,Cx-widthf}

式中f——剩余服务能力标识。

所述插件实例负载利用率的计算方法为:设某构件实例Ac的插件类型为 ACi,某时刻构件处理的并发请求数为r,由定义4可得,插件实例负载利用率LAc的计算公式为:

LAc=rMaxi

式中Maxi——插件类型ACi的负载上限。

所述节点负载利用率的计算方法为:

LNode=CoSp-CoSfCoSp.

所述轮赌法选择执行服务请求的节点指的是计算服务请求R分配给节点 Nodei进行处理的概率,公式为:

Pi=ΣjnCLj-CLiΣjnCLj.

下面以Java语言编程实现为例,具体讲述本发明的一个具体实施方式。见 图1所示,首先,采集节点的负载信息以及各插件实例的负载信息

然后,根据请求R选择候选节点

然后,把候选节点列表中节点的负载指数都计算出来

最后,根据上述的计算结果选出负载指数最小的节点,如果有多个节点, 那么进行轮询,直到找到能创建插件实例的节点。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号