一种基于动态重配置虚拟资源的云计算资源调度方法转让专利

申请号 : CN201010268105.7

文献号 : CN101938416B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林伟伟齐德昱

申请人 : 华南理工大学

摘要 :

本发明涉及一种基于动态重配置虚拟资源的云计算资源调度方法。该方法以云应用监视器收集的云应用负载信息为依据,然后基于运行云应用的虚拟资源的负载能力和云应用当前的负载进行动态决策,根据决策的结果为云应用动态重配置虚拟资源。通过为云应用重配置虚拟资源的方法实现资源的动态调整,不需要动态重新分配物理资源和停止云应用执行。该方法能根据云应用负载变化动态重配置虚拟资源,优化云计算资源分配,实现云计算资源的高效使用和满足云应用动态可伸缩性的需要;而且该方法可以避免云计算资源的浪费,节省云应用用户的资源使用成本。

权利要求 :

1.一种基于动态重配置虚拟资源的云计算资源调度方法,其特征在于包括以下步骤:第一步骤:云应用监视器监视云应用的运行状态、用户请求和访问连接,从云应用负载管理器收集云应用的负载信息;

第二步骤:云应用监视器将收集的云应用负载信息发送给重配置决策器;

第三步骤:重配置决策器根据收集的云应用负载信息进行资源重配置决策,确定是否需要为云应用增加和减少资源;

第四步骤:重配置决策器将资源动态分配的决策信息发送给资源动态分配器; 第五步骤:如果资源动态分配器收到是增加资源的决策信息,则从虚拟资源列表中分配一个虚拟资源给云应用,然后把增加的虚拟资源信息发送给云应用负载管理器;云应用负载管理器将云应用部署到新增加的虚拟资源上,然后启动该云应用实例;转入第六步骤;

如果资源动态分配器收到是减少资源的决策信息,则通知云应用负载管理器删除一个云应用实例;云应用负载管理器删除一个云应用实例,并通知资源动态分配器回收该云应用实例的虚拟资源;资源动态分配器回收虚拟资源,即将相应的虚拟资源加入到虚拟资源列表中;

第六步骤:重复执行以上步骤,直到云应用终止运行;

所述第一步骤中,云应用监视器定时收集云应用的负载信息,具体需要收集m个云应用实例的会话数,收集数据的结果表示为云应用负载向量S(S1, S2, …, Sm);

所述第二步骤中,云应用监视器发送云应用的负载向量S(S1, S2, …, Sm)给重配置决策器;

所述第三步骤中,重配置决策器进行动态资源重配置决策,判断云应用负载情况,得出增加或减少资源的决策结果;设一个云应用实例的最大负载为Smax,一个云应用实例的标准负载为Sstd=C×Smax,其中C为常数且0.5

策结果为不变化虚拟资源数量。

说明书 :

一种基于动态重配置虚拟资源的云计算资源调度方法

技术领域

[0001] 本发明涉及一种云计算资源调度方法,特别涉及一种基于动态重配置虚拟资源的云计算资源调度方法。

背景技术

