专利名称:虚拟化数据中心资源分配方法及虚拟机监控器的制作方法
技术领域:
本发明涉及一种虚拟化数据中心资源分配方法及虚拟机监控器,属于虚拟化数据中心的资源分配技术领域。
背景技术:
虚拟化技术是一种允许多个操作系统实例并发且独立运行在相同的硬件资源上的技术。该技术的核心是利用虚拟机监控器统一管理和调度这些虚拟机在相应服务提供的硬件资源上执行。利用虚拟化技术,将应用独立封装在虚拟机中,由于虚拟机之间相互隔离,因此允许多个异构的应用运行在同一台服务器,从而实现了应用的聚合。
现有应用了虚拟化技术的数据中心将物理资源集中在一起形成一个共享虚拟资源池,用户可以通过租借的方式按需使用计算资源,并采用量入为出的收费方式。然而,现有虚拟化技术仅根据用户需求进行资源分配,而用户为应用请求资源时往往具有盲目性, 他们往往最大的资源使用量来申请资源,使得用户所请求构建的虚拟机的资源需求量往往高于虚拟机运行时的最终资源消耗量,从而造成资源的过量分配,使资源利用率过低,也使更多的应用请求无法得到满足。发明内容
本发明提供一种虚拟化数据中心资源分配方法及虚拟机监控器,用以减少资源的过量分配,提高资源利用率。
本发明一方面提供一种虚拟化数据中心资源分配方法,其中包括
虚拟机监控器根据接收到的用户应用请求中所请求构建的虚拟机,选择用于运行所述虚拟机的执行服务器;
在所述执行服务器上为各个所述虚拟机分配能够满足该虚拟机的资源需求量的初始资源,并基于该初始资源构建所述虚拟机;
在所述虚拟机的预设运行时段内统计该虚拟机的历史资源消耗量;
根据所述历史资源消耗量及所述资源需求量确定超售比率0,其中,0 e
;
在所述执行服务器上为各个所述虚拟机分配最终资源,该最终资源=A(O),并基于该最终资源重新构建所述虚拟机,其中,A为所述历史资源消耗量的累积分布函数。
本发明另一方面提供一种虚拟机监控器,其中包括
服务器选择模块,用于根据接收到的用户应用请求中所请求构建的虚拟机,选择用于运行所述虚拟机的执行服务器;
初始分配模块,用于在服务器选择模块选择的所述执行服务器上为各个所述虚拟机分配能够满足该虚拟机的资源需求量的初始资源,并基于该初始资源构建所述虚拟机;
历史统计模块,用于在初始分配模块构建的所述虚拟机的预设运行时段内统计该虚拟机的历史资源消耗量;
超售计算模块,用于根据历史统计模块统计到的所述历史资源消耗量及所述资源需求量确定超售比率0,其中,Oe
;
最终分配模块,用于在服务器选择模块选择的所述执行服务器上为各个所述虚拟机分配最终资源,该最终资源=A(O),并基于该最终资源重新构建所述虚拟机,其中,A为所述历史资源消耗量的累积分布函数。
本发明通过基于计算得到的超售比率0减少分配给虚拟机的资源,从而在尽可能保证虚拟机正常运行的前提下,减少了资源的过量分配,提高了资源的利用率。
图1为本发明所述虚拟化数据中心资源分配方法实施例的流程图2为图1所示步骤100的可选流程图3为本发明所述虚拟机监控器实施例的结构示意图4为图3所示服务器选择模块11的具体结构示意图。
具体实施方式
图1为本发明所述虚拟化数据中心资源分配方法实施例的流程图,如图所示,该方法包括如下步骤
步骤100,虚拟机监控器根据接收到的用户应用请求中所请求构建的虚拟机,选择用于运行所述虚拟机的执行服务器。
其中,所述用户应用请求是由用户发来的请求构建虚拟机以便实现具体应用的请求,待构建的虚拟机可能有一个或多个;所述执行服务器是用于为待构建的虚拟机提供资源以便运行虚拟机的服务器。具体的选择过程可以采用贪心算法,将在后续内容进行说明。
步骤200,在所述执行服务器上为各个所述虚拟机分配能够满足该虚拟机的资源需求量的初始资源,并基于该初始资源构建所述虚拟机。
其中,所述初始资源是指按照用户的需求而分配的资源,该初始资源的大小能够满足各个虚拟机的资源需求量。如前述的背景技术所述,用户需求往往带有盲目性,因此, 所分配的该初始资源往往要大于虚拟机实际的资源消耗量,其中多出的部分在本实施例中称为超售资源。
步骤300,在所述虚拟机的预设运行时段内统计该虚拟机的历史资源消耗量。
其中,所述预设运行时段内是使虚拟机基于初始资源而运行的一段时间,目的是为了在这段时间内获取虚拟机实际占用的历史资源消耗量,以便作为后续评估超售资源时的参照。
步骤400,根据所述历史资源消耗量及所述资源需求量确定超售比率0,其中, 0 e
。
其中,所述超售比率0是指超售资源将以(1-0) %的概率满足用户的资源请求。用数学式可以表达为Pr(x>A(0)) <=0%,其中,A(O)表示以超售比率0为该虚拟机分配的超售资源,χ表示该虚拟机的历史资源消耗量,ft"表示概率。超售比率0的变化范围在 0 100之间,0 = 0,表示没有超售,完全按照用户请求分配资源;0 = 100时,则分配资源为零。
当确定所述超售比率0时,可以考虑实际收益求解如下方程
E(R|0) = ReqXprice-A(O) Xprice—( Σ Req) XcostXPr (χ
> (A(O)+A'))
其中,E (RI 0)表示在超售比率0的条件下构建一个虚拟机的预期收益值,Req表示该虚拟机的资源需求量,price表示资源收益单价,可以根据服务等级协议(Service Level Agreement,简称SLA)确定,A(O)表示以超售比率0为该虚拟机分配的超售资源,其满足资源消耗概率的累积分布函数(Cumulative Distribution Function,简称CDF),Σ Req表示该虚拟机所在执行服务器上运行的全部虚拟机的资源需求量的总和,cost表示冲突赔偿单价,可以根据SLA确定,χ表示该虚拟机的历史资源消耗量,A'表示该虚拟机所在执行服务器上为除该虚拟机以外的虚拟分配的最终资源,Pr表示概率。
上式的实际意义为为一个虚拟机分配的资源越多,收益越多,但超售资源实际上没有被充分利用,从而阻碍了构建更多虚拟机,因此减去超售资源获得的收益,另外还减去发生虚拟机冲突时付出的赔偿费用。有关虚拟机冲突将在后续内容进行介绍。具体的方程求解过程可以采用迭代法实现,以下举一例说明
权利要求
1.一种虚拟化数据中心资源分配方法,其特征在于,包括虚拟机监控器根据接收到的用户应用请求中所请求构建的虚拟机,选择用于运行所述虚拟机的执行服务器;在所述执行服务器上为各个所述虚拟机分配能够满足该虚拟机的资源需求量的初始资源,并基于该初始资源构建所述虚拟机;在所述虚拟机的预设运行时段内统计该虚拟机的历史资源消耗量; 根据所述历史资源消耗量及所述资源需求量确定超售比率0,其中,0 e
; 在所述执行服务器上为各个所述虚拟机分配最终资源,该最终资源=A(O),并基于该最终资源重新构建所述虚拟机,其中,A为所述历史资源消耗量的累积分布函数。
2.根据权利要求1所述的方法,其特征在于,所述虚拟机监控器选择所述服务器包括 收集位于接入层的全部服务器的可用资源信息;根据收集到的可用资源信息将能够构建所述虚拟机的服务器确定为备选服务器;将与聚合层中同一个交换机直接相连的备选服务器划分成一个备选组;根据各个所述虚拟机的资源需求信息统计各个所述备选组最多能够构建的虚拟机的数量;根据统计到的所述数量从大到小的顺序依次选择相应的备选组,直到被选中的备选组对应的所述数量的总和等于待构建的虚拟机的总数;将被选中的所述备选组中的备选服务器选择为所述执行服务器。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述历史资源消耗量确定超售比率0包括根据如下方程计算所述0的值,E(R|0) = ReqXprice-A(O) Xprice-( Σ Req) XcostXPr (χ > (A(O)+A'))其中,E(R|0)表示在超售比率0的条件下构建一个虚拟机的预期收益值,Req表示该虚拟机的资源需求量,price表示资源收益单价,A(O)表示以超售比率0为该虚拟机分配的超售资源,Σ Req表示该虚拟机所在执行服务器上运行的全部虚拟机的资源需求量的总和,cost表示冲突赔偿单价,χ表示该虚拟机的历史资源消耗量,A'表示该虚拟机所在执行服务器上为除该虚拟机以外的虚拟分配的最终资源,Pr表示概率。
4.根据权利要求3所述的方法,其特征在于,还包括当所述执行服务器上的多个虚拟机之间发生冲突时,将发生冲突的虚拟机迁移到同一备选组中的另一个执行服务器上。
5.根据权利要求4所述的方法,其特征在于,所述将发生冲突的虚拟机迁移到所述另一个执行服务器上包括将发生冲突的虚拟机中占用内存空间最小的虚拟机迁移到所述另一个执行服务器上。
6.一种虚拟机监控器,其特征在于,包括服务器选择模块,用于根据接收到的用户应用请求中所请求构建的虚拟机,选择用于运行所述虚拟机的执行服务器;初始分配模块,用于在服务器选择模块选择的所述执行服务器上为各个所述虚拟机分配能够满足该虚拟机的资源需求量的初始资源,并基于该初始资源构建所述虚拟机;历史统计模块,用于在初始分配模块构建的所述虚拟机的预设运行时段内统计该虚拟机的历史资源消耗量;超售计算模块,用于根据历史统计模块统计到的所述历史资源消耗量及所述资源需求量确定超售比率0,其中,0 e
;最终分配模块,用于在服务器选择模块选择的所述执行服务器上为各个所述虚拟机分配最终资源,该最终资源=A(O),并基于该最终资源重新构建所述虚拟机,其中,A为所述历史资源消耗量的累积分布函数。
7.根据权利要求6所述的虚拟机监控器,其特征在于,所述服务器选择模块包括收集单元,用于收集位于接入层的全部服务器的可用资源信息;备选单元,用于根据收集单元收集到的可用资源信息将能够构建所述虚拟机的服务器确定为备选服务器;划分单元,用于针对由备选单元确定的所述备选服务器,将与聚合层中同一个交换机直接相连的备选服务器划分成一个备选组;统计单元,用于根据各个所述虚拟机的资源需求信息统计由划分单元划分的各个所述备选组最多能够构建的虚拟机的数量;选择单元,用于根据统计单元统计到的所述数量从大到小的顺序依次选择相应的备选组,直到被选中的备选组对应的所述数量的总和等于待构建的虚拟机的总数,并将被选中的所述备选组中的备选服务器选择为所述执行服务器。
8.根据权利要求6或7所述的虚拟机监控器,其特征在于,所述超售计算模块用于根据如下方程计算所述0的值,E(R|0) = ReqXprice-A(O) Xprice-( Σ Req) XcostXPr (χ > (A(O)+A'))其中,E(R|0)表示在超售比率0的条件下构建一个虚拟机的预期收益值,Req表示该虚拟机的资源需求量,price表示资源收益单价,A(O)表示以超售比率0为该虚拟机分配的超售资源,Σ Req表示该虚拟机所在执行服务器上运行的全部虚拟机的资源需求量的总和,cost表示冲突赔偿单价,χ表示该虚拟机的历史资源消耗量,A'表示该虚拟机所在执行服务器上为除该虚拟机以外的虚拟分配的最终资源,Pr表示概率。
9.根据权利要求8所述的虚拟机监控器,其特征在于,还包括虚拟机迁移模块,用于当服务器选择模块选择的所述执行服务器上的多个虚拟机之间发生冲突时,将发生冲突的虚拟机迁移到同一备选组中的另一个执行服务器上。
10.根据权利要求9所述的虚拟机监控器,其特征在于所述虚拟机迁移模块用于当服务器选择模块选择的所述执行服务器上的多个虚拟机之间发生冲突时,将发生冲突的虚拟机中占用内存空间最小的虚拟机迁移到所述另一个执行服务器上。
全文摘要
本发明提供一种虚拟化数据中心资源分配方法及虚拟机监控器,其中方法包括虚拟机监控器根据接收到的用户应用请求中所请求构建的虚拟机,选择用于运行所述虚拟机的执行服务器;在所述执行服务器上为各个所述虚拟机分配能够满足该虚拟机的资源需求量的初始资源,并基于该初始资源构建所述虚拟机;在所述虚拟机的预设运行时段内统计该虚拟机的历史资源消耗量;根据所述历史资源消耗量及所述资源需求量确定超售比率O,其中,O∈
;在所述执行服务器上为各个所述虚拟机分配最终资源,该最终资源=A(O),并基于该最终资源重新构建所述虚拟机,其中,A为所述历史资源消耗量的累积分布函数。本发明减少了资源的过量分配,提高了资源利用率。
文档编号G06F9/50GK102521052SQ201110401620
公开日2012年6月27日 申请日期2011年12月6日 优先权日2011年12月6日
发明者孙倩, 怀进鹏, 李博, 沃天宇, 胡春明 申请人:北京航空航天大学