虚拟机分配方法及装置制造方法及图纸

技术编号:13390546 阅读:50 留言:0更新日期:2016-07-22 14:07
本发明专利技术提供一种虚拟机分配方法,包括:根据承载各个应用程序的各组虚拟机分别所需的内存量、CPU资源量和I/O资源量,以及各个物理服务器的内存量、CPU资源量和I/O资源量,获取承载各个应用程序的各组虚拟机分别对应的物理服务器的位置,其中,每组虚拟机用于承载同一个应用程序;分别将承载各个应用程序的各组虚拟机放入对应位置的物理服务器中。相应地,提供一种虚拟机分配装置。本发明专利技术能够提高虚拟机分配的有效性。

【技术实现步骤摘要】
虚拟机分配方法及装置
本专利技术涉及网络通信
,具体涉及一种虚拟机分配方法和一种虚拟机分配装置。
技术介绍
云资源提供商需要将承载用户应用程序的多个虚拟机在互联网数据中心(IDC,InternetDataCenter)内进行分配,其中,初次分配过程是,云资源提供商判断将这些待分配的承载了应用程序的虚拟机(VM)映射到哪些物理服务器(PM)上。因此,初次分配是一个很重要的过程,合理的分配可以大幅度减少数据交流量和物理服务器使用数量以达到节能优化的目的。目前,面向节能的虚拟机分配方法主要采用资源能力归一化方法。具体为,在制定虚拟机到物理服务器的分配策略时,首先,将每台虚拟机和每个物理服务器的能力均简化为一维指标;然后,制定待迁移的虚拟机集合、目标物理服务器集合,逐个对待迁移的虚拟机进行判断,计算出每台虚拟机的最佳目标物理服务器;最后,输出目标物理服务器集合。显然,资源能力归一化方法将虚拟机到物理服务器的资源放置抽象为单一数值,在进行虚拟机分配的过程中,该方法快速寻找到了目标物理服务器的位置。但是,在实际运行环境中,虚拟机和物理服务器仅使用单一的归一化指标并不能准确描述虚拟机所需的资源大小,从而大大降低了虚拟机分配的有效性。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术中所存在的上述缺陷,提供一种虚拟机分配方法和一种虚拟机分配装置,能够提高虚拟机分配的有效性。解决本专利技术技术问题所采用的技术方案是:本专利技术提供一种虚拟机分配方法,包括如下步骤:根据承载各个应用程序的各组虚拟机分别所需的内存量、CPU资源量和I/O资源量,以及各个物理服务器的内存量、CPU资源量和I/O资源量,获取承载各个应用程序的各组虚拟机分别对应的物理服务器的位置,其中,每组虚拟机用于承载同一个应用程序;分别将承载各个应用程序的各组虚拟机放入对应位置的物理服务器中。本专利技术还提供一种虚拟机分配装置,包括:获取模块,用于根据承载各个应用程序的各组虚拟机分别所需的内存量、CPU资源量和I/O资源量,以及各个物理服务器的内存量、CPU资源量和I/O资源量,获取承载各个应用程序的各组虚拟机分别对应的物理服务器的位置,其中,每组虚拟机用于承载同一个应用程序;迁移模块,用于分别将承载各个应用程序的各组虚拟机放入对应位置的物理服务器中。有益效果:本专利技术所述的虚拟机分配方法及装置,将用于承载同一应用程序的若干个虚拟机划分为一组,从而按照应用程序的数量将虚拟机划分为多组,然后综合考虑了每组虚拟机所需的内存量、CPU资源量和I/O资源量,以及每个物理服务器的内存量、CPU资源量和I/O资源量,从整体上确定每组虚拟机对应的物理服务器的地址,与现有的资源能力归一化方法将虚拟机到物理服务器的资源放置抽象为单一数值,逐个计算出每台虚拟机的最佳目标物理服务器相比,在实际运行环境中,能够准确描述每组虚拟机所需资源大小,并极大地提高了虚拟机分配的有效性。附图说明图1为本专利技术实施例1提供的虚拟机分配方法的流程示意图;图2为本专利技术实施例2提供的虚拟机分配方法的流程示意图;图3为本专利技术实施例3提供的虚拟机分配装置的结构示意图;以及图4为本专利技术实施例4提供的虚拟机分配装置的结构示意图。图中:100-获取模块;101-装箱子模块;102-构造子模块;103-处理子模块;200-迁移模块。具体实施方式为使本领域技术人员更好地理解本专利技术的技术方案,下面结合附图和实施例对本专利技术作进一步详细描述。需要说明的是,本专利技术中,虚拟机(VirtualMachine,简称VM)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。实施例1:图1为本专利技术实施例1提供的虚拟机分配方法的流程示意图,如图1所示,所述分配方法包括如下步骤:步骤101.根据承载各个应用程序的各组虚拟机分别所需的内存量、CPU资源量和I/O资源量,以及各个物理服务器的内存量、CPU资源量和I/O资源量,获取承载各个应用程序的各组虚拟机分别对应的物理服务器的位置,其中,每组虚拟机用于承载同一个应用程序。具体地,本步骤中,先将用于承载同一应用程序的若干个虚拟机划分为一组,从而按照应用程序的数量将待迁移的虚拟机划分为多组,其中,每组虚拟机包括至少一台虚拟机,每台虚拟机只能承载一种应用,这里,每组虚拟机包括的虚拟机数量可由本领域技术人员根据待承载的应用程序的复杂程度来确定,由于不同的应用程序的复杂程度不同,故承载不同应用程序的各组虚拟机的数量也不同;再综合考虑每组虚拟机所需的内存量、CPU资源量和I/O资源量,以及每个物理服务器的内存量、CPU资源量和I/O资源量,从整体上为每组虚拟机分配合适的物理服务器并获取该合适的物理服务器的地址,并使得每组虚拟机与该合适的物理服务器的地址相对应,从而确定每组虚拟机对应的物理服务器的地址。步骤102.分别将承载各个应用程序的各组虚拟机放入对应位置的物理服务器中,从而完成虚拟机到物理服务器的资源分配。换言之,将承载用户应用程序的所有虚拟机在互联网数据中心(IDC,InternetDataCenter)内进行分配。对于互联网数据中心来说,其中包含多个物理服务器(PMx,x∈[1,n1])和多台交换机(Sβ,β∈[1,n2]),用以提供快速安全的网络,以及对服务器监管、流量监控等网络管理方面的服务。一般地,每个PM(即物理服务器)可以运行若干台VM,而每台VM(即虚拟机)只能承载一种应用程序,每个应用程序可以由若干台VM同时处理、共同运行完成,因此,VM之间存在通信量,换言之,用于承载同一应用程序的不同虚拟机之间会有数据流量交换。为了减少承载同一应用程序的VM之间的数据交换,可尽量将承载同一应用程序的VM放入同一个物理服务器中。假设表示一台运行在物理服务器上的虚拟机,其中,q表示该虚拟机的编号,p表示该虚拟机所属的物理服务器的编号,a表示该虚拟机所承载的应用程序,即,用于承载应用程序a的虚拟机q运行在物理服务器p上。则尽量将用于承载的应用程序a相同的所有都放入同一个物理服务器q中。因此,优选地,本步骤还包括:将承载同一个应用程序的一组虚拟机放入一个物理服务器中,从而对虚拟机的放置位置进行了优化处理,减少了承载同一应用程序的虚拟机之间的数据交换。当然,本实施例不限于此,对于比较复杂的应用程序,用于承载其的虚拟机的数量太多导致一个物理服务器放不下时,可以放入多个物理服务器中,原则上是,在前一个物理服务器放满的情况下,才放入后一个物理服务器中。例如,假使一个物理服务器能够运行10个虚拟机,而应用程序X需要15个虚拟机来承载,则将这15个虚拟机中的10个放入一个物理服务器PM1中,并将另外5个放入另一个物理服务器PM2中,而另一个物理服务器PM2中剩余的位置还可放入用于承载其他应用程序(如应用程序Y)的虚拟机,这里,用于承载应用程序Y的虚拟机的数量应少于5个,以减少承载同一应用程序Y的虚拟机之间的数据交换。本实施例所述虚拟机分配方法能够准确描述每组虚拟机所需资源大小,从而在初次分配虚拟机的过程中,能够快速、高效地完成虚拟机到物理服务器的资源分配,极大地提高了虚拟机分配的有效性。实施例2:图2为本专利技术实施例2提供的虚拟机分配方法的流程示意图,如图2所示,所述分配方法包括如下本文档来自技高网...

【技术保护点】
一种虚拟机分配方法,其特征在于,包括如下步骤:根据承载各个应用程序的各组虚拟机分别所需的内存量、CPU资源量和I/O资源量,以及各个物理服务器的内存量、CPU资源量和I/O资源量,获取承载各个应用程序的各组虚拟机分别对应的物理服务器的位置,其中,每组虚拟机用于承载同一个应用程序;分别将承载各个应用程序的各组虚拟机放入对应位置的物理服务器中。

【技术特征摘要】
1.一种虚拟机分配方法,其特征在于,包括如下步骤:根据承载各个应用程序的各组虚拟机分别所需的内存量、CPU资源量和I/O资源量,以及各个物理服务器的内存量、CPU资源量和I/O资源量,获取承载各个应用程序的各组虚拟机分别对应的物理服务器的位置,其中,每组虚拟机用于承载同一个应用程序;分别将承载各个应用程序的各组虚拟机放入对应位置的物理服务器中;所述获取承载各个应用程序的各组虚拟机分别对应的物理服务器的位置的步骤具体为:将承载各个应用程序的各组虚拟机分别所需的内存量、CPU资源量和I/O资源量构造为矩阵R,将各个物理服务器的内存量、CPU资源量和I/O资源量构造为矩阵K,以及根据承载各个应用程序的各组虚拟机对应的物理服务器的位置定义矩阵X,并对矩阵R、矩阵K和矩阵X进行线性规划处理,以获取所需物理服务器数量最少的矩阵X的解,从而得到承载各个应用程序的各组虚拟机分别对应的物理服务器的位置。2.根据权利要求1所述的分配方法,其特征在于,对矩阵R、矩阵K和矩阵X进行线性规划处理具体为:令RX≤K。3.根据权利要求2所述的分配方法,其特征在于,所述获取承载各个应用程序的各组虚拟机分别对应的物理服务器的位置的步骤还包括:将承载同一个应用程序i的一组虚拟机装箱成为Vi,其中,ki为承载同一个应用程序i的一组虚拟机的总数,n为应用程序的总数;所述矩阵R具体为:其中,ricpu表示Vi所需的CPU资源量,rimen表示Vi所需的内存量,表示Vi所需的I/O资源量;所述矩阵X具体为:其中,为m维单位坐标向量,表示Vi对应的物理服务器的位置,m为物理服务器的总数;所述矩阵K具体为:其中,表示第i个物理服务器所能提供的CPU资源量,表示第i个物理服务器所能提供的内存量,表示第i个物理服务器所能提供的I/O资源量。4.根据权利要求1-3中任一项所述的分配方法,其特征在于,所述分别将承载各个应用程序的各组虚拟机放入对应位置的物理服务器中的步骤还包括:将承载...

【专利技术属性】
技术研发人员:李三舸王志军冯伟斌
申请(专利权)人:中国联合网络通信集团有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1