[0002] 近年来,随着互联网网络规模的不断扩大,互联网所需要处理的业务量也随着快速增长。如何处理海量的数据与服务,有效地为用户提供方便、快捷的网络服务,成为互联网当前发展面临的一个问题。在这种背景下,基于分布式计算特别是网格技术的发展,产生了一种新型服务计算模型:云计算。云计算是能够提供动态资源池、虚拟化和高可用性的下一代计算平台的核心技术。它以用户为中心,提供安全、快速、便捷的数据存储和网络服务,使互联网成为每一个用户的数据中心和计算中心,使用户从以桌面为核心使用各项应用转移到以Web为核心进行各种活动。云计算的兴起给IT产业带来了新的机遇,同时也随之产生了一系列新的挑战性问题。如何高效地利用和调度云计算资源是当前云计算研究的主要问题之一。与传统的分布式计算和网格计算相比,云计算的主要吸引力在于它能够为用户提供按需的、灵活的、可靠的和廉价的资源服务。因此,要使得云计算能够得到广泛应用和发展,云计算资源管理和调度急需解决以下关键问题:(1)云为用户应用配置资源应该具有可伸缩性,云为特定应用配置的资源数量应该可以动态伸缩,可以满足应用和用户规模增长的需要。(2)云计算要实现资源使用的廉价性,这要求资源利用率高,例如对于一个在不同时期需要不同计算能力的应用,云应该能根据应用对资源需求变化动态地为应用配置资源,而不是让资源配置为静态的峰值需求。
[0003] 云计算是在并行计算、分布式计算和网格计算的基础上发展起来的,但相比传统的分布式计算、网格计算,云计算有如下特点:(1)传统的分布式计算和网格计算往往是集成分散在网络上的一些资源,这些资源往往是异构的计算机,需要通过一些分布式的调度算法来管理和使用这些资源;而云计算的资源一般以相对集事先组织好的,由一些专门的服务器组成的。(2)传统的分布式计算,特别是网格计算,大都是面向复杂的科学计算,在网格应用大都是一些大型的计算密集型或数据密集型应用;而云计算更趋向于一种的商业计算模型,面向各种用户,云应用的种类比较多。由于云计算的这些特点,一些传统的资源管理和调度方法并不适合于云计算。
[0004] 从资源调度模式上看,传统的分布式计算和网格计算的资源管理与调度主要有三种模式:集中式、分散式、分级式。分级式和分散式的管理方法对分布式系统和网格资源的管理和运转来说是较合适的。目前云计算主要采用虚拟资源池的方式来管理云计算资源,并通过数据中心来实现资源和任务信息的处理。因此,云计算更适合于使用集中式资源管理和调度模式。从资源调度方法上看,澳大利亚Rajkumar Buyya等学者提出的基于经济模型资源调度方法是当前一个主要方法之一,他们提出了面向市场的云计算体系结构和面向市场的资源分配和调度方法,该体系结构通过SLA资源分配器来实现资源使用者与资源提供者之间的协商,实现资源优化分配,但该体系结构中很多具体问题仍然在研究之中。在此基础上,徐向华等人还给出了一种基于市场机制的云计算资源分配策略,并设计一个基于遗传基因的价格调节算法处理市场的需求和供给的平衡问题,但目前提出的方法只是针对底层资源调度问题,即如何给虚拟资源(虚拟机)分配物理资源(CPU、内存、存储器),而且提出的方法目前仅仅考虑CPU资源,无法处理其它类型的资源。虽然,使用经济学模型进行资源调度和协同分配可以实现资源的高效调度和提供资源利用率,但目前只是对底层资源的调度问题的研究,且没有成熟的实现。另一种主要的云计算资源调度方法是为虚拟资源重配置物理资源的动态调度方法。法国的Jean-Marc Menaud和Hien Nguyen Van等人针对云计算中虚拟资源的管理提出一些动态调度方法,主要是讨论如何为应用选择合适的虚拟机和为虚拟机选择合适的物理计算机的问题,并把这些调度问题转化为约束满足问题,获得优化调度结果。Fabien Hermenier等人针对如何分配和迁移虚拟机到物理主机的问题进行研究,并在考虑重配置计算时间和虚拟机迁移时间两个因素情况下,给出一种优化总的动态调度时间的资源管理方法Entropy。此外,也有些方法通过虚拟机的动态迁移和重新分配方法实现云计算系统的负载均衡,从而达到云计算资源优化分配。魏贵义等人利用了博弈论的方法来解决云计算资源分配问题,设计一个基于博弈论的资源分配算法,该算法首先利用整数规划方法处理单个参与者的独立优化问题,然后利用进化算法处理多个参与者综合优化问题。提出的进化算法同时考虑了优化和公平两个方面,能给出一种比较好折衷资源分配方法。然而,这种基于博弈论的资源分配方法比较复杂,仅适用于处理一些非常复杂和动态的,而且应用能分成多个协作任务的资源调度问题。
[0005] 虽然近几年在云计算资源调度上已经开展了一些研究工作。但大部分云计算资源调度方法是面向底层物理资源的调度,主要有给虚拟资源优化配置物理资源的方法或是通过虚拟机迁移的方法来实现系统负载均衡的和提高资源利用率,这些方法都需要停止云应用来实现资源动态调度,有一定应用局限性。此外,还有一些其它方法是面向具体应用的,不具有普遍性。

发明内容

