实现多物理服务器之间温度均衡的方法及装置转让专利

申请号 : CN201080003265.7

文献号 : CN102696257B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 田文洪卢国明钟元椋胡金安景晨董旭

申请人 : 华为技术有限公司

摘要 :

本发明实施例公开了一种实现多物理服务器之间温度均衡的方法及装置,所述方法包括:判断是否有物理服务器的温度超过温度警戒值,如果有,则对所述物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值;如果各物理服务器的温度均未超过温度警戒值,则比较各物理服务器中最高温度与最低温度之间的差值是否大于预设差值,如果大于预设差值,则将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上;如果各物理服务器中最高温度与最低温度之间的差值不大于预设差值,则将待分配的虚拟服务器分配到合适的物理服务器上。本发明适用于对云计算数据中心的多个物理服务器进行温度均衡。

权利要求 :

1.一种实现多物理服务器之间温度均衡的方法,其特征在于,包括:判断是否有物理服务器的温度超过温度警戒值,如果有,则对所述物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值;

如果各物理服务器的温度均未超过温度警戒值,则比较各物理服务器中最高温度与最低温度之间的差值是否大于预设差值,如果大于预设差值,则将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上;

如果各物理服务器中最高温度与最低温度之间的差值不大于预设差值,则将待分配的虚拟服务器分配到合适的物理服务器上;

其中,所述对所述物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值包括:计算所述物理服务器的温度与所述物理服务器的温度警戒值之差W;

获取需要迁移的虚拟服务器的数量N,其中,温度最高的N-1个虚拟服务器温度之和≤W≤温度最高的N个虚拟服务器温度之和;

按照温度由高到低的顺序,依次将虚拟服务器迁移到合适的物理服务器上;

所述将虚拟服务器迁移到合适的物理服务器上包括:

分别计算将所述虚拟服务器试迁移到各物理服务器上的均差,其中,所述均差等于试迁移后每个物理服务器的温度与所有物理服务器的平均温度之差的绝对值之和;

将所述虚拟服务器迁移到均差最小的物理服务器上,其中,迁移后所述物理服务器的温度不超过所述物理服务器的温度警戒值,且所述物理服务器的可用资源量不超过总资源量。

2.根据权利要求1所述的方法,其特征在于,所述将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上包括:分别计算将所述温度最高的虚拟服务器试迁移到各物理服务器上的均差,其中,所述均差等于试迁移后每个物理服务器的温度与所有物理服务器的平均温度之差的绝对值之和;

将所述温度最高的虚拟服务器迁移到均差最小的物理服务器上,其中,迁移后所述物理服务器的温度不超过所述物理服务器的温度警戒值,且所述物理服务器的可用资源量不超过总资源量。

3.根据权利要求1所述的方法,其特征在于,所述将待分配的虚拟服务器分配到合适的物理服务器上包括:按照温度由高到低的顺序,依次将待分配的虚拟服务器分配到合适的物理服务器上。

4.根据权利要求3所述的方法,其特征在于,所述将待分配的虚拟服务器分配到合适的物理服务器上包括:分别计算将所述虚拟服务器试分配到各物理服务器上的均差,其中,所述均差等于试分配后每个物理服务器的温度与所有物理服务器的平均温度之差的绝对值之和;

将所述虚拟服务器分配到均差最小的物理服务器上,其中,分配后所述物理服务器的温度不超过所述物理服务器的温度警戒值,且所述物理服务器的可用资源量不超过总资源量。

5.一种实现多物理服务器之间温度均衡的装置,其特征在于,包括:判断模块,用于判断是否有物理服务器的温度超过温度警戒值;

第一迁移模块,用于当有物理服务器的温度超过温度警戒值时,对所述物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值;

比较模块,用于当各物理服务器的温度均未超过温度警戒值时,比较各物理服务器中最高温度与最低温度之间的差值是否大于预设差值;

第二迁移模块,用于当各物理服务器中最高温度与最低温度之间的差值大于预设差值时,将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上;

分配模块,用于当各物理服务器中最高温度与最低温度之间的差值不大于预设差值时,将待分配的虚拟服务器分配到合适的物理服务器上;

其中,所述第一迁移模块包括:

第一计算单元,用于计算所述物理服务器的温度与所述物理服务器的温度警戒值之差W;

