一种虚拟化集群系统负载平衡方法、装置及系统的制作方法

文档序号:6576185阅读:152来源:国知局
专利名称:一种虚拟化集群系统负载平衡方法、装置及系统的制作方法
技术领域
本发明涉及电子通信技术领域,具体涉及一种虚拟化集群系统负载平衡方法、装置及系统。
背景技术
系统级虚拟化是在计算机硬件和操作系统之间增加虚拟机监控器(VMM,Virtual Machine Monitor),以解除计算机硬件和计算机操作系统之间的直接依赖关系,这里的虚拟机监控器为一计算机硬件平台虚拟化的软件,通过虚拟机监控器,可以在同一计算机上运行多个虚拟机实例,每个虚拟机上具有相应的机器名、独立的虚拟网络地址,且每个虚拟才几上的用户管理相互独立,使用分配的部分设备资源。将具有独立运算存储能力的硬件设备(如包括CPU、内存、硬盘等硬件资源的计算机)看作一个物理节点,由多个物理节点组成的集群称为虚拟化集群系统,为有效管理虚拟化集群系统中的多个物理节点以及每个物理节点上的多个虚拟机,需要相应的集群负载平衡技术。虛拟化集群系统的负载平衡技术包括同 一物理节点上虚拟机间的负载平衡、虛拟化集群系统中多个物理节点间的负载平衡等。
现有技术一般采用基于效率损失的平衡算法,针对一台虚拟机,效率损失定义为其可以完成最大效率与其当前实际完成效率的差值,其中,最大效率是该虛拟机在所有物理节点上执行可能获得的最大效率;当前效率是指其所在当前物理节点上的效率。负载平衡的目标是使得虚拟机间效率损失的差异最小。
发明人在实现本发明过程中发现,基于效率损失的平衡算法至少存在以下缺点
在计算效率损失时需要全部虚拟机参与,进行全局计算,因此确定迁移虛拟机及其迁移到的目的物理节点的开销较大。