[0006] 鉴于上述现有技术存在的不足,本发明目的是提供一种基于动态重配置虚拟资源的云计算资源调度方法,能根据云应用负载变化动态重配置资源,优化云计算资源分配,从而实现云计算资源的高效利用,为云应用用户提供按需的、灵活的、可靠的和廉价的资源服务。
[0007] 为了实现上述目的,本发明所采用的一种基于动态重配置虚拟资源的云计算资源调度方法包括:
[0008] 第一步骤:云应用监视器监视云应用的运行状态、用户请求和访问连接,从云应用负载管理器收集云应用的负载信息;
[0009] 第二步骤:云应用监视器将收集的云应用负载信息发送给重配置决策器;
[0010] 第三步骤:重配置决策器根据收集的云应用负载信息进行资源重配置决策,确定是否需要为云应用增加和减少资源;
[0011] 第四步骤:重配置决策器将资源动态分配的决策信息发送给资源动态分配器; [0012] 第五步骤:如果资源动态分配器收到是增加资源的决策信息,则从虚拟资源列表中分配一个虚拟资源给云应用,然后把增加的虚拟资源信息发送给云应用负载管理器;云应用负载管理器将云应用部署到新增加的虚拟资源(虚拟机)上,然后启动该云应用实例;转入第六步骤;
[0013] 如果资源动态分配器收到是减少资源的决策信息,则通知云应用负载管理器删除一个云应用实例;云应用负载管理器删除一个云应用实例,并通知资源动态分配器回收该云应用实例的虚拟资源;资源动态分配器回收虚拟资源,即将相应的虚拟资源加入到虚拟资源列表中;
[0014] 第六步骤:重复执行以上步骤,直到云应用终止运行。
[0015] 云计算资源的动态分配和调度成为云计算研究的一个核心问题,也是基于云计算的应用所需要解决的首要问题。目前许多学者、研究机构和大型IT公司也提出了一些解决方法,但是这些方法主要是从底层物理资源负载均衡和重新配置来考虑资源动态分配,由于这些方法需要为虚拟机(虚拟资源)重新分配物理资源(主机上CPU、内存资源),而目前虚拟机无法实现动态热扩容,因此需要停止运行云应用的虚拟机,从而导致这些方法都无法避免必须停止和重启云应用。
[0016] 本发明与现有的云计算资源调度方法相比,具有如下优点:
[0017] (1)提出了基于动态重配置的云计算资源动态分配方法,可以动态修改云应用的虚拟资源数量,实现云应用的资源动态调整和分配,优化云计算资源动态分配,满足云应用动态可伸缩性的需要,实现云计算资源的高效使用;
[0018] (2)该方法采用动态重配置虚拟资源方案实现资源动态分配。即不是直接调整云应用的物理资源,而是动态增加或减少云应用的虚拟资源,不需要停止云应用的运行就可以扩展云应用的资源。而已有的云计算资源动态分配方法都是通过重新分配物理资源的方法来实现资源负载均衡和提高资源利用率,故需要停止和重启云应用。因此,本发明具有更好应用价值;
[0019] (3)提出的调度方法可以根据云应用的负载变化动态配置资源,从而避免资源浪费,节省用户的资源使用成本。

附图说明

[0020] 图1为基于动态重配置虚拟资源的云计算资源调度模型图。
[0021] 图2为本实施方式中基于动态重配置虚拟资源的云计算资源调度方法的流程图。
[0022] 图3为实施例中一个云应用一天的负载变化图。

具体实施方式