获取单元,用于获取需要迁移的虚拟服务器的数量N,其中,温度最高的N-1个虚拟服务器温度之和≤W≤温度最高的N个虚拟服务器温度之和;

第一迁移单元,用于按照温度由高到低的顺序,依次将虚拟服务器迁移到合适的物理服务器上;

所述第一迁移单元包括:

第一计算子单元,用于分别计算将所述虚拟服务器试迁移到各物理服务器上的均差,其中,所述均差等于试迁移后每个物理服务器的温度与所有物理服务器的平均温度之差的绝对值之和;

迁移子单元,用于将所述虚拟服务器迁移到均差最小的物理服务器上,其中,迁移后所述物理服务器的温度不超过所述物理服务器的温度警戒值,且所述物理服务器的可用资源量不超过总资源量。

6.根据权利要求5所述的装置,其特征在于,所述第二迁移模块包括:第二计算单元,用于分别计算将所述温度最高的虚拟服务器试迁移到各物理服务器上的均差,其中,所述均差等于试迁移后每个物理服务器的温度与所有物理服务器的平均温度之差的绝对值之和;

第二迁移单元,用于将所述温度最高的虚拟服务器迁移到均差最小的物理服务器上,其中,迁移后所述物理服务器的温度不超过所述物理服务器的温度警戒值,且所述物理服务器的可用资源量不超过总资源量。

7.根据权利要求5所述的装置,其特征在于,所述分配模块包括:分配单元,用于按照温度由高到低的顺序,依次将待分配的虚拟服务器分配到合适的物理服务器上。

8.根据权利要求7所述的装置,其特征在于,所述分配单元包括:第二计算子单元,用于分别计算将所述虚拟服务器试分配到各物理服务器上的均差,其中,所述均差等于试分配后每个物理服务器的温度与所有物理服务器的平均温度之差的绝对值之和;

分配子单元,用于将所述虚拟服务器分配到均差最小的物理服务器上,其中,分配后所述物理服务器的温度不超过所述物理服务器的温度警戒值,且所述物理服务器的可用资源量不超过总资源量。

说明书 :

实现多物理服务器之间温度均衡的方法及装置

技术领域

[0001] 本发明涉及通信技术领域,特别涉及一种实现多物理服务器之间温度均衡的方法及装置。

背景技术

[0002] 随着云计算技术的不断发展,云计算数据中心的规模越来越大,数据中心物理服务器的密度也越来越大,而且各物理服务器上部署有多个虚拟服务器。为了保证正常工作和提供高性能服务,这些物理服务器需要保持适当的温度。因此,如何降低数据中心物理服务器的温度成为了保证数据中心资源的最大化利用的关键问题。
[0003] 现有技术中采用了TASA(Telecommunications Alarm Sequence Analyzer,通信网络警报序列分析器)算法,每次对新来的任务进行分配时,将能够使物理服务器产生温度最高的任务分配给温度最低的物理服务器,通过合理地将每个任务分配到适当的物理服务器上来达到温度均衡的目的。
[0004] 在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
[0005] 现有技术中采用的TASA算法仅在任务的初次分配时对物理服务器进行温度均衡,而且没有考虑将虚拟服务器部署到物理服务器上引起的温度变化以及由此产生的温度不均衡问题,当初次分配后各物理服务器之间的温度仍然不均衡、或者物理服务器出现高温报警时,无法对物理服务器进行进一步的温度均衡,不能很好地实现多物理服务器之间的温度均衡。

发明内容