发明内容
本发明实施例在于提供一种虚拟化集群系统负载平衡方法、装置及系统, 以降低在实现虚拟化集群系统负载平衡时所需的开销。
本发明实施例是通过以下技术方案实现的
本发明实施例提供了 一种虚拟化集群系统负载平衡方法,包括如下步骤
获取虚拟化集群系统中物理节点中虛拟机的负载信息,所述负载信息包 括所述虚拟机的CPU使用率和内存使用大小;
根据所述负载信息在第一时刻得到第一负载信息,根据所述第一负载信 息调整所述物理节点中虚拟机的CPU使用率和内存使用大小;
根据所述负载信息在第二时刻得到第二负载信息,根据所述第二负载信 息调整所述虚拟化集群系统中所述物理节点间虛拟机的迁移。
本发明实施例还提供了 一种虚拟化集群系统负载平衡装置,包括
负载信息获取单元,用于获取虚拟化集群系统中物理节点中虚拟机的负 载信息,所述负载信息包括所述虚拟机的CPU使用率和内存使用大小;
局部负载平衡单元,用于根据所述负载信息在第一时刻得到的第一负载 信息,根据所述第一负载信息调整所述物理节点中虚拟机的CPU使用率和内 存使用大小;
全局负载平衡单元,用于根据所述负载信息在第二时刻得到第二负载信 息,根据所述第二负载信息调整所述虚拟化集群系统中所述物理节点间虚拟 才几的迁移。
以及,本发明实施例还提供了一种虛拟化集群系统负载平衡系统,包括 物理节点,管理节点,所述管理节点为具有管理功能的物理节点; 所述物理节点包括虚拟机监控器,用于在所述物理节点上运行虛拟机; 所述虚拟机监控器还用于获取虚拟化集群系统中所述物理节点中虚拟
机的负载信息,所述负载信息包括所述虚拟机的CPU使用率和内存使用大小; 所述物理节点还包括局部调度器,用于根据所述负载信息在第一时刻得
到第一负载信息,根据所述第一负载信息调整所述物理节点中虚拟机的CPU
使用率和内存使用大小;
所述管理节点包括全局调度器,用于根据所述负载信息在第二时刻得到第二负载信息,根据所述第二负载信息调整所述虚拟化集群系统中所述物理 节点间虚拟^/L的迁移。
在本发明实施例中,采用包括局部调度和全局调度的二级调度策略,可 以避免出现负载在物理节点范围内的分配不均和在整个虚拟化集群系统中物 理节点间的分配不均现象,并可以降低实现虚拟化集群系统负载平衡时所需 的开销,从而更好地实现虚拟化集群系统平衡的高效性和高吞吐率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例虚拟化集群系统结构示意图2为本发明方法实施例虚拟化集群系统负载平衡方法流程图3为本发明方法实施例虚拟化集群系统局部调度示意图4为本发明方法实施例虛拟化集群系统全局调度示意图5为本发明装置实施例虚拟化集群系统负载平衡装置结构示意图6为本发明系统实施例虚拟化集群系统负载平衡系统结构示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在虛拟化集群系统中,包含有多个物理节点,其中包括具有管理功能的 管理节点和不具有管理功能的物理节点(为描述方便,下文中出现的物理节 点如无特别说明都表示不具有管理功能的物理节点)。每个物理节点都包括虚 拟机监控器,通过虛拟机监控器可以运行多个虚拟机;每个物理节点还包括 局部调度器,局部调度器用来实现局部调度策略,即对物理节点内CPU和内存进行动态分配。管理节点包括全局调度器,用于实现全局调度策略,即在 物理节点间实现虚拟机动态迁移。局部调度器根据虚拟机监控器提供的各虚拟机使用CPU和内存情况,定 期地调整该物理节点中虚拟才几间的CPU和内存的分配,以实现该物理节点局 部负载平衡,即确保不出现某些虚拟机CPU使用率和内存使用过高、而某些 虚拟机CPU使用率和内存使用过低的不均衡情况。全局调度器根据局部调度器提供的对应物理节点上虚拟机CPU和内存的使用状况,计算每个虚拟机的开销,及迁移后的开销,判定是否需要进行虚 拟机的迁移,并发起相应的虚拟机在物理节点上的迁移,以达到在所有物理 节点上的全局平衡负载目的。以管理虚拟化集群系统中CPU和内存资源在不同虚拟机间的分配,实现虚拟化集群系统的负载平衡。以下通过附图对本发明方法实施例作具体描述参见图1,为本发明实施例一种虚拟化集群系统结构框图。如图l所示, 虚拟化集群系统包括多个节点,包括具有管理功能的管理节点和其它没有管 理功能的物理节点,如物理节点l、物理节点n等等,上述管理功能包括创建 或终止其它虚拟机;或者对其它虛拟机的CPU、内存的分配进行管理等。所述没有管理功能的物理节点(为描述方法,如果下文中没特别指出, 物理节点都指没有管理功能的物理节点)包括虚拟机监控器,虚拟机监控器 上可以运行多个虚拟才几,如图1所示,物理节点1包括虚拟才几11、虚拟机12、 虛拟机ln等等。在多个虚拟机,具有管理功能的虚拟机包括局部调度器,如 图1中的虚拟机ll、虚拟机nl等,局部调度器用于调整该物理节点中虚拟机 间的CPU和内存的分配。所述具有管理功能的物理节点包括全局调度器,用于负责调整虚拟化集 群系统中,虛拟机在多个物理节点的迁移。在另 一实施例中,管理节点也可以包括虚拟机监控器和/或局部调度器, 通过虚拟机监控器运行多个虚拟机,其局部和全局调度策略与不具有管理功 能的物理节点类似,在此不再赘述。局部调度器用于实现局部调度策略,全局调度器用于实现全局调度策略, 通过局部调度器和全局调度器的协同配合,可以实现虚拟化集群系统的负载 平衡。
参见图2,本发明实施例包括以下步骤
51. 获取虚拟化集群系统中物理节点中虚拟机的负载信息,所述负载信息 包括所述虚拟机的CPU和内存使用信息;
52. 根据所述负载信息在第一时刻得到第一负载信息,根据所述第一负载 信息调整所述物理节点中虚拟机的CPU使用率和内存使用大小;
53. 根据所述负载信息在第二时刻得到第二负载信息,根据所述第二负载 信息调整所述虚拟化集群系统中所述物理节点间虚拟机的迁移。
下面分别对以上几个步骤进行详细说明
51. 获取虚拟化集群系统中物理节点中虚拟机的负载信息,所述负载信息 包括所述虛拟机的CPU和内存使用信息
在S1步骤中,获取物理节点中虚拟机的负载信息的步骤由物理节点中的 局部调度器来完成。局部调度器在虚拟化集群系统运行时不间断地收集物理 节点中虚拟机的负载信息,包括各虚拟机的CPU和内存使用信息,包括但不 仅限于CPU空闲时间、CPU等待时间、CPU负载等,以及内存缺页率,物 理内存使用大小或使用率、虛拟内存使用大小或使用率等。
52. 根据所述负载信息在第一时刻得到第一负载信息,才艮据所述第一负载 信息调整所述物理节点中虚拟机的CPU使用率和内存使用大小
步骤S2也可称为局部调度过程,由局部调度器来完成,局部调度器在一 定时刻都会将上述负载信息转化为第一负载信息(也可称为局部负载信息), 第一负载信息主要包括CPU使用率和内存使用大小。在本发明实施例中,每 隔时间间隔T1都会将负载信息转化为第一负载信息,并调整物理节点中虛拟 机的CPU使用率和内存使用大小。这里的T1取值并不唯一,针对不同的虚 拟化集群系统,可以4艮据实际情况对T1进行调整,^f旦时间间隔不能过大,一 般是分钟级。如在本发明实施例中将T1取值为2分钟,3分钟,或者5分钟 等等。在另一实施例当中,用户也可以每隔不同的时间间隔来对物理节点中
13的虚拟机进行调整,但每个不同的时间间隔也不宜取过大, 一般也取分钟级,如先隔2分钟进行一次调整,再隔3分钟进行一次调整,继而再隔1分钟进 行一次调整。也可以根据虛拟化集群系统的特点来进行调整,如虚拟化集群 系统应用于Web服务器时,如果某一时段业务比较繁忙,信息量较大,此时 需要作大量的负载平衡,则可将这个时间段的间隔设得小一些,如l分钟等; 相反,如果某一时段没有业务,无需作过多的负载平衡,则可将这个时间段 的间隔值设得大一些,如10分钟,或15分钟等。上述将负载信息转化为第 一 负载信息为本领域技术人员所公知的技术 (如在某些具体的虚拟化集群系统中,相关硬件资源会自动完成这种转化, 局部调度器直接读取转化结果就可获得第一负载信息),在此不再赘述。为了便于描述,第一负载信息中的CPU使用率用标志位cpu一usage来表 示,第一负载信息中的内存使用大小用mem一usage来表示。局部调度器得到上述第一负载信息中的CPU使用率(cpu一usage)和内存 使用大小(mem一usage)后通过下面步骤来调整物理节点中虛拟4几的CPU使 用率和内存使用大小,参见图3,以调整CPU使用率为例,包括如下步骤S21.将第一负载信息与阈值作对比,确定需要调整的虚拟机;将第一负载信息中的CPU使用率(cpu—usage)和内存使用大小 (mem—usage)与预设的阈值作对比,所述预设的阈值包括CPU使用率最大 值cpu—Max、 CPU 4吏用率最小值cpu—Min;内存最大值mem一Max和内存最 小值mem一Min。当 一台虚拟机CPU使用率高于阈值cpu—Max时,则该虚拟 机CPU负载过重,需要减少其CPU资源;当某虚拟机CPU使用率低于阈值 cpi^Min时,则该虛拟机CPU负载过轻,需要增加其CPU资源。同理,当某 台虚拟机的内存使用大小大于阈值mem—Max时,则该虛拟机内存负载过大, 需要减少其内存使用资源;当某台虚拟机的内存使用大小小于阈值mem—Min 时,则该虚拟机内存负载过小,需要增加其内存使用资源。上述预设阈值限定了 CPU使用率和内存使用的最大和最小值,超过最大 值或低于最小值时,可认为该虚拟机处于不均衡状态。这些预设阈值可通过 实验或经验得到,如先设定一个阈值,然后通过运行系统得到相应的运行结 果,根据这个结果再调整相应的阈值,直到找出一个合理的阈值。预设阈值并不唯一固定,用户可以根据实际系统的应用情况对阈值不断调整,如硬件
配置较好的物理节点可以将其cpu—Max调得稍大点,配置较低的物理节点可 以将其cpu—Max调得稍小点。
当一台虚拟机的CPU使用率大于阈值cpu—Max时,计算该虚拟机的标志 位max—flag_cpu,若该台虚拟机的CPU使用率低于阈值cpu—Min时,计算该 虚拟机的标志位min一flag一cpu;若该台虚拟机的内存l吏用高于mem—Max时, 计算该虚拟机的标志位max—flag_mem ,若该台虚拟机的内存使用低于 mem Min时,计算该虚拟机的标志位 min—flag—mem 。
计算虚拟才几的才示志4立max—flag—cpu 、 min—flag—cpu 、 max—flag—mem 、 min—flag—mem方法如下
针对虚拟才几VM_i ( i殳i为该虚拟才几的编号) 如果其CPU使用率大于CPU最大值cpu—Max,则
max—flag—cpu[i] - cpu—usage[i] — cpu—Max; 如果其CPU使用率小于CPU最小值cpu—Min,则
min—flag_cpu[i] = cpu_Min - cpu一usage[i]; 如果其内存使用值大于内存最大值mem—Max,贝'J:
max—flag—mem[i] = mem—usage[i] — mem—Max; 如果其内存使用值小于内存最小值mem一Min,则
min一flag一mem[i] = mem—Min - mem—usage [i];
S22.重分配物理节点中CPU使用权值;
通过对上述相关信息进行计算得到相关标志位后,可以对该物理节点上 的虚拟机进行决策调度,将该物理节点上所有虚拟机的CPU进行如下重分配
若该物理节点上所有虛拟机max—flag—cpu之和大于所有虚拟机 min—flag—cpu之和,则首先将CPU使用率低于预设阈值cpu一Min的虚拟机的 CPU使用率权值cpu—weight设置为cpu一Min, CPU使用率高于预设阔值 cpu—Max的虚拟机的CPU使用率权值cpu_weight设置为cpu—Max;再将 max—flag一cpu之和与min—flag—cpu之和的差佳j妄比例分配给,其它虚拟机包 括CPU使用率小于等于cpu一Max的虚拟机,比例由cpu_Max与其它各虚拟
15机CPU使用率差值(cpu—Max减去其它各虚拟机CPU使用率)的反比确定, 其它虚拟机最终的CPU使用率权值为原来的权值加上分配后得到的权值的总 和。例如某一物理节点有四台虚拟机,编号分别是VM1、 VM2、 VM3、 VM4, CPU使用率分别为30/。、 10%、 20%、 60%, cpu—Min = 5%, cpu—Max = 50%, 则VM1的min—flag—cpu = 5% - 3% = 2%; VM4的max—flag—cpu = 60% - 50% = 10%;因为所有虚拟机的max—flag—cpu之和(10%)大于所有虚拟机的 min—flag—cpu之和(2%),所以做如下调整将VM1的cpu—weight调整为cpu—Min的值,即VM1的cpu—weight = 5%;将VM4的cpu—weight调整为cpu—Max的值,即VM4的cpu—weight = 50%;所有虚拟机的max—flag—cpu之和减去所有虚拟机的min—flag—cpu之和得 到的差值diff—cpu为diff—cpu = 10% - 2% = 8%;cpu—Max与其它各虚拟机CPU使用率差值分别如下cpu—Max与VM1的CPU使用率差值diff—cpu—VM1为50%隱5% = 45%;cpu—Max与VM2的CPU使用率差值diff—cpu—VM2为50% - 10% = 40%;cpu—Max与VM3的CPU使用率差值diff—cpu—VM3为50% - 20% = 30%;cpu—Max与其它虚拟机(VM1、 VM2、 VM3 )的CPU使用率差的反比为1/diff—cpu_VMl : 1/diff—cpu—VM2 : 1/diff—cpu—VM3 = 1/45 : 1/40 : 1/30 =8:9: 12;diff_cpu ( 8%)按8 : 9 : 12比例依次分配给VM1、 VM2、 VM3,再加上 原先的CPU使用率,得VM1的cpu—weight = (8 / 29) * 8% + 5%《2%;VM2的cpu—weight = (9 / 29) * 8% + 10% 12.5%;VM3的cpu—weight = (12 / 29) * 8% + 20% 23.3%;若所有虚拟机max—flag_cpu之和小于虛拟冲几min_flag—cpu之和,则首先 将CPU使用率过低的虚拟机的CPU使用率权值cpu—weight设置为cpu—Min, CPU使用率过高的虚拟机的CPU <吏用率权值cpu—weight i殳置为cpu_Max,再将min—flag—cpu之和与max—flag—cpu之和的差佳j姿比例在其它虚拟4几上进4亍 分配,其它虚拟机包括CPU使用率大于等于cpu一Min的虚拟机,比例由其它 各虚拟机CPU使用率与cpu—Min差值(其它各虚拟机CPU使用率减去 cpu—Min)的反比确定。
若所有虚拟机max—flag—cpu之和等于虚拟机min—flag_cpu之和,则将CPU 使用率过低的虚拟机的CPU使用率权值cpu—weight设置为cpu_Min, CPU使 用率过高的虛拟机的CPU使用率权值cpu—weight设置为cpu—Max。
物理节点上虚拟机的内存重分配方法与CPU重分配方法类似,具体包括
若该物理节点上所有虚拟才几max—flag—mem之和大于所有虚拟才几 min—flag_mem之和,则首先将内存使用值低于预设阈值mem—Min的虚拟机 的内存使用权值mem—weight设置为mem—Min,内存l吏用值高于预设阈值 mem—Max的虚拟才几的内存l吏用^又^f直mem—weight i殳置为mem—Max;再将 max—flag—mem之和与min—flag—mem之和的差值按比例在其它虚拟机上进行 分配,其它虚拟机包括内存使用值小于等于mem一Max的虚拟机,比例由 mem—Max与其它各虚拟机内存使用值差值(mem—Max减去其它各虚拟机内 存使用值)的反比确定。
若所有虛拟机max—flag—mem之和小于虚拟机min—flag—mem之和,则首 先将内存使用值过4氐的虛拟才几的内存使用权值mem一weighH殳置为mem一Min, 内存4吏用值过高的虚拟才几的内存使用权值mem—weight i殳置为mem—Max,再 将max—flag—mem之和与min—flag—mem之和的差值按比例在其它虚拟机上进 行分配,其它虚拟机包括内存使用值大于等于mem—Min的虚拟机,比例由其 它各虚拟机内存使用值与mem—Min差值(其它各虚拟才几内存使用值减去 mem—Min)的反比确定。
若所有虚拟机max—flag—mem之和小于虚拟机min—flag—mem之和,则将 内存使用值过低的虚拟机的内存使用权值mem一weight设置为mem—Min,内 存使用值过高的虚拟机的内存^f吏用权值mem—weight设置为mem—Max。
S23.根据重分配后的虚拟机CPU和内存使用权值调整CPU使用率和内 存使用大小;
局部调度器运行在物理节点上具有管理功能的虚拟机中,根据调整决策过程中确定的CPU权值cpu—weight和内存权值mem—weight,调整各虚拟机的 CPU使用率和内存使用大小,此步骤为本领域技术人员所公知的技术,在此 不在累述。S3.根据所述负载信息在第二时刻得到第二负载信息,根据所述第二负载 信息调整所述虚拟化集群系统中所述物理节点间虚拟机的迁移步骤S3也称为全局调度过程,由全局调度器来完成,全局调度器在一定 时刻都会将上述负载信息转化为第二负载信息(也可称为全局负载信息),第 二负载信息也包括CPU使用率和内存使用大小。在本发明实施例中,每隔时 间间隔T2都会将负载信息转化为第二负载信息,并调整虚拟化集群系统中物 理节点间虚拟机的迁移。这里的T2取值也不唯一,针对不同的虚拟化集群系 统,可以根据实际情况的T2进行调整,但时间间隔要比Tl来得大, 一般是 几十分钟级或小时级,如设置成20分钟,40分钟,或1个小时等。与T1的 间隔类似,每个时间间隔也不固定,具体可以参考Tl取值规律来对T2进行 设置。上述将负载信息转化为第二负载信息的过程同将负载信息转化为第 一 负 载信息的过程类似,也为本领域技术人员所公知的技术,在此不再赘述。在本发明另 一实施例中,上述第二负载信息也可以根据第一负载信息来 得到,比如取多个T1间隔的算术平均值如虚拟化集群系统每隔时间Tl进 行一次局部调整,每隔时间间隔T2进行一次全局调整;布支设Tl取值为5分 钟,T2取值为30分钟;则每个T2周期内有6个T1,这时,可以取这6个 Tl中的第一负载信息中CPU使用率和内存使用大小的算术平均值。在实际使 用中也可以根据其它算法(如几何平均值,或者根据6个Tl不同权值系数进 行调整的算法)来得到T2,在此不再累述。在这种情况下,第二负载信息可 由第一负载信息获得,但第一负载信息又是通过负载信息得到,所以,第二 负载信息其实也是通过负载信息得到的,因此,可以把通过第一负载信息得 到第二负载信息这种获得方式看成通过负载信息得到第二负载信息的一个特 殊的实现方式。在得到第二负载信息后,全局调整器通过以下步骤来调整虚拟化集群系
统中物理节点间虚拟机的迁移
531. 将CPU、内存使用情况转化为开销;
由于CPU和内存采用不同的度量单位,为了将虚拟机使用CPU的情况和 使用内存的情况进行统一,将CPU的使用情况和内存使用情况转化为无量纲 的开销,在选取虚拟机时行迁移时,将根据系统中所有虚拟机的开销来决定。
开销的定义如下
设整个虛拟化集群系统中物理节点总数为n (n为大于等于2的整数), 所有物理节点为CPU、内存等配置完全相同的同构计算机。假设有一个物理 节点Node[i] (i为物理节点的编号,为大于等于l的整数),该物理节点上有 一台虚拟机VMJ (i为虚拟机的编号,为大于等于l的整数),记该物理点下 的该虚拟机的CPU的使用率为CPUper[i][j],该虚拟机的内存使用的大小记为 RAM[i][j],假设该物理节点总内存为RAM—tot[i]。则该虚拟机VMJ在物理 节点Node[i]上的开销cost[i][j]为
cost[,'][y.] = + C * "層-帥]
其中C为权重系数,为一常数,取值范围为0<C<1, C是反映CPU和 内存在对整个开销影响中所占的比例。通常CPU对系统影响较大,因此C的 取值小于1。
在上述开销公式中,虚拟机VMJ在实际中并不一定得在物理节点Node[i] 上,即可以是一个"相对"的计算如虚拟机VMJ在物理节点Node[i]上, 但也可以用上述公式计算VMJ在物理节点Node[k]上的开销(VMJ并不在 Node[k]节点上),得到最后的开销为cost剛,开销公式中的CPUper[i][j]、 RAM[i][j]为虚拟机VMJ在物理节点Node[k]上CPU使用率和内存使用大小, 但公式中的RAM_tot[i]则变成RAM_tot[k],为物理节点Node[k]上的总内存。
上述定义开销的公式并不是唯一的,用户在实际应用中也可以使用其它 计算公式来计算CPU和内存的开销。
532. 根据开销获取需要迁移的虚拟机及其迁移的目的物理节点;
19步骤S32由全局调度器来完成,全局调度器对整个虚拟化集群系统中的 每个虚拟机作如下计算针对物理节点Node[i]上的虚拟机VMJ计算它的开销cost[i][j];计算该虚拟4几VMJ在其它物理节点Node[k]上的开销cost[k][j] ( k != i, 且k为大于等于1的整数)。在进行虚拟机VMJ在其它物理节点Node[k]上 的开销时,开销公式中的CPU使用率为VMJ在物理节点Node[i]上的CPU 使用率;内存使用大小为VMJ在物理节点Node[i]上的内存使用大小;而总 内存为物理节点Node[k]上的总内存。比较cost[i][j]和cost[k][j〗的差值(cost[i][j]减去cost[k][j]的值),在其它物 理节点上可以得到具有最大差值的物理节点,在该物理节点上该虚拟机的开 销为最小,相应的开销差值为最大,记为diff—cost[i][j]。比较虚拟化集群系统中所有虚拟机的diff—cost,记具有diff—cost最大值的 虚拟机为VM一n (n为虚拟机的编号,为大于等于1的整数),其所在的物理 节点记为Node[m] (m为物理节点的编号,为大于等于1的整数),其具有最 大开销差值的物理节点为Node[m—max],其开销差值为diff—cost[m][n]。若diff—cost[m][n]大于设定的迁移阈值m—value,则在本次全局调度过程 中将会发生虚拟机的迁移,即将要执行迁移的虚拟机为VM—n,它将从物理节 点Node[m]迁移至物理节点Node[m—max];上述迁移阈值m—value也可通过实 验获得,其获得过程可参见获得cpu_Max等阔值的过程。若diff一cost[m][n]小于等于设定的迁移阈值m—value,则在本次全局调度 过程中将不会发生虚拟机的迁移,每个虚拟机仍在当前的物理节点上运行。S33.根据步骤获取的需要迁移的虛拟机及其迁移的目的物理节点执行迁 移操作;全局调度器才艮据通过步骤S2得到的需要迁移的虚拟机及其迁移的目的物 理节点,发起虚拟机的迁移操作,由源物理节点上的虚拟机监控器和目的物 理节点上的虚拟机监控器协同完成虚拟机的迁移操作,此步骤也属于本领域 技术人员所公知的技术,在此不再具体赘述。在本发明具体实施例中,局部调度器和全局调度器分别以时间间隔T1和时间间隔T2执行各自的调度,即局部调度和全局调度。在虚拟化集群中,单
个物理节点内局部调度策略(即在单个物理节点上调整其上的虚拟机使用
CPU和内存的分配情况)所需的操作较少、时间较短;多个物理节点之间的 全局调度策略(即在多个物理节点之间迁移虚拟机)所需的操作较多,时间 较长;因此,设置全局调度时间间隔T2的值大于局部调度操作时间间隔Tl 的值,具体数值可参考上文相关内容。
同时,为了避免全局调度策略和局部调度策略之间相互干扰,在局部调 度策略执行物理节点内部的局部调度时,若同时发生集群范围内的全局调度, 则全局调度操作将被延迟一个时间段。之后,全局调度器再根据最新的集群 范围内各物理节点及虚拟机的状态信息进行全局调度操作。
通过局部调度器和全局调度器以一定的时间间隔执行各自的调度策略, 可以在单个物理节点范围内和整个虚拟化集群系统范围内实现负载平衡,避 免出现负载在物理节点范围内的分配不均和在整个虚拟化集群系统中物理节 点间的分配不均现象,并且降低进行负载平衡时所需的开销,从而更好地实 现虚拟化集群系统平衡的高效性和高吞吐率。
本发明方法具体实施例包括如下主要优点
1. 通过层次化结构实现两级调度,局部调度器用于实现局部调度,负责 同一物理机上虚拟机间的负载平衡,全局调度器用于实现全局调度。由于局 部调度所需的时间较短,因此,可以以一个较高的频率周期性进行调度(如 实施例中以T1为周期进行调度);全局调度所需的时间较长,因此,可以以 一个较低的频率周期性进行调度(如实施例中以T2为周期进行调度)。通过 两级调度的方法,可以在实现虚拟化集群系统负载平衡时降低所需的开销。
2. 本发明实施例中,两级调度算法相互独立,可以根据具体的集群应用 类型,对全局和局部的算法进行调整,如根据应用类型的不同,对调度时间, 预设阈值,权值分配比例等进行调整,使得应用更加方便灵活。
本发明实施例还提供了 一种虚拟化集群系统负载平衡装置,包括 负载信息获取单元10,用于获取虚拟化集群系统中物理节点中虚拟机的 负载信息,所述负载信息包括所述虚拟机的CPU使用率和内存使用大小;,用于根据所述负载信息在第一时刻得到的第一负 载信息,根据所述第一负载信息调整所述物理节点中虚拟机的CPU使用率和 内存使用大小,以实现所述物理节点中虛拟机的负载平衡;全局负载平衡单元20,用于根据所述负载信息在第二时刻得到第二负载 信息,根据所述第二负载信息调整所述虚拟化集群系统中所述物理节点间虚 拟机的迁移,以实现所述物理节点间虚拟机的负载平衡。所述局部负载平衡单元30根据所述第一负载信息调整所述物理节点中虚 拟机的CPU使用率和内存使用大小的步骤包括为所述物理节点中CPU使用率低的虚拟机增加CPU使用率; 为所述物理节点中CPU使用率高的虚拟机减少CPU使用率; 为所述物理节点中内存使用小的虚拟机增加内存使用大小; 为所述物理节点中内存使用大的虚拟机减少内存使用大小。 具体地,所述局部负载平衡单元30包括阚值获取单元301,用于获取CPU使用率最高阈值、CPU使用率最低阈 值、内存使用最大阈值和内存使用最小阈值;第一虚拟机获取计算单元302,用于获取所述物理节点中虚拟机CPU使 用率大于所述CPU使用率最高阈值的第一虚拟机;计算所有所述第一虚拟机 CPU使用率与所述CPU使用率最高阈值的差值的总和为第 一差值总和;第二虚拟机获取计算单元303,用于获取所述物理节点中虚拟机CPU使 用率小于所述CPU使用率最低阈值的第二虚拟机;计算所有所述CPU使用率 最低阈值与所述第二虚拟机CPU使用率的差值的总和为第二差值总和;第三虚拟机获取计算单元304,用于获取所述物理节点中虚拟机内存使用 大小大于所述内存使用最大阈值的第三虛拟机;计算所有所述第三虚拟机内 存使用大小与所述内存使用最大阈值的差值的总和为第三差值总和;第四虚拟机获取计算单元305,用于获取所述物理节点中虚拟机内存使用 大小小于所述内存使用最小阈值的第四虚拟机;计算所有所述内存使用最小 阈值与所述第四虚拟机内存使用大小的差值的总和为第四差值总和;局部CPU分配单元306,用于将所述第一虚拟机的CPU使用率权值设置 为所述CPU使用率最高阈值;将所述第二虚拟机的CPU使用率权值设置为所述CPU使用率最低阈值;
计算所述第一差值总和与所述第二差值总和的差值的绝对值,得到CPU 绝对差^i,贝'J:
若所述第一差值大于等于所述第二差值,则将所述CPU绝对差值按第 一比例在所述第一虚拟机所在的物理节点除所述第一虚拟机之外的第一其它 虚拟机上进行分配,得到所述第一其它虚拟机的CPU使用率权值;所述第一 比例由所述CPU使用率最高阈值与所述第一其它虚拟机的CPU使用率差值的 反比决定;
若所述第二差值大于所述第一差值,则将所述CPU绝对差值按第二比 例在所述第二虚拟机所在的物理节点除所述第二虚拟机之外的第二其它虚拟 机上进行分配,得到所述第二其它虚拟机的CPU使用率权值;所述第二比例 由所述第二其它虚拟机的CPU使用率与所述CPU使用率最低阈值差值的反比 决定;
局部CPU调整单元307,用于根据所述物理节点中虚拟机的CPU使用率 权值调整所述物理节点中虚拟机的CPU使用率。
局部内存分配单元308,用于将所述第三虚拟机的内存使用大小权值设置 为所述内存使用最大阈值;将所述第四虚拟机的内存使用大小权值设置为所 述内存使用最小阈值;
计算所述第三差值总和与所述第四差值总和的差值的绝对值,得到内存 绝对差寸直,则
若所述第三差值大于等于所述第四差值,则将所述内存绝对差值按第 三比例在所述第三虚拟机所在的物理节点除所述第三虚拟机之外的第三其它 虚拟机上进行分配,得到所述第三其它虚拟机的内存使用大小权值;所述第 三比例由所述内存使用最大阈值与所述第三其它虚拟机的内存使用大小差值 的反比决定;
若所述第四差值大于所述第三差值,则将所述内存绝对差值按第四比 例在所述第四虚拟机所在的物理节点除所述第四虚拟机之外的第四其它虚拟 机上进行分配,得到所述第四其它虛拟机的内存使用大小权值;所述第四比 例由所述第四其它虚拟机的内存使用大小与所述内存使用最小阈值差值的反比决定;
局部内存调整单元,309用于根据所述物理节点中虚拟机的内存使用大小 权值调整所述物理节点中虚拟机的内存使用大小。 具体地,所述全局负载平衡单元20包括
开销转化单元201 ,用于将所述第二负载信息统一转化为无量纲的开销, 包括
根据所述虚拟化集群系统中所述物理节点的个数、所述物理节点总内存 大小以及权重系数将所述第二负载信息统一转化为开销;所述负载信息中的 CPU使用率占开销的权重大于所述第二负载信息中的内存使用大小占开销的 权重;
所述开销转化单元201还用于通过公式
磨['-][乂]
cost[/][刀=""一小]w + C * "層-', 将所述第二负载信息统一转化为开销;
其中,cost[i][j]表示物理节点i上虚拟机j的开销; n表示所述虚拟化集群系统中物理节点总数; CPUper表示所述物理节点i上虚拟机j的CPU使用率; RAM[i][j]表示所述物理节点i上虚拟机j的内存使用大小; RAM一tot[i]表示所述物理节点i的总内存大小; C为权重系数,为一常数,取值范围为(XOcl。 所述全局负载平衡单元20还用于
通过比较所有所述物理节点中虚拟机在本身物理节点上的开销和在其它 物理节点的开销的差值,获取具有最大差值的第一物理节点和第二物理节点; 如果所述最大差值大于迁移阈值,则将所述物理节点中虚拟机从所述第一物 理节点迁移到所述第二物理节点;如果所述最大差值小于等于迁移阈值,则 所述物理节点中虚拟机不发生迁移。
在本发明虚拟化集群系统负载平衡装置中,所述第一时刻小于所述第二 时刻。
通过局部负载平tf单元30和全局负载平tf单元20在一定时刻执行各自
24的调度策略,可以在单个物理节点中和整个虚拟化集群系统中各个物理节点 间实现负载平衡,避免出现负载在物理节点范围内的分配不均和在整个虚拟 化集群系统中物理节点间的分配不均现象,并且降低实现负载平衡时所需的 开销,从而更好地实现虚拟化集群系统平衡的高效性和高吞吐率。本发明实施例还提供了 一种虚拟化集群系统负载平衡系统,包括 多个物理节点N1,至少一个管理节点N2,所述管理节点N2为具有管理功能的物理节点N1;所述物理节点Nl包括虚拟机监控器Nll,用于在所述物理节点Nl上运行虚拟机;所述虛拟机监控器Nil还用于获取虚拟化集群系统中所述物理节点Nl 中虚拟机的负载信息,所述负载信息包括所述虚拟机的CPU使用率和内存使 用大小;所述物理节点N1还包括局部调度器N12,用于根据所述负载信息在第一 时刻得到第一负载信息,根据所述第一负载信息调整所述物理节点N1中虚拟 机的CPU使用率和内存使用大小;所述管理节点N2包括全局调度器N21,用于根据所述负载信息在第二时 刻得到第二负载信息,根据所述第二负载信息调整所述虚拟化集群系统中所 述物理节点N1间虚拟^^的迁移;所述局部调度器N12还用于获取CPU使用率最高阈值、CPU使用率最 低阈值;获取所述物理节点Nl中虚拟机CPU使用率大于所述CPU使用率最高阈 值的第一虚拟机;计算所有所述第一虚拟机CPU使用率与所述CPU使用率最 高阈值的差值的总和为第一差值总和;获取所述物理节点Nl中虛拟机CPU使用率小于所述CPU使用率最低阈 值的第二虚拟机;计算所有所述CPU使用率最低阈值与所述第二虚拟机CPU 使用率的差值的总和为第二差值总和;将所述第一虛拟机的CPU使用率权值设置为所述CPU使用率最高阈值; 将所述第二虚拟机的CPU使用率权值设置为所述CPU使用率最低阈值;计算所述第一差值总和与所述第二差值总和的差值的绝对值,得到CPU绝对差^f直,贝寸若所述第一差值大于等于所述第二差值,则将所述CPU绝对差值按第 一比例在所述第一虚拟机所在的物理节点Nl除所述第一虚拟机之外的第一 其它虚拟机上进行分配,得到所述第一其它虛拟机的CPU使用率权值;所述 第一比例由所述CPU使用率最高阈值与所述第一其它虚拟机的CPU使用率差 值的反比决定;若所述第二差值大于所述第一差值,则将所述CPU绝对差值按第二比 例在所述第二虚拟机所在的物理节点Nl除所述第二虚拟机之外的第二其它 虚拟机上进行分配,得到所述第二其它虚拟机的CPU使用率权值;所述第二 比例由所述第二其它虚拟机的CPU使用率与所述CPU使用率最低阈值差值的 反比决定;根据所述物理节点中虛拟机的CPU使用率权值调整所述物理节点中虚拟 机的CPU使用率。获取内存使用最大阈值和内存使用最小阈值;获取所述物理节点Nl中虚拟机内存使用大小大于所述内存使用最大阈 值的第三虚拟机;计算所有所述第三虚拟机内存使用大小与所述内存使用最 大阈值的差值的总和为第三差值总和;获取所述物理节点Nl中虛拟机内存使用大小小于所述内存使用最小阈 值的第四虚拟机;计算所有所述内存使用最小阈值与所述第四虛拟机内存使 用大小的差值的总和为第四差值总和;将所述第三虚拟机的内存使用大小权值设置为所述内存使用最大阈值; 将所述第四虚拟机的内存使用大小权值设置为所述内存使用最小阈值;计算所述第三差值总和与所述第四差值总和的差值的绝对值,得到内存绝对差值,贝'h若所述第三差值大于等于所述第四差值,则将所述内存绝对差值按第 三比例在所述第三虚拟机所在的物理节点Nl除所述第三虛拟机之外的第三 其它虛拟机上进行分配,得到所述第三其它虚拟机的内存使用大小权值;所 述第三比例由所述内存使用最大阈值与所述第三其它虛拟机的内存使用大小差值的反比决定;若所述第四差值大于所述第三差值,则将所述内存绝对差值按第四比 例在所述第四虚拟机所在的物理节点Nl除所述第四虚拟机之外的第四其它 虚拟机上进行分配,得到所述第四其它虚拟机的内存使用大小权值;所述第 四比例由所述第四其它虚拟机的内存使用大小与所述内存使用最小阈值差值 的反比决定;根据所述物理节点中虚拟机的内存使用大小权值调整所述物理节点中虚 拟机的内存使用大小。所述全局调度器N21还用于通过公式cost[/][)] = "cw,[,][)] + C * 将所述第二负载信息统一转化为开销;其中,cost[i][j]表示物理节点i上虚拟机j的开销; n表示所述虚拟化集群系统中物理节点总数; CPUper表示所述物理节点i上虚拟机j的CPU使用率; RAM[i][j]表示所述物理节点i上虚拟机j的内存使用大小; RAM一tot[i]表示所述物理节点i的总内存大小; C为权重系数,为一常数,取值范围为0〈CX1;通过比较所有所述物理节点N1中虚拟机在本身物理节点N1上的开销和 在其它物理节点N1的开销的差值,获取具有最大差值的第一物理节点和第二 物理节点;如果所述最大差值大于迁移阈值,则将所述物理节点N1中虚拟机 从所述第一物理节点迁移到所述第二物理节点;如果所述最大差值小于等于 迁移阈值,则所述物理节点N1中虚拟机不发生迁移;在虚拟化集群系统负载平衡系统中,所述第一时刻小于所述第二时刻。 通过局部调度器N12和全局调度器N21以一定的时间间隔执行各自的调 度策略,可以在单个物理节点N1范围内和整个虚拟化集群系统范围内实现负 载平衡,避免出现负载在物理节点N1范围内的分配不均和在整个虚拟化集群 系统中物理节点Nl间的分配不均现象,并且降低进行负载平衡时所需的开 销,从而更好地实现虚拟化集群系统平衡的高效性和高吞吐率。本领域普通4支术人员可以理解实现上述实施例方法中的全部或部分流 程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于 一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施
例的流程。其中,所述的存储介质可为^兹碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。
以上举较佳实施例,对本发明的目的、技术方案和优点进行了进一步 详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不 用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同 替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1. 一种虚拟化集群系统负载平衡方法,其特征在于,包括如下步骤获取虚拟化集群系统中物理节点中虚拟机的负载信息,所述负载信息包括所述虚拟机的CPU和内存使用信息;根据所述负载信息在第一时刻得到第一负载信息,根据所述第一负载信息调整所述物理节点中虚拟机的CPU使用率和内存使用大小;根据所述负载信息在第二时刻得到第二负载信息,根据所述第二负载信息调整所述虚拟化集群系统中所述物理节点间虚拟机的迁移。
2. 如权利要求1所述的虚拟化集群系统负载平衡方法,其特征在于,所 述根据所述第一负载信息调整所述物理节点中虚拟机的CPU使用率和内存使 用大小的步骤包括为所述物理节点中CPU使用率低的虚拟机增加CPU使用率; 为所述物理节点中CPU使用率高的虚拟机减少CPU使用率; 为所述物理节点中内存使用小的虚拟机增加内存使用大小; 为所述物理节点中内存使用大的虛拟机减少内存使用大小。
3. 如权利要求2所述的虚拟化集群系统负载平衡方法,其特征在于,所 述为所述物理节点中CPU使用率低的虛拟机增加CPU使用率;为所述物理节 点中CPU使用率高的虚拟机减少CPU使用率的步骤包括获取CPU使用率最高阈值、CPU使用率最低阈值;获取所述物理节点中虚拟机CPU使用率大于所述CPU使用率最高阈值的 第一虚拟机;计算所有所述第一虚拟机CPU使用率与所述CPU使用率最高阈 值的差值的总和为第一差值总和;获取所述物理节点中虚拟机CPU使用率小于所述CPU使用率最低阈值的 第二虚拟机;计算所有所述CPU使用率最低阈值与所述第二虛拟机CPU使用 率的差值的总和为第二差值总和;将所述第一虚拟机的CPU使用率权值设置为所述CPU使用率最高阈值; 将所述第二虚拟机的CPU使用率权值设置为所述CPU使用率最低阈值;计算所述第一差值总和与所述第二差值总和的差值的绝对值,得到CPU 绝对差值,则若所述第一差值大于等于所述第二差值,则将所述CPU绝对差值按第一比例在所述第一虚拟机所在的物理节点除所述第一虚拟机之外的第一其它虚拟机上进行分配,得到所述第一其它虚拟机的CPU使用率权值;所述第一比 例由所述CPU使用率最高阈值与所述第一其它虚拟机的CPU使用率差值的反 比决定;若所述第二差值大于所述第一差值,则将所述CPU绝对差值按第二比 例在所述第二虚拟机所在的物理节点除所述第二虚拟机之外的第二其它虚拟 机上进行分配,得到所述第二其它虚拟机的CPU使用率权值;所述第二比例 由所述第二其它虚拟机的CPU使用率与所述CPU使用率最低阈值差值的反比 决定;根据所述物理节点中虚拟机的CPU使用率权值调整所述物理节点中虚拟 机的CPU使用率。
4.如权利要求2所述的虚拟化集群系统负载平衡方法,其特征在于,为 所述物理节点中内存使用小的虚拟机增加内存使用大小;为所述物理节点中 内存使用大的虛拟机减少内存使用大小的步骤包括获取内存使用最大阈值和内存使用最小阈值;获取所迷物理节点中虛拟机内存使用大小大于所述内存使用最大阈值的 第三虚拟机;计算所有所述第三虚拟机内存使用大小与所述内存使用最大阈 值的差值的总和为第三差值总和;获取所述物理节点中虚拟机内存使用大小小于所述内存使用最小阔值的 第四虛拟机;计算所有所述内存使用最小阈值与所述第四虛拟机内存使用大 小的差值的总和为第四差值总和;将所述第三虚拟机的内存使用大'J、权值设置为所述内存使用最大阈值; 将所述第四虚拟机的内存使用大小权值设置为所述内存使用最小阔值;计算所述第三差值总和与所述第四差值总和的差值的绝对值,得到内存 绝对差值,则若所述第三差值大于等于所述第四差值,则将所述内存绝对差值按第三 比例在所述第三虚拟机所在的物理节点除所述第三虚拟机之外的第三其它虛 拟机上进行分配,得到所述第三其它虛拟机的内存使用大小权值;所述第三比例由所述内存使用最大阈值与所述第三其它虚拟机的内存使用大小差值的反比决定;若所述第四差值大于所述第三差值,则将所述内存绝对差值按第四比例 在所述第四虚拟机所在的物理节点除所述第四虚拟机之外的第四其它虚拟机 上进行分配,得到所述第四其它虚拟机的内存使用大小权值;所述第四比例 由所述第四其它虚拟机的内存使用大小与所述内存使用最小阔值差值的反比 决定;根据所述物理节点中虚拟机的内存使用大小权值调整所述物理节点中虚 拟机的内存4吏用大小。
5. 如权利要求1所述的虚拟化集群系统负载平衡方法,其特征在于,所 述根据所述第二负载信息调整所述虚拟化集群系统中所述物理节点间虚拟机 的迁移的步骤包括将所述第二负载信息统一转化为无量纲的开销,通过比较所述物理节点 间虚拟机开销,调整所述虚拟化集群系统中所述物理节点间虚拟机的迁移。
6. 如权利要求5所述的虚拟化集群系统负载平衡方法,其特征在于,所 述将所述第二负载信息统一转化为无量纲的开销的步骤包括根据所述虚拟化集群系统中所述物理节点的个数、所述物理节点总内存 大小以及权重系数将所述第二负载信息统一转化为开销;所述负载信息中的 CPU使用率占开销的权重大于所述第二负载信息中的内存使用大小占开销的 权重;包括通过7^式 <formula>formula see original document page 4</formula>将所述第二负载信息统一转化为开销;其中,cost[i][j]表示物理节点i上虛拟4几j的开销; n表示所述虛拟化集群系统中物理节点总数; CPUper表示所述物理节点i上虚拟机j的CPLM吏用率; RAM[i][j]表示所述物理节点i上虛拟机j的内存使用大小; RAM一tot[i]表示所述物理节点i的总内存大小;c为权重系数,为一常数,取值范围为0<:<1。
7. 如权利要求5所述的虚拟化集群系统负载平衡方法,其特征在于,所述通过比较所述物理节点间虚拟机开销,调整所述虚拟化集群系统中所述物理节点间虚拟机的迁移的步骤包括通过比较所有所述物理节点中虚拟机在本身物理节点上的开销和在其它 物理节点的开销的差值,获取具有最大差值的第一物理节点和第二物理节点; 如果所述最大差值大于迁移阈值,则将所述物理节点中虚拟机从所述第一物 理节点迁移到所述第二物理节点;如果所述最大差值小于等于迁移阈值,则 所述物理节点中虚拟机不发生迁移。
8. 如权利要求1-7任一所述的虚拟化集群系统负载平衡方法,其特征在于所述第一时刻小于所述第二时刻。
9. 一种虚拟化集群系统负载平衡装置,其特征在于,包括负载信息获取单元,用于获取虚拟化集群系统中物理节点中虚拟机的负 载信息,所述负载信息包括所述虛拟机的CPU使用率和内存使用大小;局部负载平衡单元,用于根据所述负载信息在第一时刻得到的第一负载 信息,根据所述第一负载信息调整所述物理节点中虚拟机的CPU使用率和内 存使用大小;全局负载平衡单元,用于根据所述负载信息在第二时刻得到第二负载信 息,根据所述第二负载信息调整所述虚拟化集群系统中所述物理节点间虚拟 机的迁移。
10. 如权利要求9所述的虚拟化集群系统负载平衡装置,其特征在于,所 述局部负载平衡单元包括CPU阈值获取单元,用于获取CPU使用率最高阈值、CPU使用率最低阈 值;第一虚拟机获取计算单元,用于获取所述物理节点中虚拟机CPU使用率 大于所述CPU使用率最高阈值的第一虛拟机;计算所有所述第一虚拟机CPU 使用率与所述CPU使用率最高阈值的差值的总和为第一差值总和;第二虚拟机获取计算单元,用于获取所述物理节点中虚拟机CPU使用率小于所述CPU使用率最低阈值的第二虚拟机;计算所有所述CPU使用率最低 阈值与所述第二虚拟机CPU使用率的差值的总和为第二差值总和;局部CPU分配单元,用于将所述第一虛拟机的CPU使用率权值设置为所 述CPU使用率最高阈值;将所述第二虚拟机的CPU使用率权值设置为所述 CPU使用率最低阈值;计算所述第一差值总和与所述第二差值总和的差值的绝对值,得到CPU 绝对差值,贝'J:若所述第一差值大于等于所述第二差值,则将所述CPU绝对差值按第 一比例在所述第 一虚拟机所在的物理节点除所述第 一虚拟机之外的第 一其它 虚拟机上进行分配,得到所述第一其它虚拟机的CPU使用率权值;所述第一 比例由所述CPU使用率最高阈值与所述第一其它虚拟机的CPU使用率差值的 反比决定;若所述第二差值大于所述第一差值,则将所述CPU绝对差值按第二比 例在所述第二虚拟机所在的物理节点除所述第二虚拟机之外的第二其它虚拟 机上进行分配,得到所述第二其它虛拟机的CPU使用率权值;所述第二比例 由所述第二其它虚拟机的CPU使用率与所述CPU使用率最低阈值差值的反比 决定;局部CPU调整单元,用于根据所述物理节点中虛拟机的CPU使用率权值 调整所述物理节点中虚拟机的CPU使用率。
11.如权利要求9所述的虚拟化集群系统负载平衡装置,其特征在于,所 述局部负载平衡单元还包括内存阈值获取单元,用于获取内存使用最大阈值和内存使用最小阈值;第三虚拟机获取计算单元,用于获取所述物理节点中虚拟机内存使用大 小大于所述内存使用最大阈值的第三虚拟机;计算所有所述第三虛拟机内存 使用大小与所述内存使用最大阈值的差值的总和为第三差值总和;第四虚拟机获取计算单元,用于获取所述物理节点中虚拟机内存使用大 小小于所述内存使用最小阈值的第四虚拟机;计算所有所述内存使用最小阈 值与所述第四虚拟机内存使用大小的差值的总和为第四差值总和;局部内存分配单元,用于将所述第三虚拟机的内存使用大小权值设置为所述内存使用最大阈值;将所述第四虚拟机的内存使用大小权值设置为所述 内存使用最小阈值;计算所述第三差值总和与所述第四差值总和的差值的绝对值,得到内存 绝对差值,则.-若所述第三差值大于等于所述第四差值,则将所述内存绝对差值按第 三比例在所述第三虚拟机所在的物理节点除所述第三虚拟机之外的第三其它 虚拟机上进行分配,得到所述第三其它虚拟机的内存使用大小权值;所述第 三比例由所述内存使用最大阈值与所述第三其它虚拟机的内存使用大小差值 的反比决定;若所述第四差值大于所述第三差值,则将所述内存绝对差值按第四比 例在所述第四虚拟机所在的物理节点除所述第四虚拟机之外的第四其它虚拟 机上进行分配,得到所述第四其它虚拟机的内存使用大小权值;所述第四比 例由所述第四其它虚拟机的内存使用大小与所述内存使用最小阈值差值的反 比决定;局部内存调整单元,用于根据所述物理节点中虚拟机的内存使用大小权 值调整所述物理节点中虚拟机的内存使用大小。
12.如权利要求9所述的虚拟化集群系统负载平衡装置,其特征在于,所 述全局负载平衡单元还包括开销转化单元,用于将所述第二负载信息统一转化为无量纲的开销,包括根据所述虚拟化集群系统中所述物理节点的个数、所述物理节点总内存 大小以及权重系数将所述第二负载信息统一转化为开销;所述负载信息中的 CPU使用率占开销的权重大于所述第二负载信息中的内存使用大小占开销的 权重;所述开销转化单元还用于通过公式層[!'][力cost[z.][y.]=+ C * " ] 将所述第二负载信息统一转化为开销; 其中,cost[i][j]表示物理节点i上虚拟才几j的开销;n表示所述虚拟化集群系统中物理节点,悉数; CPUper表示所述物理节点i上虚拟机j的CPU使用率; RAM[i][j]表示所述物理节点i上虚拟才几j的内存使用大小; RAM—tot[i]表示所述物理节点i的总内存大小; C为权重系数,为一常数,取值范围为0<:<1。
13. 如权利要求12所述的虚拟化集群系统负载平衡装置,其特征在于, 所述全局负载平衡单元还用于通过比较所有所述物理节点中虚拟机在本身物理节点上的开销和在其它 物理节点的开销的差值,获取具有最大差值的第 一物理节点和第二物理节点; 如果所述最大差值大于迁移阈值,则将所述物理节点中虚拟机从所述第一物 理节点迁移到所迷第二物理节点;如果所述最大差值小于等于迁移阔值,则 所述物理节点中虚拟机不发生迁移。
14. 如权利要求9-13任一所述的虚拟化集群负载平衡装置,其特征在于 所述第一时刻小于所述第二时刻。
15. —种虚拟化集群系统负载平衡系统,其特征在于,包括 物理节点,管理节点,所述管理节点为具有管理功能的物理节点; 所述物理节点包括虚拟机监控器,用于在所述物理节点上运行虚拟机; 所述虚拟机监控器还用于获取虚拟化集群系统中所述物理节点中虚拟机的负载信息,所述负载信息包括所述虚拟机的CPU使用率和内存使用大小; 所述物理节点还包括局部调度器,用于根据所述负载信息在第一时刻得到第一负载信息,根据所述第一负载信息调整所述物理节点中虚拟机的CPU使用率和内存^f吏用大小;所述管理节点包括全局调度器,用于根据所述负载信息在第二时刻得到第二负载信息,根据所述第二负载信息调整所述虚拟化集群系统中所述物理节点间虚拟才几的迁移。
全文摘要
本发明实施例公开了一种虚拟化集群系统负载平衡方法、装置及系统。其中,所述方法包括获取虚拟化集群系统中物理节点中虚拟机的负载信息,所述负载信息包括所述虚拟机的CPU使用率和内存使用大小;根据所述负载信息在第一时刻得到第一负载信息,根据所述第一负载信息调整所述物理节点中虚拟机的CPU使用率和内存使用大小;根据所述负载信息在第二时刻得到第二负载信息,根据所述第二负载信息调整所述虚拟化集群系统中所述物理节点间虚拟机的迁移。通过本发明实施例,可以实现虚拟化集群系统的负载平衡,并降低实现负载平衡时所需的开销。
文档编号G06F9/50GK101504620SQ20091010593
公开日2009年8月12日 申请日期2009年3月3日 优先权日2009年3月3日
发明者全小飞, 翁楚良 申请人:华为技术有限公司;上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1