[0023] 下面结合附图对本发明作进一步的详细描述,但本发明的实施和保护范围不限于此。
[0024] 如图1所示,基于动态重配置虚拟资源的云计算资源调度模型由云应用负载管理器、云应用监视器、重配置决策器和资源动态分配器4个部分组成,其中云应用监视器负责监视、收集云应用的运行状态和负载情况,并将信息反馈给重配置决策器;重配置决策器根据收集的云应用负载信息进行资源动态重配置决策;资源动态分配器负责为云应用动态分配资源工作,它能根据接收到重配置决策器的决策信息进行虚拟资源的动态分配和回收工作;云应用负载管理器负责虚拟资源的具体调度和云应用的负载管理工作,它能根据资源动态分配器分配的虚拟资源进行云应用的部署和云应用实例的启动、删除,并能将多个用户的访问和请求转发给各云应用实例,实现云应用的负载均衡。
[0025] 云计算环境的资源类型多样且异构,为了实现云计算资源动态重配置,在调度前需要抽象和统一云计算资源,虚拟化技术可以云计算资源的抽象、整合和统一。为此,在调度前,我们对云计算资源进行重新组织和划分,把底层的物理资源虚拟化为标准化的虚拟资源向量V(V1,V2 … Vn)。基于动态重配置虚拟资源的云计算资源调度方法由如图1所示调度模型实现的,本发明的具体方法(动态调度具体步骤)如下(如图2所示):
[0026] 1、云应用监视器定时收集云应用的负载信息,具体需要收集m个云应用实例的会话数,收集数据的结果表示为云应用负载向量S(S1, S2, …, Sm);
[0027] 2、云应用监视器发送云应用的负载向量S(S1, S2, …, Sm)给重配置决策器;
[0028] 3、重配置决策器进行动态资源重配置决策,判断云应用负载情况,得出增加或减少资源的决策结果;
[0029] 具体决策方法为:
[0030] 假设一个云应用实例的最大负载为Smax,一个云应用实例的标准负载为Sstd=C×Smax,其中C为常数且0.5少一个虚拟资源;(3)当 时,则决策结果为不变化虚拟资源数
量;
[0031] 4、当决策结果为增加或减少虚拟资源时,则将决策结果发送给资源动态分配器;
[0032] 5、如果资源动态分配器收到是增加资源的决策信息,则从虚拟资源列表中分配一个虚拟资源Vi给云应用,然后把增加的虚拟资源信息发送给云应用负载管理器; [0033] 6、云应用负载管理器将云应用部署到新增加的虚拟资源Vi上,然后启动该云应用实例;转入步骤10;
[0034] 7、如果资源动态分配器收到是较少资源的决策信息,则通知云应用负载管理器删除一个云应用实例;
[0035] 8、云应用负载管理器停止转发用户请求给云应用实例Im,当云应用实例Im[0036] 的负载Sm为0时,删除该云应用实例,并通知资源动态分配器回收该云应用实例的虚拟资源;
[0037] 9、资源动态分配器回收虚拟资源,即将相应的虚拟资源加入到虚拟资源向量V中;
[0038] 10、重复执行以上步骤,直到云应用终止运行。
[0039] 实例:为了验证基于动态重配置虚拟资源的云计算资源调度方法的有效性,我们模拟使用提出的调度方法和不使用情况下的云计算资源调度,比较了2种情况下系统资源利用率。
[0040] 假设一个云应用一天的负载变化如图3所示,服从正态分布,其中最大负载为800000。该云应用可以分布运行在多个虚拟资源上,一个虚拟资源上的云应用实例允许的最大负载Smax为100000,一个云应用实例允许的标准负载为Sstd=C×Smax=0.8*100000=80000。如果采用静态调度方法(不用基于动态重配置虚拟资源的云计算资源调度方法)时,由于云应用的最大负载为800000,所以需要给云应用配置S/Sstd=10个虚拟资源;如果使用基于动态重配置虚拟资源的云计算资源调度方法时,当系统负载小于80000时,只需要为云应用配置一个虚拟资源,而当负载增加时,系统通过动态重配置方法为云应用动态增加虚拟资源和启动云应用实例,调度过程如下表所示:
[0041] 表1 基于动态重配置虚拟资源的云计算资源调度方法的调度过程
[0042]时间(小时)负载(万) 虚拟资源数(个) 时间(小时)负载(万) 虚拟资源数(个)
1-7 小于8 1 14 75 10
8 10 2 15 52 7
9 20 3 16 44 6
10 37 5 17 28 4
11 63 8 18 11 2
12 72 9 19-24 小于8 1
13 80 10
[0043] 根据以上调度过程计算系统资源利用率为:
[0044] U=1/(1.6%*(7+2+3+5+8+9+10+10+7+6+4+2+6))=80%。
[0045] 而采用静态调度方法时,系统资源利用率为:
[0046] U=1/(24*16%)=26%。
[0047] 通过上面的云应用调度实例可以看出,采用提出的基于动态重配置虚拟资源的云计算资源调度方法明显可以提供系统资源利用率。