本发明涉及计算机技术领域,具体为一种面向混合云的资源调度方法。
背景技术:
迁移到云计算环境并不意味着企业会抛弃原有的基础设施投资,通常情况下企业会将关键数据、关键的应用任务部署到私有的云环境中替代原有的架构。只是根据效益最大化的原则,当该私有云不足以满足企业计算需求的时候,有必要购买外部公有云的服务满足溢出的计算需求。
这种包含了私有云和公有云的混合模式称为混合云。在这种情况下,可以将企业自有的私有云看作企业的固定成本,而即买即用的外部公有云服务就是企业可能支付的可变成本。为了达到企业收益的最大化,在私有云资源空闲的情况下,尽量将计算限定在私有云完成,只有发生自身资源不足以满足现在计算需求的时候,才使用外部的公有云服务。
混合云资源调度试图最大化私有云的资源利用率,仅在资源不足的情况下向公有云请求调度,实现该算法的经济性。
技术实现要素:
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种面向混合云的资源调度方法,解决了在现有技术中,云资源调度分配过程中难以很好的保证私有云资源利用率最大化,从而难以保证云资源调度具有较好经济性的问题。
(二)技术方案
为实现以上目的,本发明通过以下技术方案予以实现:一种面向混合云的资源调度方法,其中使用到的系统由客户端、私有云资源、公有云资源以及云资源调度器组成,包括如下步骤:
s1、云资源调度器接收到客户端ki发出的云应用请求q,该云应用请求q中包含云应用app名称和最长处理时间tmax。云资源调度器利用云应用app名称查询云应用-云服务对应表,获得该云应用app所包含的云服务s1,s2,s3,…,sk,然后查询云服务-云资源对应表,获得每个云服务si对应的“非满负荷状态”云资源。
s2、分别计算所有“非满负荷状态”云资源执行云服务si的时间,然后选择执行时间最短的“非满负荷状态”云资源yrj,并记录云资源yrj执行云服务si的时间tij;当执行时间最短的“非满负荷状态”云资源有多种时,选择价格最低的“非满负荷状态”云资源。
s3、判断所有云资源的云服务执行时间tij的累加和tsum的对应关系,并作出相应操作,具体情况如下:
s31、如果所有云资源的云服务执行时间tij的累加和tsum大于云应用请求q所要求的云应用最长处理时间tmax,则向客户端ki发送分配失败命令,并建议用户增大云应用最长处理时间tmax并重新提交新的云应用请求q’。
s32、如果所有云资源的云服务执行时间tij累加和tsum小于tmax,获得的资源调度方案作为候选调度方案。
s4、针对候选调度方案中选择公有云资源的云服务,根据云服务-云资源对应表,找到这些云服务中所有其他未分配的“非满负荷状态”云资源,作为候选替换集合。
s5、针对候选替换集合中的私有云资源,计算私有云资源的替换优先级,该优先级为私有云资源yri替换公有云资源yrj之后的时间增幅和公有云资源yrj执行时间的比值,即“(私有云资源yri的执行时间-公有云资源yrj的执行时间)/公有云资源yrj执行时间”。
根据优先级从小到大的顺序,逐个考察每个私有云资源yri及其所替换的公有云资源yrj,若“tsum-云资源yrj执行时间+云资源yri执行时间”小于tmax,则利用私有云资源yri替换的公有云资源yrj获得新的可行资源调度方案。
s6、针对候选替换集合中的公有云资源,计算公有云资源的替换优先级,该优先级为公有云资源yrj替换公有云资源yri之后的单位时间增幅所节约的成本,即“(公有云资源yri的价格-公有云资源yrj的价格)/(公有云资源yrj的执行时间-公有云资源yri的执行时间)”。
根据优先级从大到小的顺序,逐个考察每个公有云资源yrj及其所替换的公有云资源yri,若“tsum-云资源yri执行时间+云资源yrj执行时间”小于tmax,则利用公有云资源yrj替换的公有云资源yri获得新的可行资源调度方案。
s7、至此优化完毕,按照优化的云资源调度方案,顺序调度各个云资源执行相应的云服务,从而实现云应用app的处理,返回处理结果给客户端ki。
优选的,客户端ki向混合云hc申请执行云应用app,也需要向混合云hc支付费用fy,混合云hc中的私有云资源是指企业自有的。私有云资源是企业完全自主控制的,可以看作企业的固定成本。混合云hc中的公有云资源是指即买即用的外部公有云资源,是企业可能支付的可变成本。在私有云资源空闲的情况下,尽量将云服务限定在私有云资源完成,只有发生自身资源不足以满足现在云服务需求的时候,才使用外部的公有云资源。混合云hc的云资源调度器接收到客户端ki发出的云应用请求q,根据云应用app中包含的云服务s1,s2,s3,…,sk,在满足云应用最长处理时间tmax条件下,对各种可行云资源调度方案进行优化,然后根据获得的云资源调度优化方案,为每个云服务分配相应的云资源,执行相应的云服务,从而实现云应用app的处理,返回处理结果给客户端ki。
(三)有益效果
本发明提供了一种面向混合云的资源调度方法。具备以下有益效果:该面向混合云的资源调度方法,通过计算不同调度方案的tsum并和用户提交的最长处理时间tmax进行比较,经过多轮优化,不断选择满足时间约束tmax但价格更便宜的云资源调度方案,从而降低云应用app的执行成本,极大程度上保证了私有云资源利用率的最大化,同时使得混合云资源的调度具有很好的经济性。
附图说明
图1为本发明云服务对应表;
图2为本发明云资源对应表;
图3为本发明混合云环境调度示意图;
图4为本发明app1所对应的云服务可用云资源列表;
图5为本发明app1“非满负荷状态”云资源执行云服务si的时间的计算结果表;
图6为本发明app1根据所计算的云资源执行云服务si的时间数据获得的资源调度方案;
图7为本发明app1中当所有的云资源都是“非满负荷状态”时,候选的“非满负荷状态”云资源替换集合;
图8为本发明tsum-云资源yr2执行时间+云资源yr1执行时间=12-6+7=13小于tmax=14时的可行资源调度方案;
图9为本发明app1当前获得的可行资源调度方案中yr5是公有云资源时公有云资源yr5替换集合;
图10为本发明tsum-云资源yr5执行时间+云资源yr6执行时间=12-4+6=12等于tmax=14时的可行资源调度方案。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-3,本发明提供一种技术方案:一种面向混合云的资源调度方法,其中使用到的系统由客户端、私有云资源、公有云资源以及云资源调度器组成,
其中客户端ki向混合云hc申请执行云应用app,也需要向混合云hc支付费用fy。
私有云资源是指企业自有的。私有云资源是企业完全自主控制的,可以看作企业的固定成本。
公有云资源是指即买即用的外部公有云资源,是企业可能支付的可变成本。
在私有云资源空闲的情况下,尽量将云服务限定在私有云资源完成,只有发生自身资源不足以满足现在云服务需求的时候,才使用外部的公有云资源。
混合云hc中的云资源调度器接收到客户端ki发出的云应用请求q,根据云应用app中包含的云服务s1,s2,s3,…,sk,在满足云应用最长处理时间tmax条件下,对各种可行云资源调度方案进行优化,然后根据获得的云资源调度优化方案,为每个云服务分配相应的云资源,执行相应的云服务,从而实现云应用app的处理,返回处理结果给客户端ki,其调度方法包括如下步骤:
s1、云资源调度器接收到客户端ki发出的云应用请求q,该云应用请求q中包含云应用app名称和最长处理时间tmax。云资源调度器利用云应用app名称查询云应用-云服务对应表,获得该云应用app所包含的云服务s1,s2,s3,…,sk,然后查询云服务-云资源对应表,获得每个云服务si对应的“非满负荷状态”云资源。
例如,假设云应用请求q中包含的云应用app为app1。
查询图1中的云应用-云服务对应表获得的app1所对应的云服务为s1,s2,s3。
进一步查询图2中的云服务-云资源对应表获得云服务s1,s2,s3对应的“非满负荷状态”云资源。假设app1是云平台接收到的第一个云应用请求,即此时所有的云资源都是“非满负荷状态”,此时获得的app1所对应的云服务可用云资源列表如图4所示。
s2、分别计算所有“非满负荷状态”云资源执行云服务si的时间,然后选择执行时间最短的“非满负荷状态”云资源yrj,并记录云资源yrj执行云服务si的时间tij;当执行时间最短的“非满负荷状态”云资源有多种时,选择价格最低的“非满负荷状态”云资源。
例如,假设云应用请求q中包含的云应用app为app1。“非满负荷状态”云资源执行云服务si的时间的计算结果如图5所示。表中给出了时间和价格的数据。
针对app1,根据所计算的云资源执行云服务si的时间数据,获得的资源调度方案如图6所示。
s3、判断所有云资源的云服务执行时间tij的累加和tsum的对应关系,并作出相应操作,具体情况如下:
s31、如果所有云资源的云服务执行时间tij的累加和tsum大于云应用请求q所要求的云应用最长处理时间tmax,则向客户端ki发送分配失败命令,并建议用户增大云应用最长处理时间tmax并重新提交新的云应用请求q’。
s32、如果所有云资源的云服务执行时间tij累加和tsum小于tmax,获得的资源调度方案作为候选调度方案。
因为步骤s2采用的是选择执行时间最短的“非满负荷状态”云资源yrj。当云资源yrj是公有云资源时,执行时间最短通常意味着公有云资源的价格最高,所以在候选调度方案中存在公有云资源的条件下,根据宽裕的执行时间tmax-tsum,可以通过选择满足云应用最长处理时间tmax要求但执行时间更长的云资源,降低云应用app的运行成本;
以前述云应用app1为例,假设云应用请求q中给定的app1最长执行时间tmax=14。获得的调度方案中所有云资源的云服务执行时间tij累加和tsum=6+4+2=12小于app1最长执行时间tmax=14。所以该资源调度方案是可行的。
进一步的,该调度方案中yr2和yr5是公有云资源,并且宽裕的执行时间tmax–tsum=14-12=2,所以该方案可以进一步优化。
s4、针对候选调度方案中选择公有云资源的云服务,根据云服务-云资源对应表,找到这些云服务中所有其他未分配的“非满负荷状态”云资源,作为候选替换集合。
以前述云应用app1为例,yr2和yr5是公有云资源,当所有的云资源都是“非满负荷状态”时,候选的“非满负荷状态”云资源替换集合如图7所示。
s5、针对候选替换集合中的私有云资源,计算私有云资源的替换优先级,该优先级为私有云资源yri替换公有云资源yrj之后的时间增幅和公有云资源yrj执行时间的比值,即“(私有云资源yri的执行时间-公有云资源yrj的执行时间)/公有云资源yrj执行时间”。
根据优先级从小到大的顺序,逐个考察每个私有云资源yri及其所替换的公有云资源yrj,若“tsum-云资源yrj执行时间+云资源yri执行时间”小于tmax,则利用私有云资源yri替换的公有云资源yrj获得新的可行资源调度方案。所述的按照优先级从小到大进行考察,其原因是保证替换后的tsum增幅较小,避免很快突破允许的最长处理时间tmax。
以前述云应用app1为例,yr2和yr5是公有云资源。根据云资源替换集合,可知公有云资源yr2可被私有云资源yr1替换,公有云资源yr5可被私有云资源yr3替换。
私有云资源yr1的替换优先级为(7-6)/6,私有云资源yr3的替换优先级为(7-4)/4。根据优先级从小到大的顺序,先考虑yr1,再考虑yr3。
私有云资源yr1替换公有云资源yr2之后,tsum-云资源yr2执行时间+云资源yr1执行时间=12-6+7=13小于tmax=14,则利用私有云资源yr1替换的公有云资源yr2获得如图8所示的可行资源调度方案,该方案的tsum=13。
私有云资源yr3替换公有云资源yr5之后,tsum-云资源yr5执行时间+云资源yr3执行时间=13-4+7=16大于tmax=14,则不能通过私有云资源yr3替换的公有云资源yr5获得新的可行资源调度方案。
s6、针对候选替换集合中的公有云资源,计算公有云资源的替换优先级,该优先级为公有云资源yrj替换公有云资源yri之后的单位时间增幅所节约的成本,即“(公有云资源yri的价格-公有云资源yrj的价格)/(公有云资源yrj的执行时间-公有云资源yri的执行时间)”。
根据优先级从大到小的顺序,逐个考察每个公有云资源yrj及其所替换的公有云资源yri,若“tsum-云资源yri执行时间+云资源yrj执行时间”小于tmax,则利用公有云资源yrj替换的公有云资源yri获得新的可行资源调度方案。所述的按照优先级从大到小进行考察,其原因是保证替换后的tsum增幅带来的成本节约最大化。
以前述云应用app1为例,当前获得的可行资源调度方案中yr5是公有云资源。公有云资源yr5替换集合如图9所示。
根据云资源替换集合,可知公有云资源yr5可被公有云资源yr6替换,公有云资源yr5可被公有云资源yr0替换。
公有云资源yr6的替换优先级为(3-2)/(5-4)=1,公有云资源yr0的替换优先级为(3-1)/(8-4)=1/2。根据优先级从大到小的顺序,先考虑yr6,再考虑yr0。
公有云资源yr6替换公有云资源yr5之后,tsum-云资源yr5执行时间+云资源yr6执行时间=13-5+6=14等于tmax=14,则利用公有云资源yr6替换公有云资源yr5获得如图10所示的可行资源调度方案,该方案的tsum=14。
由于此时,tsum=tmax,可知不能进一步通过公有云资源替换获得新的可行资源调度方案。
s7、至此优化完毕,按照优化的云资源调度方案,顺序调度各个云资源执行相应的云服务,从而实现云应用app的处理,返回处理结果给客户端ki。
其中,各个结构的基本概念如下:
云应用app:
一个云应用app由多个云服务组成s1,s2,s3,…,sk,即云平台通过有序运行云服务s1,s2,s3,…,sk来实现云应用app的功能。
客户端ki向混合云hc申请使用云应用app时,需要同时提交云应用app最长处理时间tmax,即混合云hc需要保证在处理时间tmax内完成云应用app的执行。如果执行超时,混合云hc应该向客户支付违约金。
客户端ki向混合云hc申请使用云应用app时,也需要向混合云hc支付费用fy,费用的金额和客户端提交的云应用app最长处理时间tmax有关,tmax越小,则fy越大。
云服务si:
一个云服务si是一段代码,该代码包含cli百万指令数,和一个待处理的数据块,该数据块包含dsi兆数据。
云资源yrj:
一个云资源yrj是包含从物理机上虚拟化得到的一个虚拟资源,该虚拟资源具有代码执行能力pcj,即每秒执行pcj百万指令数,数据处理能力pdj,即每秒处理pdj兆数据,云资源价格rcj。
云资源yrj可以来自于私有云或公有云。需要注意,对于企业自有的私有云可以看作是企业的固定成本,即无论是否使用都要支出的固定成本,所以本专利把私有云资源价格rcj设置为0,从而在云资源调度中提升私有云资源的利用率。而即买即用的外部公有云资源就是企业可能支付的可变成本,所以公有云资源价格rcj设置为购买价格。
由于并不是一种云资源可以执行所有云服务,所以混合云hc的云资源调度器需要维护一张云服务-云资源对应表。图2为云服务-云资源对应表实例。
表中第i行,表示可以执行云服务si的所有云资源,云资源分为两类私有云资源和公有云资源。
由于云资源的负载是动态变化的,所以云资源在两个工作状态“满负荷状态”和“非满负荷状态”之间不断切换。
当处于“非满负荷状态”的云资源的负载不断增加,从而处于“满负荷状态”,则云资源通过心跳机制向云资源调度器发出满负荷状态信息,云资源调度器在云服务-云资源对应表把该云资源标注为“满负荷状态”。
当处于“满负荷状态”的云资源的负载减少之后,云资源具有闲置的处理能力,则云资源通过心跳机制向云资源调度器发出非满负荷状态信息,云资源调度器则在云服务-云资源对应表把该云资源标注为“非满负荷状态”。
云资源的服务执行时间计算方法如下:
一个云服务si是一段代码,该代码包含cli百万指令数,和一个待处理的数据块,该数据块包含dsi兆数据。
一个云资源yrj是包含从物理机上虚拟化得到的一个虚拟资源,该虚拟资源具有代码执行能力pcj,即每秒执行pcj百万指令数,数据处理能力pdj,即每秒处理pdj兆数据。
所以云资源yrj执行云服务si的时间为tij=max{cli/pcj,dsi/pdj}。
混合云资源调度基本过程如下:
客户端ki向混合云hc的云资源调度器发出云应用请求q,该请求包含的信息有:云应用app名称和云应用最长处理时间tmax。
混合云hc的云资源调度器接收到客户端ki发出的云应用请求q,根据云应用app中包含的云服务s1,s2,s3,…,sk,在满足云应用最长处理时间tmax条件下,对各种可行云资源调度方案进行优化,然后根据获得的云资源调度优化方案,为每个云服务分配相应的云资源,执行相应的云服务,从而实现云应用app的处理,返回处理结果给客户端ki。
综上所述,该面向混合云的资源调度方法,通过计算不同调度方案的tsum并和用户提交的最长处理时间tmax进行比较,经过多轮优化,不断选择满足时间约束tmax但价格更便宜的云资源调度方案,从而降低云应用app的执行成本,极大程度上保证了私有云资源利用率的最大化,同时使得混合云资源的调度具有很好的经济性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。