[0006] 本发明的实施例提供一种实现多物理服务器之间温度均衡的方法及装置,能够很好地实现多物理服务器之间的温度均衡。
[0007] 本发明实施例采用的技术方案为:
[0008] 一种实现多物理服务器之间温度均衡的方法,包括:
[0009] 判断是否有物理服务器的温度超过温度警戒值,如果有,则对所述物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值;
[0010] 如果各物理服务器的温度均未超过温度警戒值,则比较各物理服务器中最高温度与最低温度之间的差值是否大于预设差值,如果大于预设差值,则将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上;
[0011] 如果各物理服务器中最高温度与最低温度之间的差值不大于预设差值,则将待分配的虚拟服务器分配到合适的物理服务器上。
[0012] 一种实现多物理服务器之间温度均衡的装置,包括:
[0013] 判断模块,用于判断是否有物理服务器的温度超过温度警戒值;
[0014] 第一迁移模块,用于当有物理服务器的温度超过温度警戒值时,对所述物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值;
[0015] 比较模块,用于当各物理服务器的温度均未超过温度警戒值时,比较各物理服务器中最高温度与最低温度之间的差值是否大于预设差值;
[0016] 第二迁移模块,用于当各物理服务器中最高温度与最低温度之间的差值大于预设差值时,将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上;
[0017] 分配模块,用于当各物理服务器中最高温度与最低温度之间的差值不大于预设差值时,将待分配的虚拟服务器分配到合适的物理服务器上。
[0018] 本发明实施例提供的实现多物理服务器之间温度均衡的方法及装置,首先将温度超过温度警戒值的物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值;在各物理服务器中最高温度与最低温度之间的差值大于预设差值时,将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上;然后将待分配的虚拟服务器分配到合适的物理服务器上。与现有技术相比,本发明实施例能够在物理服务器出现温度告警、各物理服务器之间温度不均衡以及具有待分配的虚拟服务器时,将虚拟服务器分配到合适的物理服务器上,从而能够很好地实现多物理服务器之间的温度均衡,保证各物理服务器能够正常工作和提供高性能服务。

附图说明

[0019] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0020] 图1为本发明实施例一提供的方法流程图;
[0021] 图2为本发明实施例二提供的方法流程图;
[0022] 图3、图4为本发明实施例三提供的装置结构示意图。

具体实施方式

