一种新的云环境虚拟机调度方法

文档序号:9843968阅读:406来源:国知局
一种新的云环境虚拟机调度方法
【技术领域】
[0001] 本发明属于计算机技术领域,涉及云环境下虚拟机迀移算法。
【背景技术】
[0002] 现今云计算在理论及技术上发展强劲,逐渐成为人们关注的焦点和未来计算模式 的发展趋势。随着越来越多的应用服务提供商和中小型企业把应用部署到云平台上,云平 台数据中心的数据逐渐增多,需要的服务器也逐渐增多,但是资源利用率不高、能量消耗大 以及负载失衡等现象却普遍存在于云数据中心,制约着平台的发展。

【发明内容】

[0003] 本发明的目的是提高云平台主机资源利用率,维持系统的负载均衡并减少能量消 耗,根据云平台的特点,提出了一种新的虚拟机动态调度算法。
[0004] 本发明的技术方案为:
[0005] 云环境下虚拟机动态迀移问题,目的在于平衡系统中各节点的负载,实现资源的 动态调度,主要涉及的问题包括以下三个方面:一是虚拟机迀移的处罚机制,即哪个节点需 要进行虚拟机迀移;二是源节点中带歉意的虚拟机的选取,及这个节点中需要迀移哪些虚 拟机;三是目的节点的选取,即将这些虚拟机迀移到哪些节点上。三者之间的关系可以用图 1动态迀移流程图来表示。
[0006] 第一个问题,一个节点的工作负载可以用节点的CPU使用率和内存使用率计算而 得,采用加权因子W=[W1, W2]对两种资源的利用率进行加权计算,具体该节点的负载定义为 WorkLoad: WorkLoad=wiCUSage (t) +W2Mem usage (t)
[0007] C_ge为该节点在时亥Ijt的CPU使用率,Memusag(3为该节点在时亥Ijt的内存使用率,式 中 W1+W2 = 1 〇
[0008] 用WorkLoadi表示节点i的负载,B表示系统负载均衡度,系统中有η个节点,则B可 以用以下公式求得:
[0009]当负载过高时,显然需要对节点内虚拟机进行迀移,而负载过低时,节点几乎处于 空闲状态,而基础电能却依然在消耗,故也应该将该节点内虚拟机迀出,从而关闭节点,以 达到节约能源的效果。故而我们给出要求,当WorkLoad高于80 %或者低于30 %的时候触发。
[0010] 第二个问题,CPU作为核心资源,是虚拟机是否迀移的第一因素,而所占内存决定 论迀移时间,故而对于一个虚拟机而言,CPU使用量占该节点CPU总量的百分比为匕,虚拟机 内存使用量占该节点内存总量的百分比为Mi,Ui为CPU使用率和内存使用率的比值,即: Ui = Ci/Mi
[0011] 在选取虚拟机的时,该虚拟机的Ci越大越好,Mi越小越好,即Ui越大越好。
[0012] 在选取虚拟机前,先将该节点上虚拟机的仏进行排序,选取U最大的虚拟机进行迀 移。
[0013] 第三个问题,目的节点的选取直接影响系统数据中心运行节点的负载均衡情况。 [00M] 本文中用CPU使用率、内存、网络带宽的三维向量〈0?1],1^111,此〇来描述虚拟机和 目的节点的资源。
[0015]定义迀移虚拟机i对目的节点j的资源需求向量Dijvm= (dijcpu,dijmem,dijnet),计算 公式如下: di jcpu = CPUi-need/ ( CPUj-total-CPUj-use-CPU j-reserve ) dijmem- MeiTli-need/ ( Mem j-total_MeiTlj-use_Menij_ reserve ) di jnet - Neti need/ (Νθ? j total-Νθ? j_use-Νθ? j-reserve )
[0016] i_need表示虚拟机i所需的CPU资源、内存资源、带宽资源,j_total表示节点j的 CPU资源、内存资源、带宽资源的总量,j_use表示节点j的CPU资源、内存资源、带宽资源已使 用量,j_r es erve表示节点j的CPU资源、内存资源、带宽资源的预留量。
[0017] 只有的值均在(0,1)时,才能满足迀移虚拟机对节点的资源需 求。
[0018]设定权值向量W= (Wi,W2,W3),对三种资源需求进行加权计算,得到虚拟机i对节点 j的需求量Si j: Si j = Di(其中 W1+W2+W3 = 1)
[0019 ] Si j在(0,1)内,Si j越大,将该虚拟机迀移至该节点后,该节点的状态越趋近于达到 上限。
[0020] 这样的迀移,会导致其他虚拟机的Su较小而无法找到合适的目的节点,拥有更多 资源的节点却无法接收到迀移的虚拟机,无法满足负载均衡。
[0021] 在此,定义虚拟机i对节点j的匹配度M1J: Mij = l_Sij
[0022] Mi j也在(0,1)内,Mi j越大,虚拟机i对该节点j的需求越高,虚拟机迀移到该节点的 可能性越大,虚拟机i和节点j的匹配度越高。
[0023] 资源多,性能好的节点能匹配到相对多的虚拟机,此时就容易引起群聚效应,为避 免群聚效应的发生,采用概率轮盘来进行目的节点的选择。
[0024] 定义虚拟机i最终选择目的节点j的概率为:
[0025] 为虚拟机i对节点j的匹配度。
[0026] 共有η个目的节点可以选取。其中,
[0027] 在实现过程中,可以通过一个(0,1)的随机数字来判断所在的区间,实现虚拟机目 的节点的选取。
[0028] 本发明的有益效果是:根据虚拟机迀移的特点,分别对待迀移节点的选择、节点中 虚拟机的选择以及目的节点的选择三个问题进行研究以及说明,对系统能耗、CPU资源、内 存资源、带宽资源进行综合考虑,最后通过概率轮盘来决定最终的选择。本发明可以提高云 平台的稳定性,有助于提高工作效率,减少硬件损耗。
【附图说明】
[0029] 本发明有如下附图:
[0030] 图1动态迀移流程图。
[0031] 图2节点能耗图。
[0032]图3节点负载状态分类图。
[0033] 图4上线阈值触发迀移模拟图。
[0034] 图5下线阈值触发迀移模拟图。
[0035]图6虚拟机i的选择概率轮盘图。
【具体实施方式】
[0036 ]参照说明书附图对本发明作以下详细地说明。
[0037] 该发明包括三部分内容,其一是虚拟机迀移的触发机制,即哪个节点需要进行虚 拟机迀移;其二是源节点中待迀移的虚拟机的选取,即这个节点中需要迀移哪些虚拟机;其 三是目的节点的选取,即将这些虚拟机迀移到哪些节点上。具体如下:
[0038] 第一,虚拟机迀移的触发机制:
[0039] 定义 1,能耗(Power Consumption) 〇
[0040] -般情况下,一个节点的电能消耗绝大部分来自于CPU的使用,与CPU的使用率近 似成以下关系:
[0041] P为电能消耗总和,Cu胃为节点CPU使用率,Fmax为满负载情况下节点的电能消耗,k 为空闲情况下节点电能消耗占满负载情况下电能消耗的比例。
[0042] 由公式可以看出当Fmax确定,且k值一定时,该节点的电能消耗P的大小只取决于该 节点CPU的利用率Cusag(3,节点从空闲到满负载的电能消耗与CPU利用率近似成线性关系。
[0043] 如图2所示。随着利用率升高,节点的能耗增加并不大,但是利用率为0 % (即空闲节点)的能耗却很高,所以应在保持节点能正常运行的情况下,尽量提高节点的负 载,并且将空闲出来的节点关掉,以此来有效的减少电能消耗。
[0044] 定义2,工作负载(Work Load)。
[0045] 一个节点的工作负载可以用节点的CPU使用率和内存使用率计算而得,采用加权 因子w= [ wi,W2 ]对两种资源的利用率进行加权计算,具体该节点的负载定义为WorkLoad: W〇rkL〇cld - WlCusage ( ? ) ~^W2M6niusage ( ? )
[0046] C_ge为该节点在时亥Ijt的CPU使用率,Mem_ge为该节点在时亥Ijt的内存使用率,式 中 W1+W2 = 1 〇
[0047]定义3,负载均衡度(Load Balance)。
[0048] WorkLoadi表示节点i的负载,B表示系统负载均衡度,系统中有η个节点,则B可以 用以下公式求得:
[0049] B越小,说明各节点间负载差值越小,系统负载越均衡。
[0050] 定义4,节点负载等级(Node Load Level):根据节点负载的大小,将各节点负载分 为如图3所示四个等级:
[0051 ]根据对节点负载定义,设定双阈值触发机制:基于节点负载的上线阈值触发迀移 和下线阈值触发迀移,如图4和图5。
[0052] 采用双阈值触发主要是基于两方面的考虑,上线阈值的设定主要是为了避免节点 负载过高,无法满足用户需求,或者因负载过高导致节点运行出现故障;下线阈值的设定主 要是为了尽量减少运行节点的数量,达到节能的效果。
[0053] 节点的负载信息包括了CPU的利用率、内存的使用率,能更加准确地描述资源的使 用情况,单一的CHJ利用率或内存利用率无法真实反映资源的使用情况。
[0054] 实时更新节点负载信息容易出现瞬时低谷或高峰现象,可能节点负载瞬间超出了 设定阈值,但是能在短时间内迅速恢复下来。
[0055] 为了避免因瞬间的振荡而错误地迀移,引
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1