一种能效优先的云资源分配与调度方法与流程

文档序号:15233022发布日期:2018-08-21 19:54阅读:121来源:国知局
本发明属于信息
技术领域
,涉及云计算中心服务器资源的分配与调度,具体涉及一种能效优先的云资源分配与调度方法,可用于云计算环境下服务器的能效优化。
背景技术
:在现代云计算中心,高能耗是运行成本增加的一个关键问题。根据文献统计,电力和散热的成本在过去10年里增长了4倍,超过50%的云计算中心将电力和散热成本确定为限制服务器部署的关键因素。因此,降低云计算中心的能源消耗势在必行。事实上,云中心空闲的服务器消耗大约70%的峰值功率,闲置服务器消耗电力造成的浪费被认为是能源效率低下的主要原因。另一方面,在随着服务器上部分虚拟机结束任务,将运行的虚拟机动态地集成到最少数量的云服务器中,然后将空闲服务器置入低功耗模式,这样也能提高云计算中心的能效。高能效的云资源分配与调度算法能够合理进行资源分配、动态调整活动服务器以减少工作服务器的数量,并将空闲服务器设置为低功耗模式,能有效提高效率,因此受到研究人员广泛关注。目前,资源分配和调度方法有最佳服务器负荷的虚拟机分配法和仅采用能效优先的虚拟机分配法。最佳服务器负荷虚拟机分配法主要考虑云计算中心服务器负荷的均衡;仅采用能效优先的虚拟机分配法局限于以最佳能效在服务器上分配虚拟机、但虚拟机结束后不对服务器承载的虚拟机进行整合优化调度的分配方法,因此上述方法的节能效果不够理想。技术实现要素:本发明的目的是提供一种能效优先的云资源分配与调度方法,该方法在设计云资源分配系统模型的基础上,设计了能效优先的虚拟机分配方法和动态虚拟机迁移方法,合理调度能源,加强云资源的能效管理。虚拟机分配方法利用扩展装箱算法,通过减少工作服务器的数量,并将空闲服务器置为睡眠模式,提高云计算中心的能效;动态虚拟机迁移方法利用线性整数规划法优化结束服务工作的服务器,进一步减少工作服务器的数量。迁移方法与分配方法协同工作,能有效减小云计算中心的总能耗。为了实现上述任务,本发明采用以下技术方案:一种能效优先的云资源分配与调度方法,包括以下步骤:步骤一,客户端将应用程序打包成虚拟机,生成虚拟机请求,并将虚拟机请求发送到云计算中心;云计算中心根据所述的虚拟机请求,建立所述分配过程的线性约束条件;所述的线性约束条件为:上式中,二维变量xij表示虚拟机vmi是否在服务器j上工作,若在服务器上工作xij置为1,否则xij置为0;n为请求虚拟机的总数;m为云计算中心服务器的总数;pi是虚拟机vmi的最大功耗;xij表示虚拟机vmi是否在服务器j上工作;pj,max为服务器j的功率上限;ej为决策变量;pj,current为服务器j的当前功率;ej为决策变量,如果服务器j为虚拟机提供运行环境,则ej的值置为1,否则ej置为0;步骤二,云计算中心根据所述线性约束条件,将虚拟机分配至不同的服务器;步骤三,根据虚拟机分配后任务完成情况,将运行的虚拟机动态地集成到最少数量的服务器中,然后将空闲服务器置入低功耗模式或关闭。进一步地,所述的步骤二的具体过程包括:步骤2.1,构建能效优先的虚拟机分配的优化目标函数:上式中,n表示服务器数量;步骤2.2,将虚拟机分配问题转化为多约束条件的最优化问题;步骤2.3,求解所述的最优化问题,根据求解结果实现虚拟机的合理分配。进一步地,步骤2.2中所述的多约束条件的最优化问题p表示为:上式中,pi表示虚拟机vmi的最大功耗,xij表示二维变量,如果虚拟机vmi在服务器j上工作,则xij置为1,否则xij置为0;n表示请求虚拟机的总数。进一步地,所述的步骤三的具体过程包括:步骤3.1,推导通过迁移虚拟机可以节省的能耗;步骤3.2,获取虚拟机整合迁移的目标函数;步骤3.3,获取虚拟机迁移过程中的受到的约束条件;步骤3.4,将动态迁移调整虚拟机问题转化为多约束条件的最优化问题;步骤3.5,利用整数线性规划ilp算法求解问题最优化问题。进一步地,步骤3.1中所示的可以节省的能耗f表示为:上式中,m'表示处于非空闲状态的服务器数量,满足m'<m,m为云计算中心服务器的总数;pi,idle是处于空闲状态服务器的功耗;yi是服务器空闲与否的标识;p'k是迁移虚拟机k所需功耗;三维变量zijk表示将虚拟机k从服务器i迁移到服务器j;qi表示服务器i上运行的虚拟机数目。进一步地,步骤3.2中所述的目标函数为求解步骤3.1中所述能耗f的最大值。进一步地,步骤3.3中所述的约束条件表示如下:上式中,zijk表示将虚拟机k从服务器i迁移到服务器j;zjlk'表示将虚拟机k'从服务器j迁移到服务器l;m'表示处于非空闲状态的服务器数量;pk是迁移虚拟机k所需功耗;pj,max为服务器j的功率上限;pj,current为服务器j的当前功率;yi表示服务器是否空闲,若因虚拟机迁移导致服务器处于空闲状态则yi置1,否则yi置0;表示处于工作中的服务器数量的下限。一种能效优先的云资源分配与调度系统,包括依次连接的虚拟机分配管理模块、能耗评估模块以及能量感知调度器,其中:所述的虚拟机分配管理模块用于处理客户端的请求以及调度虚拟机;所述的能耗评估模块用于计算虚拟机和服务器的功耗;所述的能量感知调度器用于在云计算中心放置虚拟机。进一步地,步所述的能量感知调度器包括分配模块和迁移模块,其中,所述的分配模块用于将虚拟机放置在初始位置,所述的迁移模块通过动态整合虚拟机,使得处于使用或激活状态的服务器数量最小化。本发明与现有技术相比具有以下技术特点:1.本发明基于扩展装箱算法设计了能效优先的虚拟机分配方法,并采用空间受限在线算法来求解扩展装箱问题。该方法综合考虑了首次适应策略和最佳适应策略,计算复杂度合理,性能良好。2.在服务器上运行的虚拟机随着任务结束逐渐离开系统,服务器的负荷发生了变化,此时最初按照能效优先目标设计的虚拟机分配方案已经不能继续满足最低能耗要求。本发明基于整数线性优化算法设计的动态虚拟机迁移方法能将运行的虚拟机动态地集成到最少数量的云服务器中,从而进一步提高云计算中心的能效。3.本发明采用动态虚拟机迁移方法与能效优先的虚拟机分配方法分阶段协同工作,能有效减小云计算中心的总能耗。附图说明图1是本发明设计的系统模型;图2空间受限在线算法求解扩展装箱问题的流程图;图3是隐形枚举法算法流程图;图4是本发明方法与其他方法的能耗对比图;图5是本发明方法与其他方法所节省的能耗对比图。具体实施方式以下参照附图对本发明的技术方案作进一步详细描述。本发明的能效优先的云资源分配与调度方法的步骤如下:步骤一,客户端将应用程序打包成虚拟机,生成虚拟机请求,并将虚拟机请求发送到云计算中心;云计算中心根据所述的虚拟机请求,建立所述分配过程的线性约束条件;所述的云计算中心包括多台服务器。虚拟机请求分配过程受到的线性约束条件包括一个服务器最多只能运行确定数目的虚拟机;一个虚拟机只能运行在一个服务器上;只有在剩余资源足够时,服务器才能运行更多的虚拟机。其约束条件的数学表达形式如下:(1)云计算中心依据与用户事先约定的服务质量协议,接纳到达的服务请求,为服务请求安排虚拟机并将每个虚拟机分配到一个服务器上:上式中,二维变量xij表示虚拟机vmi是否在服务器j上工作,若在服务器上工作xij置为1,否则xij置为0;n为请求虚拟机的总数;m为云计算中心的服务器的总数。(2)服务器j的功率上限与当前功率之间的制约关系是:上式中,pi是虚拟机vmi的最大功耗,是虚拟机的固有参数;xij表示虚拟机vmi是否在服务器j上工作;pj,max为服务器j的功率上限;ej为决策变量,如果服务器j为虚拟机提供运行环境,则ej的值置为1,否则ej置为0;即,只要服务器j上运行任何一个虚拟机,则ej的值置为1,表示服务器处于j处于正常工作状态,而服务器j上运没有虚拟机运行时,则ej的值置为0;pj,current为服务器j的当前功率;(3)服务器上运行的虚拟机数量不断发生变化,服务器的功率也相应发生变化,当pj,max>pj,current且pj,current≠0时,处于工作中的服务器数量的下限是由于工作运行的服务器数量须大于等于服务器数量的下限,得到以下不等式:步骤二,云计算中心根据所述线性约束条件,将虚拟机分配至不同的服务器本发明中,为了更好地实现虚拟机的分配,提出了一种基于多约束条的扩展箱算法的虚拟机分配方法。本发明的虚拟机分配算法的理论基础是扩展装箱算法,目标是把一些物品(虚拟机)装入一组以功耗为特征参数的箱子(为虚拟机提供运行环境的服务器)。具体步骤如下:步骤2.1,构建能效优先的虚拟机分配的优化目标函数假设云计算中心的服务器数量为m,我们给每一个服务器j定义一个关键决策变量ej,如果服务器j为虚拟机提供运行环境,则ej的值置为1,否则ej置为0。以扩展装箱算法为理论基础,把虚拟机装入以功耗为特征参数的服务器中,将所有的虚拟机安置在服务器上,确保服务器的数量n最小,由此建立目标函数:步骤2.2,将虚拟机分配问题转化为多约束条件的最优化问题;设云计算中心的每个服务器的功率上限相同,表示为pj,max,{j=1,2,…m};请求虚拟机的总数为n,虚拟机vmi的特征是寿命ti和最大功耗pi;定义二维变量xij,如果虚拟机vmi在服务器j上工作,则xij置为1,否则xij置为0。pj,max表示服务器j的功率上限;pj,current表示服务器j当前的功率;pj,idle表示服务器空闲时的能耗功率,pj,current与pj,idle之间的关系:优化过程受到的线性制约条件是:一个服务器最多只能运行确定数目的虚拟机;一个虚拟机只能运行在一个服务器上;只有在剩余资源足够时,服务器才能运行更多的虚拟机,本方案中以步骤二中给出的式(1)至式(3)作为目标函数的约束条件。按照虚拟机vmi的需求为其选择合适的服务器,按需匹配计算资源,实现能效优先的云资源分配。将减小运行服务器的数量、提高能效问题转化为以式(1)、(2)、(3)为约束条件的式(4)的优化问题,即:步骤2.3,求解所述的最优化问题,根据求解结果实现虚拟机的合理分配。问题p属于多约束条件扩展装箱问题,多约束条件的扩展装箱问题可以利用空间受限在线算法来求解。本实施例中,采用空间受限在线算法来求解扩展装箱问题,该算法综合考虑了首次适应策略和最佳适应策略,计算复杂度合理,性能良好。空间受限在线算法求解扩展装箱的流程图见图2:经过图2的计算过程,求解出虚拟机安置矩阵x:如果xij=1,则将其对应的虚拟机vmi安置在服务器上。步骤三,根据虚拟机分配后任务完成情况,本发明提出基于整数线性规划的动态虚拟机迁移方法,在服务器上运行的虚拟机随着任务结束逐渐离开系统,此时收集服务器资源利用率的实时信息,将运行的虚拟机动态地集成到最少数量的服务器中,然后将空闲服务器置入低功耗模式。步骤3.1,推导通过迁移虚拟机可以节省的能耗;设存在一组处于非空闲状态数目为m'的服务器,这些服务器的运行功率小于功率上限,且运行在这些服务器上的虚拟机可能会迁移出去。显然,减小m'的问题是np-hard问题。通过虚拟机迁移,建立可节省的能耗函数f表示为:上式中,m'表示处于非空闲状态的服务器数量,满足m'<m;pi,idle是处于空闲状态服务器的功耗;yi是服务器空闲与否的标识;p'k是迁移虚拟机k所需功耗;三维变量zijk表示将虚拟机k从服务器i迁移到服务器j;qi表示服务器i上运行的虚拟机数目;步骤3.2,获取虚拟机整合迁移的目标函数;通过求解可节省的能耗函数f的最大值,可以得到虚拟机整合迁移的目标函数,计算公式为:步骤3.3,获取虚拟机迁移过程中的受到的约束条件;虚拟机迁移过程中受到条件约束,需满足的约束条件包括虚拟机从一个服务器i迁移到另一个不同的服务器j中(i≠j);虚拟机不能多次迁移;虚拟机迁移消耗的功率不能过大;完成虚拟机迁移后工作运行的服务器数量要大于等于运行服务器数量的下限。约束条件的具体表现公式为:其中:zijk表示将虚拟机k从服务器i迁移到服务器j;zjlk'表示将虚拟机k'从服务器j迁移到服务器l;m'表示处于非空闲状态的服务器数量;pk是迁移虚拟机k所需功耗;pj,max为服务器j的功率上限;pj,current为服务器j的当前功率;yi表示服务器是否空闲,若因虚拟机迁移导致服务器处于空闲状态则yi置1,否则yi置0;表示处于工作中的服务器数量的下限。步骤3.4,将迁移调整虚拟机问题转化为多约束条件的最优化问题;即将式为(8)约束条件的式(7)的优化问题。可以表示为:步骤3.5,利用整数线性规划ilp(integerlinearprogramming,ilp)算法求解问题最优化问题,根据求解结果,将处于运行状态的虚拟机迁移到最少数量的服务器中,然后将空闲服务器置入低功耗模式。求解问题p可采用美国lindo系统公司(lindosysteminc.)的“交互式的线性和通用优化求解器”lingo(linearinteractiveandgeneraloptimizer,lingo),也可利用隐形枚举法求解。利用lingo优化求解器求解问题p:在编辑窗口第一行需要输入以max开头的目标函数;其次,在第二行输入“st”,表示约束条件;再次,从第三行开始输入约束条件;最后,以“end”结束本次数学模型的输入。注意在“end”之后做出变量申明,int变量表示变量为0/1整数变量,gin变量表示变量为整数变量,运行后可获得可行解矢量利用隐形枚举法求解问题p中的可行解算法的流程见图3。获得可行解矢量后,如果zijk=1,则将vmk从服务器i迁移到服务器j;否则保持vmk工作在原服务器上。基于整数线性规划的动态虚拟机迁移方法可以最小化工作主机数目,最大化空闲主机的数目,实现最佳迁移,有效减小云计算中心能耗。本发明还提供了一种用于实现上述方法的系统,该系统包括依次连接的虚拟机分配管理模块、能耗评估模块以及能量感知调度器,其中:所述的虚拟机分配管理模块用于处理客户端的请求以及调度虚拟机;所述的能耗评估模块位于虚拟机分配管理模块和能量感知调度器之间,用于计算虚拟机和服务器的功耗;所述的能量感知调度器用于在云计算中心放置虚拟机;具体地,能量感知调度器是由分配模块和迁移模块两个功能模块组成,其中,分配模块的作用是通过本发明提出的虚拟机分配方法把虚拟机放置在初始位置;迁移模块通过动态整合虚拟机,使得处于使用或激活状态的服务器数量最小化。在该模型中,将云用户的应用程序等效于虚拟机,将设备运营商提供的物力资源等效于服务器,具体实现过程为:客户端将应用程序打包成虚拟机,生成虚拟机请求,将虚拟机请求发送到虚拟机分配管理模块,虚拟机分配管理模块进行客户端请求的处理;同时能耗评估模块利用能源评估工具计算虚拟机和服务器的功耗,为合理分配虚拟机做准备工作。根据能耗评估模块的结果,能量感知调度器中的分配模块将云用户的虚拟请求放置最佳服务器位置。当数量足够多的服务离开时,能量感知调度器中的迁移模块动态调整整合虚拟机,尽量释放服务器,并将其转为睡眠模式或将其关闭。本发明的效果可以通过以下仿真实验进一步说明:1.仿真条件根据系统模型进行仿真实验,设仿真过程中虚拟机功率需求在[0,1]内随机均匀分布,虚拟机到达时间符合泊松过程,虚拟机处理时间遵循指数分布,具体的参数设置如下表所示:参数数值云服务器台数m10虚拟机数量n{100,200,300}每台云服务器的最大功率pj,max20每台云服务器平均承载虚拟机数402.仿真内容仿真1:分别采用本发明方法、随机分配方法和仅采用能效分配法,在模拟的系统中进行云资源分配与调度仿真,得到图4。图4表明,随机分配方法结果归一化下本发明方法与随机分配方法和仅采用能效分配法能耗相比,可以节省云计算环境下资源分配与调度所需的能耗。仅采用能效优先分配方法,在虚拟机数量为100、200、300的系统中降低能耗成本分别为17.9%、15.9%、12%;采用能效优先云资源分配与调度方法时,降低能耗成本分别为24.8%、21.6%、15.3%。仿真2:分别采用本发明方法和仅采用能效分配法,在模拟的系统中进行云资源分配与调度仿真,得到图5。图5表明,服务器在不同负荷状态下,本发明方法比仅采用能效分配法所节省的能耗多。但随着服务器负载的增加,两种方法所节省的能耗逐渐减少,因为在高负载下虚拟机的配置优化可能性减少,算法带来的收益有所降低。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1