[0023] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0024] 为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。
[0025] 实施例一
[0026] 本实施例提供一种实现多物理服务器之间温度均衡的方法,如图1所示,所述方法包括:
[0027] 101、判断是否有物理服务器的温度超过温度警戒值,如果有,则对所述物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值。
[0028] 102、如果各物理服务器的温度均未超过温度警戒值,则比较各物理服务器中最高温度与最低温度之间的差值是否大于预设差值,如果大于预设差值,则将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上。
[0029] 103、如果各物理服务器中最高温度与最低温度之间的差值不大于预设差值,则将待分配的虚拟服务器分配到合适的物理服务器上。
[0030] 本发明实施例提供的实现多物理服务器之间温度均衡的方法,首先将温度超过温度警戒值的物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值;在各物理服务器中最高温度与最低温度之间的差值大于预设差值时,将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上;然后将待分配的虚拟服务器分配到合适的物理服务器上。与现有技术相比,本发明实施例能够在物理服务器出现温度告警、各物理服务器之间温度不均衡以及具有待分配的虚拟服务器时,将虚拟服务器分配到合适的物理服务器上,从而能够很好地实现多物理服务器之间的温度均衡,保证各物理服务器能够正常工作和提供高性能服务。
[0031] 实施例二
[0032] 本实施例提供一种实现多物理服务器之间温度均衡的方法,如图2所示,所述方法包括:
[0033] 201、获取当前时刻所有物理服务器的温度,将所有物理服务器按温度升序排列形成资源队列A。
[0034] 其中,当物理服务器刚增加或删除虚拟服务器时,其温度为刚增加或删除虚拟服务器时的真实温度加上或减去该虚拟服务器的温度,之后该物理服务器的温度一直保持不变,直到时间t后才把该物理服务器的温度改为它的实际温度。其中,所述时间t为增加或删除虚拟服务器后物理服务器的温度稳定所需的时间。
[0035] 进一步的,当物理服务器未启动时,它的温度还应在当前温度基础上加上启动温度。
[0036] 202、接收新来的任务,根据类型的不同,将各任务加入相应的队列。
[0037] 所述任务可以包括报警任务、调优任务和用户请求任务三种,其中,报警任务是由报警系统发出的,报警任务用于提示物理服务器的温度超过温度警戒值C;调优任务可以是定时触发,也可以是由系统管理员发出的;用户请求任务是要求分配虚拟服务器的请求。
[0038] 可选的,如果用户请求任务为删除虚拟服务器的请求,则直接将该虚拟服务器关闭,并且删除该虚拟服务器。
[0039] 根据任务的不同,设置有优先级从高到低的四个队列:报警队列、执行队列、调优队列和等待队列。将报警任务加入报警队列;调优任务加入调优队列;用户请求任务加入执行队列;如果是立即执行的用户请求任务,则开始执行,如果是预定的用户请求任务,则先判断能否满足用户请求后,将其加入等待队列,然后每次从执行队列中取任务之前都先到等待队列中将执行时间已到的用户请求任务加入到执行队列。
[0040] 203、查看报警队列,判断报警队列中是否有报警任务,如果有,则执行步骤204,如果没有,则执行步骤205。
[0041] 204、从报警队列中取出报警任务,计算该报警任务对应的物理服务器的温度与该物理服务器温度警戒值C之差W,获知需要迁移的虚拟服务器数量N,其中,N满足的条件是:温度最高的N-1个虚拟服务器温度之和≤W≤温度最高的N个虚拟服务器温度之和,依次将该物理服务器上温度最高的N个虚拟服务器迁移到合适的物理服务器上,返回步骤201。
[0042] 具体地,将虚拟服务器迁移到合适的物理服务器上的方法具体为:
[0043] S1、从资源队列A取出前M个物理服务器,如未启动,则启动。
[0044] S2、分别计算将该虚拟服务器试迁移到每个物理服务器上的均差,其中,所述均差等于每个物理服务器的温度与物理服务器的平均温度之差的绝对值之和。
[0045] S3、找出均差最小的物理服务器,只要分配后该物理服务器温度加上虚拟服务器温度不超过该物理服务器温度警戒值C,且物理服务器的可用资源足够,则将该虚拟服务器迁移到该物理服务器上,否则找出均差次小的物理服务器继续分配;如果所述M个物理服务器都不满足上述条件,则从资源队列A剩下的物理服务器中以同样方式找一个物理服务器分配;如果资源队列A中的所有物理服务器都不满足上述条件,则发出增加物理服务器的请求。
[0046] 其中,虚拟服务器的温度TVM指的是添加或删除该虚拟服务器后物理服务器增加或减少的温度。所述虚拟服务器的温度TVM可以按照以下公式计算得出:
[0047] Q(u)=b1+(bT-b1)u (1)
[0048] Q=cmΔt (2)
[0049] 由式(2)可得:
[0050] Q(u)=cmTVM (3)
[0051] b1=cmT1 (4)
[0052] bT=cmTT (5)
[0053] 将式(3)、(4)、(5)代入式(1)可得:
[0054] TVM=T1+(TT-T1)u (6)
[0055] 其中,U表示物理服务器或虚拟服务器的利用率;
[0056] Q(u)表示物理服务器利用率为u时的热量;
[0057] b1表示物理服务器空载时的热量;
[0058] bT表示物理服务器满载时的热量;
[0059] T1表示分配虚拟服务器后,虚拟服务器空载时物理服务器增加的温度;
[0060] TT表示分配虚拟服务器后,虚拟服务器满载时物理服务器增加的温度;
[0061] Δt表示物理服务器变化的温度;
[0062] C表示物理服务器的比热容;
[0063] M表示物理服务器的质量。
[0064] 205、查看调优队列,判断调优队列中是否有调优任务,如果有,则执行步骤206;如果没有,则执行步骤208。
[0065] 206、将资源队列A中物理服务器最高温度与最低温度的差值D与预设的最高温度和最低温度间的最大差值F进行比较,判断D是否大于F,如果D>F,则执行步骤207;如果D≤F,则执行步骤208。
[0066] 207、取出温度最高的物理服务器上温度最高的虚拟服务器,将该虚拟服务器迁移到合适的物理服务器上,返回步骤201。
[0067] 具体地,将虚拟服务器迁移到合适的物理服务器上的方法可以参照S1-S3所述的步骤进行。
[0068] 以五个物理服务器PM1、PM2、PM3、PM4和PM5为例进行说明,各物理服务器的温度、各物理服务器上包含的虚拟服务器以及各物理服务器的资源使用情况如表1所示:
[0069]
[0070] 表1
[0071] 在表1中,各物理服务器包含的虚拟服务器以分配到该物理服务器上增加的温度表示,其中,以PM1为例,PM1上包含4,5两个虚拟服务器,也就是说,PM1上的两个虚拟服务器分配到PM1上增加的温度分别为4和5。
[0072] 其中,预设的物理服务器最高温度和最低温度间的最大差值F=5,由于所述五个物理服务器最高温度与最低温度的差值D=13>F=5,因此需要迁移虚拟服务器。
[0073] 具体迁移过程如下(假定每次迁移后各物理服务器的温度不超过该物理服务器温度警戒值C):
[0074] (1)第一次迁移:找出温度最高的物理服务器PM3,以及该物理服务器上温度最高的虚拟服务器,该虚拟服务器的温度为5,该虚拟服务器试迁移到各物理服务器上的均差分别为:
[0075] 分配在PM1上的均差为:15.60;
[0076] 分配在PM2上的均差为:23.20;
[0077] 分配在PM3上的均差为:22.00;
[0078] 分配在PM4上的均差为:17.20;
[0079] 分配在PM5上的均差为:21.20。
[0080] 由于分配在PM1上的均差最小,因此将该虚拟服务器迁移至PM1上,第一次迁移后各物理服务器的温度、各物理服务器上包含的虚拟服务器以及各物理服务器的资源使用情况如表2所示:
[0081]
[0082]
[0083] 表2
[0084] 由表2能够看出,第一次迁移后各物理服务器的已用资源均未达到上限。第二次迁移后所述五个物理服务器最高温度与最低温度的差值D=9>F=5,因此需要继续迁移虚拟服务器。
[0085] (2)第二次迁移:找出温度最高的物理服务器PM2,以及该物理服务器上温度最高的虚拟服务器,有两个温度为5的虚拟服务器,任取一个,该虚拟服务器试迁移到各物理服务器上的均差分别为:
[0086] 分配在PM1上的均差为:12.00;
[0087] 分配在PM2上的均差为:15.60;
[0088] 分配在PM3上的均差为:14.40;
[0089] 分配在PM4上的均差为:9.60;
[0090] 分配在PM5上的均差为:12.80。
[0091] 由于分配在PM4上的均差最小,因此将该虚拟服务器迁移至PM4上,第二次迁移后各物理服务器的温度、各物理服务器上包含的虚拟服务器以及各物理服务器的资源使用情况如表3所示:
[0092]
[0093]
[0094] 表3
[0095] 由表3能够看出,第二次迁移后各物理服务器的已用资源均未达到上限。第二次迁移后所述五个物理服务器最高温度与最低温度的差值D=6>F=5,因此需要继续迁移虚拟服务器。
[0096] (3)第三次迁移:找出温度最高的物理服务器PM3,以及该物理服务器上温度最高的虚拟服务器,该虚拟服务器的温度为5,该虚拟服务器试迁移到各物理服务器上的均差分别为:
[0097] 分配在PM1上的均差为:6.80;
[0098] 分配在PM2上的均差为:10.80;
[0099] 分配在PM3上的均差为:9.60;
[0100] 分配在PM4上的均差为:7.20;
[0101] 分配在PM5上的均差为:7.60。
[0102] 由于分配在PM1上的均差最小,因此将该虚拟服务器迁移至PM1上,第三次迁移后各物理服务器的温度、各物理服务器上包含的虚拟服务器以及各物理服务器的资源使用情况如表4所示:
[0103]
[0104]
[0105] 表4
[0106] 由表4能够看出,第三次迁移后各物理服务器的已用资源均未达到上限。此时,所述五个物理服务器最高温度与最低温度的差值D=4<F=5,不需要继续迁移虚拟服务器。
[0107] 208、查看执行队列,判断执行队列中是否有立即执行的用户请求任务,如果有,则执行步骤211;如果没有,则执行步骤209。
[0108] 209、对执行队列中预订的用户请求任务进行检测,判断是接受还是拒绝该用户请求任务,并告知用户,并将接受的用户请求任务放入等待队列。
[0109] 210、将等待队列中开始时间已到的用户请求任务加入执行队列。
[0110] 211、将执行队列中的用户请求任务按虚拟服务器温度降序排列,依次将各虚拟服务器分配到合适的物理服务器上,返回步骤201。
[0111] 具体地,将虚拟服务器分配到合适的物理服务器上的方法可以参照S1-S3所述的步骤进行。
[0112] 以等待队列中具有三个用户请求任务为例进行说明,三个用户请求任务分别请求分配虚拟服务器VM1、VM2和VM3,当前具有五个物理服务器PM1、PM2、PM3、PM4和PM5。其中,各物理服务器的温度和资源使用情况如表5所示:
[0113]
[0114] 表5
[0115] 其中,不同规格的虚拟服务器分配在不同规格的物理服务器上增加的温度不同,各虚拟服务器分配在各物理服务器上所增加的温度如表6所示:
[0116]PM1 PM2 PM3 PM4 PM5
VM1 5 3 2 3 1
VM2 4 3 2 2 1
VM3 3 2 1 2 1
[0117] 表6
[0118] 各虚拟服务器请求的CPU、内存和网络带宽资源大小如表7所示:
[0119]CPU(CU) 内存(G) 网络带宽(Mbps)
VM1 2 2 100
VM2 1 2 100
VM3 1 1 100
[0120] 表7
[0121] 具体分配过程如下所述(假定每次分配后各物理服务器的温度不超过该物理服务器温度警戒值C):
[0122] (1)以分配在PM1上的温度为准,对各虚拟服务器的温度按照降序排列:VM1、VM2、VM3。
[0123] (2)第一次分配:将温度最高的虚拟服务器VM1试分配到各物理服务器上的均差分别为:
[0124] 分配在PM1上的均差为:6.00;
[0125] 分配在PM2上的均差为:6.40;
[0126] 分配在PM3上的均差为:7.60;
[0127] 分配在PM4上的均差为:9.60;
[0128] 分配在PM5上的均差为:7.20。
[0129] 由于分配在PM1上的均差最小,因此将虚拟服务器VM1分配到PM1上,根据表5、表6和表7可知,第一次分配后各物理服务器的温度和资源使用情况如表8所示:
[0130]
[0131] 表8
[0132] 由表8能够看出,第一次分配后各物理服务器的资源均未达到上限,可以进行分配。
[0133] (3)第二次分配:将温度最高的虚拟服务器VM2试分配到各物理服务器上的均差分别为:
[0134] 分配在PM1上的均差为:10.80;
[0135] 分配在PM2上的均差为:4.40;
[0136] 分配在PM3上的均差为:5.60;
[0137] 分配在PM4上的均差为:7.60;
[0138] 分配在PM5上的均差为:7.20。
[0139] 由于分配在PM2上的均差最小,因此将虚拟服务器VM2分配到PM2上,根据表6、表7和表8可知,第二次分配后各物理服务器的温度和资源使用情况如表9所示:
[0140]
[0141] 表9
[0142] 由表9能够看出,第二次分配后各物理服务器的资源均未达到上限,可以进行分配。
[0143] (4)第三次分配:将温度最高的虚拟服务器VM3试分配到各物理服务器上的均差分别为:
[0144] 分配在PM1上的均差为:7.60;
[0145] 分配在PM2上的均差为:6.00;
[0146] 分配在PM3上的均差为:3.20;
[0147] 分配在PM4上的均差为:4.00;
[0148] 分配在PM5上的均差为:5.20。
[0149] 由于分配在PM3上的均差最小,因此将虚拟服务器VM3分配到PM3上,根据表6、表7和表9可知,第三次分配后各物理服务器的温度和资源使用情况如表10所示:
[0150]
[0151] 表10
[0152] 由表10能够看出,第三次分配后各物理服务器的资源均未达到上限,可以进行分配。
[0153] 至此,将三个虚拟服务器分配到合适的物理服务器上。
[0154] 进一步的,如果用户请求任务为虚拟服务器集群,则按到达先后顺序依次放在队首,然后从执行队列取出第一个用户请求任务,找到能满足这个虚拟服务器集群要求且平均温度最低的物理服务器集群,参照步骤S1-S3所述的方法,将所述虚拟服务器集群请求分配在该物理服务器集群上。
[0155] 本发明实施例提供的实现多物理服务器之间温度均衡的方法,首先将温度超过温度警戒值的物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值;在各物理服务器中最高温度与最低温度之间的差值大于预设差值时,将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上;然后将待分配的虚拟服务器分配到合适的物理服务器上。与现有技术相比,本发明实施例能够在物理服务器出现温度告警、各物理服务器之间温度不均衡以及具有待分配的虚拟服务器时,将虚拟服务器分配到合适的物理服务器上,从而能够很好地实现多物理服务器之间的温度均衡,保证各物理服务器能够正常工作和提供高性能服务。
[0156] 实施例三
[0157] 本实施例提供一种实现多物理服务器之间温度均衡的装置,如图3所示,所述装置包括:
[0158] 判断模块31,用于判断是否有物理服务器的温度超过温度警戒值;
[0159] 第一迁移模块32,用于当有物理服务器的温度超过温度警戒值时,对所述物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值;
[0160] 比较模块33,用于当各物理服务器的温度均未超过温度警戒值时,比较各物理服务器中最高温度与最低温度之间的差值是否大于预设差值;
[0161] 第二迁移模块34,用于当各物理服务器中最高温度与最低温度之间的差值大于预设差值时,将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上;
[0162] 分配模块35,用于当各物理服务器中最高温度与最低温度之间的差值不大于预设差值时,将待分配的虚拟服务器分配到合适的物理服务器上。
[0163] 进一步的,如图4所示,所述第一迁移模块32可以包括:
[0164] 第一计算单元321,用于计算所述物理服务器的温度与所述物理服务器的温度警戒值之差W;
[0165] 获取单元322,用于获取需要迁移的虚拟服务器的数量N,其中,温度最高的N-1个虚拟服务器温度之和≤W≤温度最高的N个虚拟服务器温度之和;
[0166] 第一迁移单元323,用于按照温度由高到低的顺序,依次将虚拟服务器迁移到合适的物理服务器上。
[0167] 其中,如图4所示,所述第一迁移单元323可以包括:
[0168] 第一计算子单元3231,用于分别计算将所述虚拟服务器试迁移到各物理服务器上的均差,其中,所述均差等于试迁移后每个物理服务器的温度与所有物理服务器的平均温度之差的绝对值之和;
[0169] 迁移子单元3232,用于将所述虚拟服务器迁移到均差最小的物理服务器上,其中,迁移后所述物理服务器的温度不超过所述物理服务器的温度警戒值,且所述物理服务器的可用资源量不超过总资源量。
[0170] 进一步的,如图4所示,所述第二迁移模块34可以包括:
[0171] 第二计算单元341,用于分别计算将所述温度最高的虚拟服务器试迁移到各物理服务器上的均差,其中,所述均差等于试迁移后每个物理服务器的温度与所有物理服务器的平均温度之差的绝对值之和;
[0172] 第二迁移单元342,用于将所述温度最高的虚拟服务器迁移到均差最小的物理服务器上,其中,迁移后所述物理服务器的温度不超过所述物理服务器的温度警戒值,且所述物理服务器的可用资源量不超过总资源量。
[0173] 进一步的,如图4所示,所述分配模块35可以包括:
[0174] 分配单元351,用于按照温度由高到低的顺序,依次将待分配的虚拟服务器分配到合适的物理服务器上。
[0175] 其中,如图4所示,所述分配单元351可以包括:
[0176] 第二计算子单元3511,用于分别计算将所述虚拟服务器试分配到各物理服务器上的均差,其中,所述均差等于试分配后每个物理服务器的温度与所有物理服务器的平均温度之差的绝对值之和;
[0177] 分配子单元3512,用于将所述虚拟服务器分配到均差最小的物理服务器上,其中,分配后所述物理服务器的温度不超过所述物理服务器的温度警戒值,且所述物理服务器的可用资源量不超过总资源量。
[0178] 本发明实施例提供的实现多物理服务器之间温度均衡的装置,首先将温度超过温度警戒值的物理服务器上的虚拟服务器进行迁移,以使所述物理服务器的温度不超过所述物理服务器的温度警戒值;在各物理服务器中最高温度与最低温度之间的差值大于预设差值时,将温度最高的物理服务器上温度最高的虚拟服务器迁移到合适的物理服务器上;然后将待分配的虚拟服务器分配到合适的物理服务器上。与现有技术相比,本发明实施例能够在物理服务器出现温度告警、各物理服务器之间温度不均衡以及具有待分配的虚拟服务器时,将虚拟服务器分配到合适的物理服务器上,从而能够很好地实现多物理服务器之间的温度均衡,保证各物理服务器能够正常工作和提供高性能服务。
[0179] 在本发明的所有实施例中,所述物理服务器可以为刀片服务器,但不仅限于此。
[0180] 本发明实施例提供的实现多物理服务器之间温度均衡的装置可以实现上述提供的方法实施例。本发明实施例提供的实现多物理服务器之间温度均衡的方法及装置可以适用于对云计算数据中心的多个物理服务器进行温度均衡,但不仅限于此。
[0181] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0182] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。