CN105373451A - 一种虚拟机放置的方法及装置 - Google Patents

一种虚拟机放置的方法及装置 Download PDF

Info

Publication number
CN105373451A
CN105373451A CN201510891737.1A CN201510891737A CN105373451A CN 105373451 A CN105373451 A CN 105373451A CN 201510891737 A CN201510891737 A CN 201510891737A CN 105373451 A CN105373451 A CN 105373451A
Authority
CN
China
Prior art keywords
virtual machine
host
machine
physical
emplacement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510891737.1A
Other languages
English (en)
Other versions
CN105373451B (zh
Inventor
童俊杰
符刚
赫罡
薛淼
苗杰
马泽芳
李勇辉
刘牧寅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN201510891737.1A priority Critical patent/CN105373451B/zh
Publication of CN105373451A publication Critical patent/CN105373451A/zh
Application granted granted Critical
Publication of CN105373451B publication Critical patent/CN105373451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种虚拟机放置的方法及装置,涉及通信技术领域,能够提高虚拟机的可靠性。本发明实施例的方法包括:获取第一数量、流量参数和资源参数;根据第一数量、流量参数和资源参数,确定主虚拟机的放置方式,主虚拟机的放置方式用于表示每个主虚拟机的放置位置;根据主虚拟机的放置方式,确定主影子虚拟机的放置方式,主影子虚拟机的放置方式用于表示每个主影子虚拟机的放置位置;当主虚拟机中的目标虚拟机产生故障时,将目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行目标虚拟机未执行完的业务。本发明适用于一种网络系统。

Description

一种虚拟机放置的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种虚拟机放置的方法及装置。
背景技术
随着通信技术的发展,尤其是虚拟化技术的普及,使得同一台物理机上能够同时运行多台虚拟机,并且由该物理机为同时运行的多台虚拟机提供资源。运行在同一台物理机上的多台虚拟机能够共享该物理机的资源,从而有效提高资源利用率。
目前,为了确保物理机能够承载运行在该物理机上的多台虚拟机,在虚拟机的放置过程中,可以根据该物理机的资源利用率,采用装箱算法,诸如FF(FristFit,首次适应)或FFD(FirstFitDecreasing,降序首次适应)方法,来实现虚拟机的合理放置。采用上述方法对虚拟机进行放置之后,当多台虚拟机的其中一台虚拟机产生故障时,导致产生故障的虚拟机当前正在执行的业务中断,从而降低了虚拟机的可靠性。
发明内容
本发明实施例提供一种虚拟机放置的方法及装置,能够提高虚拟机的可靠性。
为达到上述目的,本发明实施例采用如下技术方案:
第一方面,本发明实施例提供一种虚拟机放置的方法,所述方法用于一种网络系统,所述网络系统设置有物理机、主虚拟机和所述主虚拟机对应的主影子虚拟机,每个主虚拟机所需的物理资源与所述每个主虚拟机对应的主影子虚拟机所需的物理资源相同,所述方法包括:
获取第一数量、流量参数和资源参数,所述第一数量为用于放置所述物理机的机架的总数量,所述流量参数包括所述主虚拟机中所有虚拟机两两之间进行通信所需的流量,所述资源参数包括第一资源和第二资源,所述第一资源包括所述物理机中每个物理机能够为虚拟机提供的物理资源,所述第二资源包括所述每个主虚拟机所需的物理资源;
根据所述第一数量、所述流量参数和所述资源参数,确定所述主虚拟机的放置方式,所述主虚拟机的放置方式用于表示所述每个主虚拟机的放置位置;
根据所述主虚拟机的放置方式,确定所述主影子虚拟机的放置方式,所述主影子虚拟机的放置方式用于表示所述每个主影子虚拟机的放置位置;
当所述主虚拟机中的目标虚拟机产生故障时,将所述目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行所述目标虚拟机未执行完的业务。
第二方面,本发明实施例提供一种虚拟机放置的装置,所述装置用于一种网络系统,所述网络系统设置有物理机、主虚拟机和所述主虚拟机对应的主影子虚拟机,每个主虚拟机所需的物理资源与所述每个主虚拟机对应的主影子虚拟机所需的物理资源相同,所述装置包括:
获取模块,用于获取第一数量、流量参数和资源参数,所述第一数量为用于放置所述物理机的机架的总数量,所述流量参数包括所述主虚拟机中所有虚拟机两两之间进行通信所需的流量,所述资源参数包括第一资源和第二资源,所述第一资源包括所述物理机中每个物理机能够为虚拟机提供的物理资源,所述第二资源包括所述每个主虚拟机所需的物理资源;
确定模块,用于根据所述第一数量、所述流量参数和所述资源参数,确定所述主虚拟机的放置方式,所述主虚拟机的放置方式用于表示所述每个主虚拟机的放置位置;
所述确定模块,还用于根据所述主虚拟机的放置方式,确定所述主影子虚拟机的放置方式,所述主影子虚拟机的放置方式用于表示所述每个主影子虚拟机的放置位置;
配置模块,用于当所述主虚拟机中的目标虚拟机产生故障时,将所述目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行所述目标虚拟机未执行完的业务。
本发明实施例提供的一种虚拟机放置的方法及装置,根据所获取的第一数量、流量参数和资源参数,确定主虚拟机的放置方式,之后根据主虚拟机的放置方式,确定主影子虚拟机的放置方式,之后当主虚拟机中的目标虚拟机产生故障时,将目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行目标虚拟机未执行完的业务。其中,第一数量为用于放置物理机的机架的总数量,流量参数包括主虚拟机中所有虚拟机两两之间进行通信所需的流量,资源参数包括第一资源和第二资源,第一资源包括物理机中每个物理机能够为虚拟机提供的物理资源,第二资源包括每个主虚拟机所需的物理资源,主虚拟机的放置方式用于表示每个主虚拟机的放置位置,主影子虚拟机的放置方式用于表示每个主影子虚拟机的放置位置。相比较于现有技术中仅考虑物理机的资源利用率,采用装箱算法对虚拟机进行放置,本发明可以通过设置主虚拟机和主影子虚拟机,并在根据第一数量、流量参数和资源参数确定主虚拟机的放置方式之后,确定主影子虚拟机的放置方式,以确保当主虚拟机产生故障时,主影子虚拟机可以直接继续执行主虚拟机未完成的任务,从而提高虚拟机的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种虚拟机放置的方法流程图;
图2为本发明实施例提供的一种具体应用场景下虚拟机放置的结构示意图;
图3为本发明实施例提供的另一种虚拟机放置的方法流程图;
图4为本发明实施例提供的另一种具体应用场景下虚拟机放置的结构示意图;
图5为本发明实施例提供的另一种虚拟机放置的方法流程图;
图6为本发明实施例提供的另一种具体应用场景下虚拟机放置的结构示意图;
图7为本发明实施例提供的另一种虚拟机放置的方法流程图;
图8为本发明实施例提供的一种虚拟机放置的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例可以用于一种网络系统,在网络系统中可以设置有物理机、主虚拟机、主虚拟机对应的主影子虚拟机。在本发明实施例中,为了进一步确保网络系统的可靠性,还可以为主虚拟机设置次影子虚拟机,也就是主虚拟机对应的次影子虚拟机。其中,每个主虚拟机所需的物理资源与每个主虚拟机对应的主影子虚拟机所需的物理资源相同,也与每个主虚拟机对应的次影子虚拟机所需的物理资源相同。需要说明的是,当主虚拟机产生故障时,将主虚拟机对应的主影子虚拟机配置为新的主虚拟机,并执行在故障发生之前旧的主虚拟机未执行完的业务,此时,将次影子虚拟机配置为新的主影子虚拟机,以便于当新的主虚拟机产生故障时,能够及时将业务切换至新的主影子虚拟机。
本发明实施例提供一种虚拟机放置的方法,如图1所示,该方法均有服务器来执行,该方法包括:
101、获取第一数量、流量参数和资源参数。
其中,第一数量为用于放置物理机的机架的总数量,流量参数包括主虚拟机中所有虚拟机两两之间进行通信所需的流量,资源参数包括第一资源和第二资源,第一资源包括物理机中每个物理机能够为虚拟机提供的物理资源,第二资源包括每个主虚拟机所需的物理资源。
在本发明实施例中,物理资源可以包括CPU(CentralProcessingUnit,中央处理器)、内存和带宽。需要说明的是,物理资源的种类在本发明实施例中不作具体限定,可以为上述物理资源中的至少一项,或是除上述CPU、内存和带宽以外的其他种类的物理资源。
例如:共设置有3个机架,用集合R来表示,R={r1,r1,r3}。其中,每个机架上设置有3个物理机,分别为物理机1、物理机2和物理机3。上述物理机的规格相同,物理资源可以统一为32核的CPU、128G的内存和1.5G的带宽,也就是第一资源可以具体表示为pc=32核,pm=128G,pb=1.5G,其中,pc表示每个物理机能够为虚拟机提供的CPU,pm表示每个物理机能够为虚拟机提供的内存,pb表示每个物理机能够为虚拟机提供的带宽。如表一所示,为虚拟机的物理资源需求,也就是每个主虚拟机的第二资源。表一所示虚拟机集合V中的8个虚拟机均为主虚拟机,集合V={v1,v2,…v8}。其中,表示虚拟机vi所需的CPU,表示虚拟机vi所需的内存,表示虚拟机vi所需的带宽。
表一
如表二所示,为集合V={v1,v2,…v8}中所有虚拟机两两之间进行通信所需的流量,也就是虚拟机之间的通信需求。其中,虚拟机之间不存在通信,则流量记为0。
表二
102、根据第一数量、流量参数和资源参数,确定主虚拟机的放置方式。
其中,主虚拟机的放置方式用于表示每个主虚拟机的放置位置。
在本发明实施例中,仅设置有3个机架,因此,需要将主虚拟机分为3组。参考表二所示的集合V={v1,v2,…v8}中所有虚拟机两两之间进行通信所需的流量,将流量按照降序排列,依次为:v2和v3,v1和v3,v4和v8,v4和v5,v3和v4,v6和v7,v5和v6。取所需流量最大的组合,也就是v2和v3放置在第一机架的物理机1上;在除v2和v3以外的组合中选择流量次大,且不包括v2或v3的组合,也就是v4和v8,并将v4和v8放置在第二机架的物理机1上;同理,将v6和v7放置在第三机架的物理机1上。其中,在上述3组虚拟机的放置过程中,应确保物理机1可以承载该虚拟机组合,需要说明的是,在本发明实施例中,默认按照虚拟机组合所需的流量大小来对应到不同位置的机架,在具体实现过程中,虚拟机组合的放置位置可以调整,也就是只要将3组虚拟机组合分别放置在不同的机架上即可。在流量按照降序排列的结果中,除去已经放置好的虚拟机组合,在保证剩余组合的虚拟机按照流量大小降序排列的条件下,剩余组合依次为:v1和v3,v4和v5,v3和v4,v5和v6。由于组合v1和v3与第一机架上的虚拟机组合存在节点重合,也就是v1和v3,与v2和v3存在共同的虚拟机v3,因此,在确保第一机架的物理机1可以承载v1、v2和v3时,将v1放置在第一机架的物理机1上;同理,v4和v5与第二机架上的虚拟机组合存在共同的虚拟机v4,因此,在确保第二机架的物理机1可以承载v4、v5和v8时,将v5放置在第二机架的物理机1上,从而得到如图2所示的无向加权流量图。
需要说明的是,为了进一步保证3个机架的物理机1的负载均衡,可以对无向加权流量图中各个主虚拟机的放置方式进行调整。根据表一所示的各个虚拟机的物理资源需求,将上述所有虚拟机的资源进行归一化处理,得到如表三所示的归一化后的虚拟机对于物理资源的需求。归一化的处理过程可以具体为:确定8个虚拟机中对CPU需求最高的虚拟机,也就是v6,并将8核对应数字1,通过分别计算其他7个虚拟机对应的CPU需求占8核的百分比,来确定其他7个虚拟机归一化后的结果,也就是在确定了目标物理资源的最大值之后,通过计算其他虚拟机对应目标物理资源的数值与该目标物理资源的最大值的比值,来确定归一化后的结果;同理,可将表二所示的所有物理资源进行归一化处理。
表三
根据表三所示的参数,以及公式difr=difrc+difrm+difrb,进行计算得到每个机架之间的物理资源差异性参数,其中,difr为各机架之间的资源差异性参数,difrc为所有虚拟机以机架为单位经计算得到的在CPU需求上的标准差,difrm为所有虚拟机以机架为单位经计算得到的在内存需求上的标准差,difrb为所有虚拟机以机架为单位经计算得到的在带宽需求上的标准差。比如:如图2所示的应用场景下,各机架之间的资源差异性参数difr=0.077+0.121+0.056=0.254。
在本发明实施例中,还可以根据表三所示的参数,经过计算,得到每个机架的总资源需求的平均值。需要说明的是,每个机架的总资源需求的平均值具体可以为该机架上所有主虚拟机对CPU的总需求与所有主虚拟机对内存的需求,以及所有主虚拟机对带宽的需求之和,再除以3。比如:如图2所示的应用场景下,第一机架的总资源需求的平均值为 ( 0.5 + 0.5 + 0.75 ) + ( 0.5 + 0.25 + 1 ) + ( 0.25 + 0.75 + 0.25 ) 3 = 1.75 + 1.75 + 1.25 3 ≈ 1.583 , 第二机架的总资源需求的平均值为 ( 0.75 + 0.25 + 0.5 ) + ( 1 + 0.25 + 0.25 ) + ( 1 + 0.25 + 0.5 ) 3 = 1.5 + 1.5 + 1.75 3 ≈ 1.583 , 第三机架的总资源需求的平均值为 ( 1 + 0.5 ) + ( 0.25 + 1 ) + ( 0.25 + 0.75 ) 3 = 1.5 + 1.25 + 1 3 ≈ 1.250. 在确定了每个机架的总资源需求的平均值之后,确定所有经过计算得到的总资源需求的平均值中的最大值和最小值,当最大值与最小值的大小不相同,且最大值对应的机架与最小值对应的机架之间存在通信时,也就是当经过计算得到的总资源需求的平均值中每个平均值的大小均不相同,且最大值对应的机架与最小值对应的机架之间存在连边时,则将最大值对应的机架与最小值对应的机架中存在通信的节点从最大值对应的机架迁移至最小值对应的机架,或是从最小值对应的机架迁移至最大值对应的机架。在完成节点的迁移之后,采用上述方法计算得到各机架之间的资源差异性参数difr,并当完成迁移之后的difr小于迁移之前的difr时,将迁移后的主虚拟机放置方式作为最终的主虚拟机的放置方式。需要说明的是,在本发明实施例中,可能同时存在多种迁移方法,为了保证迁移后的difr最小,可以分别计算每种迁移方式对应的difr,并从中确定最小difr对应的主虚拟机放置方式作为最终的主虚拟机的放置方式。
103、根据主虚拟机的放置方式,确定主影子虚拟机的放置方式。
其中,主影子虚拟机的放置方式用于表示每个主影子虚拟机的放置位置。
104、当主虚拟机中的目标虚拟机产生故障时,将目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行目标虚拟机未执行完的业务。
本发明实施例提供的一种虚拟机放置的方法,根据所获取的第一数量、流量参数和资源参数,确定主虚拟机的放置方式,之后根据主虚拟机的放置方式,确定主影子虚拟机的放置方式,之后当主虚拟机中的目标虚拟机产生故障时,将目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行目标虚拟机未执行完的业务。其中,第一数量为用于放置物理机的机架的总数量,流量参数包括主虚拟机中所有虚拟机两两之间进行通信所需的流量,资源参数包括第一资源和第二资源,第一资源包括物理机中每个物理机能够为虚拟机提供的物理资源,第二资源包括每个主虚拟机所需的物理资源,主虚拟机的放置方式用于表示每个主虚拟机的放置位置,主影子虚拟机的放置方式用于表示每个主影子虚拟机的放置位置。相比较于现有技术中仅考虑物理机的资源利用率,采用装箱算法对虚拟机进行放置,本发明可以通过设置主虚拟机和主影子虚拟机,并在根据第一数量、流量参数和资源参数确定主虚拟机的放置方式之后,确定主影子虚拟机的放置方式,以确保当主虚拟机产生故障时,主影子虚拟机可以直接继续执行主虚拟机未完成的任务,从而提高虚拟机的可靠性。
为了保证当主虚拟机产生故障时,能迅速切换至主影子虚拟机进行业务的执行,在本发明实施例的一个实现方式中,可以通过确保完成主影子虚拟机的放置之后,主影子虚拟机不与主虚拟机共用同一份物理资源,来确保故障产生之后的迅速切换。因此,在本发明实施例中,设置第一数量为N,其中,N为大于1的正整数,在如图1所示的实现方式的基础上,还可以实现为如图3所示的实现方式。其中,步骤103根据主虚拟机的放置方式,确定主影子虚拟机的放置方式,可以具体实现为步骤1031至步骤1033:
1031、获取主影子虚拟机对应主虚拟机的放置位置。
1032、当主虚拟机的放置位置为第N个机架时,确定主影子虚拟机的放置位置为第1个机架。
1033、当主虚拟机的放置位置为第M个机架时,确定主影子虚拟机的放置位置为第M+1个机架。
其中,M为小于N的正整数。
在本发明实施例中,可以根据公式确定每个主影子虚拟机的放置位置,其中,N表示第一数量,N大于或等于1,M表示主影子虚拟机对应的主虚拟机放置的机架为第M个机架,M大于或等于1,且M小于或等于N,rM+1表示第M+1个机架,r1表示第1个机架,groupM表示主虚拟机放置的机架为第M个机架时,主虚拟机对应的主影子虚拟机的放置方式。
例如:如图4所示,当主虚拟机1至3被设置于第一机架的物理机1上时,主影子虚拟机1至3则被设置于第二机架的物理机2上;当主虚拟机4、5和8被设置于第二机架的物理机1上时,主影子虚拟机4、5和8则被设置于第三机架的物理机2上;当主虚拟机6和7被设置于第三机架的物理机1上时,主影子虚拟机6和7则被设置于第一机架的物理机2上。
本发明实施例提供的一种虚拟机放置的方法,在完成主虚拟机的放置之后,可以根据主虚拟机的放置方式来确定主影子虚拟机的放置方式。也就是当主虚拟机被放置在除最后一个机架以外的其他机架上时,该主虚拟机对应的主影子虚拟机可以被放在该机架的后一个机架上;当主虚拟机被放置在最后一个机架上时,该主虚拟机对应的主影子虚拟机可以被放在第一机架上。其中,主虚拟机与主影子虚拟机不能共享同一物理机的物理资源。相比较于现有技术中仅考虑物理机的资源利用率,采用装箱算法对虚拟机进行放置,本发明可以通过设置主虚拟机和主影子虚拟机,并在根据第一数量、流量参数和资源参数确定主虚拟机的放置方式之后,根据主虚拟机的放置方式来确定主影子虚拟机的放置方式,同时保证主影子虚拟机与主虚拟机不共享同一物理机的物理资源,以确保当主虚拟机产生故障时,在主虚拟机上执行的任务能够迅速切换至主影子虚拟机来执行,也就是主影子虚拟机可以直接继续执行主虚拟机未完成的任务,从而在提高虚拟机的可靠性的前提条件下,尽可能节省用于主虚拟机与主影子虚拟机之间进行切换的时延。
为了进一步保证配置为主虚拟机的主影子虚拟机产生故障时,仍可以进行虚拟机的切换,在本发明实施例的一个实现方式中,还可以通过设置次影子虚拟机来为配置为主虚拟机的主影子虚拟机提供保障,之后能够根据次影子虚拟机之间的近似程度,在完成主虚拟机和主影子虚拟机的放置之后,完成次影子虚拟机的放置。因此,在如图1所示的实现方式的基础上,还可以实现为如图5所示的实现方式。其中,在执行完步骤103根据主虚拟机的放置方式,确定主影子虚拟机的放置方式之后,可以执行步骤105和步骤106:
105、根据第二资源,确定次影子虚拟机中所有虚拟机两两之间的相似度参数。
其中,相似度参数用于表示次影子虚拟机中所有虚拟机两两之间对物理资源需求的近似程度。
在本发明实施例中,可以根据公式其他,进行计算得到次影子虚拟机中所有虚拟机两两之间的相似度参数。其中,sim(i,j)为次影子虚拟机i和次影子虚拟机j之间的相似度参数,i为大于0的正整数,j为大于0个正整数,在本发明实施例中i与j不相同,为次影子虚拟机i对CPU的需求,为次影子虚拟机j对CPU的需求,为次影子虚拟机i对内存的需求,为次影子虚拟机j对内存的需求,为次影子虚拟机i对带宽的需求,为次影子虚拟机j对带宽的需求。比如:根据表一所示的参数,得到表四所示的相似度参数。其中,为主虚拟机1对应的次影子虚拟机1,为主虚拟机2对应的次影子虚拟机2,为主虚拟机3对应的次影子虚拟机3,为主虚拟机4对应的次影子虚拟机4,为主虚拟机5对应的次影子虚拟机5,为主虚拟机6对应的次影子虚拟机6,为主虚拟机7对应的次影子虚拟机7,为主虚拟机8对应的次影子虚拟机8。
表四
106、根据相似度参数、主虚拟机的放置方式,以及主影子虚拟机的放置方式,确定次影子虚拟机的放置方式。
在本发明实施例中,可以按照次影子虚拟机的编号对次影子虚拟机依次进行放置,或者按照其他顺序进行次影子虚拟机的放置。需要说明的是,在本发明实施例中,对于次影子虚拟机的放置顺序不作具体限定,但是采用不同的放置顺序,可能出现不同的放置结果,一般情况下,可以默认按照次虚拟机的编号对次影子虚拟机进行放置。
为了节省物理资源,在本发明实施例中,在完成次影子虚拟机的放置之后,可以使次影子虚拟机与主虚拟机,和/或与主影子虚拟机共享同一份物理机的物理资源。在对目标次影子虚拟机进行放置的过程中,需要根据目标次影子虚拟机与其他次影子虚拟机之间的相似度参数进行合理的放置。当目标次影子虚拟机与其他次影子虚拟机之间的相似度参数均为0时,也就是当目标次影子虚拟机与其他次影子虚拟机之间不存在近似程度时,可以按照装箱的方法将次影子虚拟机优先放置在除目标次影子虚拟机对应的目标主虚拟机所放置的物理机以外的其他机架的物理机上,或是将目标次影子虚拟机放置在除目标虚拟机对应的目标主影子虚拟机所放置的物理机以外的其他机架的物理机上。需要说明的是,为了确保后续虚拟机产生故障时,可以进行迅速准确的切换,因此,在次影子虚拟机的放置过程中,可以尽量避免主虚拟机,与该主虚拟机对应的主影子虚拟机,以及该主虚拟机对应次影子虚拟机放置在同一机架。当目标次影子虚拟机与其他次影子虚拟机之间的相似度参数不为0时,按照相似度参数进行降序排列,确定相似度参数最高的次影子虚拟机组合,并确定该组合中,除目标次影子虚拟机以外的另一次影子虚拟机对应的主虚拟机的位置。当该主虚拟机所在物理机上不存在目标次影子虚拟机,且当目标次影子虚拟机放置在该物理机上之后,该物理机仍能承载上面所设置的所有虚拟机时,则将目标次影子虚拟机放置在该物理机上。若该物理机不满足上述条件,则在相似度参数中找到相似度参数次高的虚拟机组合,采用同样的方式,直至确定目标次影子虚拟机的放置位置。需要说明的是,当不存在次高的相似度参数时,可以优先按照装箱的方式来遍历主虚拟机所放置的物理机,之后若还存在未被放置的次影子虚拟机,则可以按照装箱的方式来遍历主影子虚拟机所放置的物理机,直至确定目标次影子虚拟机的放置位置。若主虚拟机所在的物理机与主影子虚拟机所在的物理机中均无法放置目标次影子虚拟机,则可以随机为目标次影子虚拟机分配新的物理机,并且,为了尽可能保证切换虚拟机的过程顺利进行,可以优先将目标次影子虚拟机放置在不存在该次影子虚拟机对应的主虚拟机,以及主影子虚拟机所在的机架的物理机上。比如:在如图4所示的主虚拟机和主影子虚拟机的放置方式的基础上,根据上述表四,可以将次影子虚拟机1至8按照如图6所示的方式进行放置。
本发明实施例提供的一种虚拟机放置的方法,在完成主影子虚拟机的放置之后,可以根据第二资源,确定次影子虚拟机中所有虚拟机两两之间用于表示虚拟机相近程度的相似度参数,之后根据相似度参数、主虚拟机的放置方式和主影子虚拟机的放置方式,来实现次影子虚拟机的放置。相比较于现有技术中仅考虑物理机的资源利用率,采用装箱算法对虚拟机进行放置,本发明可以通过设置主虚拟机和主影子虚拟机,并在根据第一数量、流量参数和资源参数确定主虚拟机的放置方式之后,确定主影子虚拟机的放置方式,并根据得到的相似度参数来确定次影子虚拟机的方式,以确保当主虚拟机产生故障时,主影子虚拟机可以直接继续执行主虚拟机未完成的任务,同时,确保配置为主虚拟机的主影子虚拟机产生故障时,次影子虚拟机可以继续执行为完成的任务,从而进一步提高虚拟机的可靠性。
在本发明实施例的一个实现方式中,提供了一种当主虚拟机产生故障之后,将主影子虚拟机配置为主虚拟机,同时,对主影子虚拟机所在物理机上的其他虚拟机进行重新放置的具体实现方式。因此,在如图1所示的实现方式的基础上,还可以实现为如图7所示的实现方式。其中,步骤104当主虚拟机中的目标虚拟机产生故障时,将目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行目标虚拟机未执行完的业务,可以具体实现为步骤1041和步骤1042:
1041、当目标虚拟机产生故障时,将目标虚拟机对应的主影子虚拟机配置为主虚拟机。
1042、将目标虚拟机对应的主影子虚拟机所在物理机上的其他主影子虚拟机,迁移至除目标虚拟机所在机架以外的其他机架的物理机上。
例如:当如图6所示的第二机架的物理机1上的主虚拟机8产生故障时,将位于第三机架的物理机2上的主影子虚拟机8配置为新主虚拟机8,同时需要将第三机架的物理机2上的其他虚拟机进行迁移,也就是将主影子虚拟机4和5进行迁移。在本发明实施例中,可以采用装箱的方式,通过遍历的方法,将主虚拟机4迁移至第二机架的物理机2上,同时将主虚拟机5迁移至第一机架的物理机2上。需要说明的是,在虚拟机的迁移过程中,需要尽可能的保证主虚拟机与主影子虚拟机不共用同一物理机的物理资源,同时尽可能的保证主影子虚拟机和次影子虚拟机共用同一物理机的物理资源。也就是在保证虚拟机可以迅速切换的同时,尽可能避免物理机的物理资源的浪费。
本发明实施例提供的一种虚拟机放置的方法,根据所获取的第一数量、流量参数和资源参数,确定主虚拟机的放置方式,之后根据主虚拟机的放置方式,确定主影子虚拟机的放置方式,之后当主虚拟机中的目标虚拟机产生故障时,将确定目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行目标虚拟机未执行完的业务,同时将该主影子虚拟机所在物理机上的其他虚拟机进行合理的迁移。其中,第一数量为用于放置物理机的机架的总数量,流量参数包括主虚拟机中所有虚拟机两两之间进行通信所需的流量,资源参数包括第一资源和第二资源,第一资源包括物理机中每个物理机能够为虚拟机提供的物理资源,第二资源包括每个主虚拟机所需的物理资源,主虚拟机的放置方式用于表示每个主虚拟机的放置位置,主影子虚拟机的放置方式用于表示每个主影子虚拟机的放置位置。相比较于现有技术中仅考虑物理机的资源利用率,采用装箱算法对虚拟机进行放置,本发明可以通过设置主虚拟机和主影子虚拟机,并在根据第一数量、流量参数和资源参数确定主虚拟机的放置方式之后,确定主影子虚拟机的放置方式,以确保当主虚拟机产生故障时,主影子虚拟机可以直接继续执行主虚拟机未完成的任务,从而提高虚拟机的可靠性。并且,在将主影子虚拟机配置为新主虚拟机之后,为了保证主虚拟机与主影子虚拟机不共用同一份物理资源,也就是为了避免当主虚拟机产生故障时,与新主虚拟机位于同一物理机上的主影子虚拟机受到影响而无法正常运转,还需要将与新主虚拟机位于同一物理机的其他虚拟机进行迁移。同时,为了避免资源浪费,需要将位于同一物理机的主影子虚拟机优先迁移至已承载主影子虚拟机的物理机上。
本发明实施例提供一种虚拟机放置的装置20,如图8所示,该装置20用于一种网络系统,网络系统设置有物理机、主虚拟机和主虚拟机对应的主影子虚拟机,每个主虚拟机所需的物理资源与每个主虚拟机对应的主影子虚拟机所需的物理资源相同,该装置20包括:
获取模块21,用于获取第一数量、流量参数和资源参数,第一数量为用于放置物理机的机架的总数量,流量参数包括主虚拟机中所有虚拟机两两之间进行通信所需的流量,资源参数包括第一资源和第二资源,第一资源包括物理机中每个物理机能够为虚拟机提供的物理资源,第二资源包括每个主虚拟机所需的物理资源。
确定模块22,用于根据第一数量、流量参数和资源参数,确定主虚拟机的放置方式,主虚拟机的放置方式用于表示每个主虚拟机的放置位置。
确定模块22,还用于根据主虚拟机的放置方式,确定主影子虚拟机的放置方式,主影子虚拟机的放置方式用于表示每个主影子虚拟机的放置位置。
配置模块23,用于当主虚拟机中的目标虚拟机产生故障时,将目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行目标虚拟机未执行完的业务。
在本发明实施例的一个实施方式中,第一数量为N,其中,N为大于1的正整数,确定模块22,具体用于获取主影子虚拟机对应主虚拟机的放置位置;
当主虚拟机的放置位置为第N个机架时,确定主影子虚拟机的放置位置为第1个机架;
当主虚拟机的放置位置为第M个机架时,确定主影子虚拟机的放置位置为第M+1个机架,其中,M为小于N的正整数。
在本发明实施例的一个实施方式中,网络系统设置有次影子虚拟机,每个次影子虚拟机所需的物理资源与每个主虚拟机所需的物理资源相同,确定模块22,还用于根据第二资源,确定次影子虚拟机中所有虚拟机两两之间的相似度参数,相似度参数用于表示次影子虚拟机中所有虚拟机两两之间对物理资源需求的近似程度。
确定模块22,还用于根据相似度参数、主虚拟机的放置方式,以及主影子虚拟机的放置方式,确定次影子虚拟机的放置方式。
在本发明实施例的一个实施方式中,配置模块23,具体用于当目标虚拟机产生故障时,将目标虚拟机对应的主影子虚拟机配置为主虚拟机。
将目标虚拟机对应的主影子虚拟机所在物理机上的其他主影子虚拟机,迁移至除目标虚拟机所在机架以外的其他机架的物理机上。
本发明实施例提供的一种虚拟机放置的装置,根据所获取的第一数量、流量参数和资源参数,确定主虚拟机的放置方式,之后根据主虚拟机的放置方式,确定主影子虚拟机的放置方式,之后当主虚拟机中的目标虚拟机产生故障时,将目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行目标虚拟机未执行完的业务。其中,第一数量为用于放置物理机的机架的总数量,流量参数包括主虚拟机中所有虚拟机两两之间进行通信所需的流量,资源参数包括第一资源和第二资源,第一资源包括物理机中每个物理机能够为虚拟机提供的物理资源,第二资源包括每个主虚拟机所需的物理资源,主虚拟机的放置方式用于表示每个主虚拟机的放置位置,主影子虚拟机的放置方式用于表示每个主影子虚拟机的放置位置。相比较于现有技术中仅考虑物理机的资源利用率,采用装箱算法对虚拟机进行放置,本发明可以通过设置主虚拟机和主影子虚拟机,并在根据第一数量、流量参数和资源参数确定主虚拟机的放置方式之后,确定主影子虚拟机的放置方式,以确保当主虚拟机产生故障时,主影子虚拟机可以直接继续执行主虚拟机未完成的任务,从而提高虚拟机的可靠性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (8)

1.一种虚拟机放置的方法,其特征在于,所述方法用于一种网络系统,所述网络系统设置有物理机、主虚拟机和所述主虚拟机对应的主影子虚拟机,每个主虚拟机所需的物理资源与所述每个主虚拟机对应的主影子虚拟机所需的物理资源相同,所述方法包括:
获取第一数量、流量参数和资源参数,所述第一数量为用于放置所述物理机的机架的总数量,所述流量参数包括所述主虚拟机中所有虚拟机两两之间进行通信所需的流量,所述资源参数包括第一资源和第二资源,所述第一资源包括所述物理机中每个物理机能够为虚拟机提供的物理资源,所述第二资源包括所述每个主虚拟机所需的物理资源;
根据所述第一数量、所述流量参数和所述资源参数,确定所述主虚拟机的放置方式,所述主虚拟机的放置方式用于表示所述每个主虚拟机的放置位置;
根据所述主虚拟机的放置方式,确定所述主影子虚拟机的放置方式,所述主影子虚拟机的放置方式用于表示所述每个主影子虚拟机的放置位置;
当所述主虚拟机中的目标虚拟机产生故障时,将所述目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行所述目标虚拟机未执行完的业务。
2.根据权利要求1所述的方法,其特征在于,所述第一数量为N,其中,N为大于1的正整数,所述根据所述主虚拟机的放置方式,确定所述主影子虚拟机的放置方式,包括:
获取所述主影子虚拟机对应主虚拟机的放置位置;
当所述主虚拟机的放置位置为第N个机架时,确定所述主影子虚拟机的放置位置为第1个机架;
当所述主虚拟机的放置位置为第M个机架时,确定所述主影子虚拟机的放置位置为第M+1个机架,其中,M为小于N的正整数。
3.根据权利要求1所述的方法,其特征在于,所述网络系统设置有次影子虚拟机,每个次影子虚拟机所需的物理资源与所述每个主虚拟机所需的物理资源相同,在所述根据所述主虚拟机的放置方式,确定所述主影子虚拟机的放置方式之后,包括:
根据所述第二资源,确定所述次影子虚拟机中所有虚拟机两两之间的相似度参数,所述相似度参数用于表示所述次影子虚拟机中所有虚拟机两两之间对物理资源需求的近似程度;
根据所述相似度参数、所述主虚拟机的放置方式,以及所述主影子虚拟机的放置方式,确定所述次影子虚拟机的放置方式。
4.根据权利要求1所述的方法,其特征在于,所述当所述主虚拟机中的目标虚拟机产生故障时,将所述目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行所述目标虚拟机未执行完的业务,包括:
当所述目标虚拟机产生故障时,将所述目标虚拟机对应的主影子虚拟机配置为主虚拟机;
将所述目标虚拟机对应的主影子虚拟机所在物理机上的其他主影子虚拟机,迁移至除所述目标虚拟机所在机架以外的其他机架的物理机上。
5.一种虚拟机放置的装置,其特征在于,所述装置用于一种网络系统,所述网络系统设置有物理机、主虚拟机和所述主虚拟机对应的主影子虚拟机,每个主虚拟机所需的物理资源与所述每个主虚拟机对应的主影子虚拟机所需的物理资源相同,所述装置包括:
获取模块,用于获取第一数量、流量参数和资源参数,所述第一数量为用于放置所述物理机的机架的总数量,所述流量参数包括所述主虚拟机中所有虚拟机两两之间进行通信所需的流量,所述资源参数包括第一资源和第二资源,所述第一资源包括所述物理机中每个物理机能够为虚拟机提供的物理资源,所述第二资源包括所述每个主虚拟机所需的物理资源;
确定模块,用于根据所述第一数量、所述流量参数和所述资源参数,确定所述主虚拟机的放置方式,所述主虚拟机的放置方式用于表示所述每个主虚拟机的放置位置;
所述确定模块,还用于根据所述主虚拟机的放置方式,确定所述主影子虚拟机的放置方式,所述主影子虚拟机的放置方式用于表示所述每个主影子虚拟机的放置位置;
配置模块,用于当所述主虚拟机中的目标虚拟机产生故障时,将所述目标虚拟机对应的主影子虚拟机配置为主虚拟机,并执行所述目标虚拟机未执行完的业务。
6.根据权利要求5所述的装置,其特征在于,所述第一数量为N,其中,N为大于1的正整数,所述确定模块,具体用于获取所述主影子虚拟机对应主虚拟机的放置位置;
当所述主虚拟机的放置位置为第N个机架时,确定所述主影子虚拟机的放置位置为第1个机架;
当所述主虚拟机的放置位置为第M个机架时,确定所述主影子虚拟机的放置位置为第M+1个机架,其中,M为小于N的正整数。
7.根据权利要求5所述的装置,其特征在于,所述网络系统设置有次影子虚拟机,每个次影子虚拟机所需的物理资源与所述每个主虚拟机所需的物理资源相同,所述确定模块,还用于根据所述第二资源,确定所述次影子虚拟机中所有虚拟机两两之间的相似度参数,所述相似度参数用于表示所述次影子虚拟机中所有虚拟机两两之间对物理资源需求的近似程度;
所述确定模块,还用于根据所述相似度参数、所述主虚拟机的放置方式,以及所述主影子虚拟机的放置方式,确定所述次影子虚拟机的放置方式。
8.根据权利要求5所述的装置,其特征在于,所述配置模块,具体用于当所述目标虚拟机产生故障时,将所述目标虚拟机对应的主影子虚拟机配置为主虚拟机;
将所述目标虚拟机对应的主影子虚拟机所在物理机上的其他主影子虚拟机,迁移至除所述目标虚拟机所在机架以外的其他机架的物理机上。
CN201510891737.1A 2015-12-07 2015-12-07 一种虚拟机放置的方法及装置 Active CN105373451B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510891737.1A CN105373451B (zh) 2015-12-07 2015-12-07 一种虚拟机放置的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510891737.1A CN105373451B (zh) 2015-12-07 2015-12-07 一种虚拟机放置的方法及装置

Publications (2)

Publication Number Publication Date
CN105373451A true CN105373451A (zh) 2016-03-02
CN105373451B CN105373451B (zh) 2018-06-12

Family

ID=55375672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510891737.1A Active CN105373451B (zh) 2015-12-07 2015-12-07 一种虚拟机放置的方法及装置

Country Status (1)

Country Link
CN (1) CN105373451B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502765A (zh) * 2016-11-07 2017-03-15 中南大学 一种适用于云数据中心的虚拟机放置方法
CN106874150A (zh) * 2017-02-28 2017-06-20 郑州云海信息技术有限公司 一种虚拟机高可用容灾方法及其系统
CN108108224A (zh) * 2017-12-05 2018-06-01 西南交通大学 基于蚁群优化算法的云数据中心中虚拟机放置方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082722A1 (en) * 2006-09-29 2008-04-03 Uday Savagaonkar Monitoring a target agent execution pattern on a VT-enabled system
CN101512488A (zh) * 2006-08-07 2009-08-19 Bea系统公司 在虚拟机环境中提供硬件虚拟化的系统和方法
CN103729254A (zh) * 2013-12-31 2014-04-16 国网山东省电力公司 一种虚拟服务器Virtual CPU资源监测及动态分配方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101512488A (zh) * 2006-08-07 2009-08-19 Bea系统公司 在虚拟机环境中提供硬件虚拟化的系统和方法
US20080082722A1 (en) * 2006-09-29 2008-04-03 Uday Savagaonkar Monitoring a target agent execution pattern on a VT-enabled system
CN103729254A (zh) * 2013-12-31 2014-04-16 国网山东省电力公司 一种虚拟服务器Virtual CPU资源监测及动态分配方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502765A (zh) * 2016-11-07 2017-03-15 中南大学 一种适用于云数据中心的虚拟机放置方法
CN106502765B (zh) * 2016-11-07 2019-03-22 中南大学 一种适用于云数据中心的虚拟机放置方法
CN106874150A (zh) * 2017-02-28 2017-06-20 郑州云海信息技术有限公司 一种虚拟机高可用容灾方法及其系统
CN108108224A (zh) * 2017-12-05 2018-06-01 西南交通大学 基于蚁群优化算法的云数据中心中虚拟机放置方法
CN108108224B (zh) * 2017-12-05 2019-10-01 西南交通大学 基于蚁群优化算法的云数据中心中虚拟机放置方法

Also Published As

Publication number Publication date
CN105373451B (zh) 2018-06-12

Similar Documents

Publication Publication Date Title
CN108829494B (zh) 基于负载预测的容器云平台智能资源优化方法
EP3466122B1 (en) Mobile edge computing
CN106803790B (zh) 一种集群系统的升级控制方法及装置
CN102724277B (zh) 虚拟机热迁移和部署的方法、服务器及集群系统
CN106681839B (zh) 弹性计算动态分配方法
CN106293934B (zh) 一种集群系统管理优化方法及平台
CN102096601A (zh) 一种虚拟机迁移的管理方法和系统
CN106339386B (zh) 数据库弹性调度方法以及装置
CN111290699B (zh) 数据迁移方法、装置及系统
WO2012167378A1 (en) System and method of optimization of in-memory data grid placement
CN105912399A (zh) 一种任务处理方法、装置及系统
CN103455363B (zh) 一种虚拟机的指令处理方法、装置及物理主机
CN111399970A (zh) 一种预留资源管理方法、装置和存储介质
CN105373451A (zh) 一种虚拟机放置的方法及装置
CN107729514A (zh) 一种基于hadoop的副本放置节点确定方法及装置
CN106897116A (zh) 一种虚拟机迁移方法及装置
CN103856548A (zh) 动态资源调度方法和动态资源调度器
CN104394016A (zh) Issu升级方法和装置
WO2014142217A1 (ja) 情報処理システム、及びアプリケーションの移転方法
CN107391039B (zh) 一种数据对象存储方法和装置
CN106385330A (zh) 一种网络功能虚拟化编排器的实现方法及装置
CN114123186B (zh) 基于智能配电网的自愈优化控制方法、系统、终端及介质
CN105701128A (zh) 一种查询语句的优化方法和装置
CN104753992A (zh) 一种数据存储、虚拟平台故障恢复的方法、设备和系统
CN112527450B (zh) 基于不同资源的超融合自适应方法、终端及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant