一种创建虚拟机的方法和装置制造方法

文档序号:6532531阅读:181来源:国知局
一种创建虚拟机的方法和装置制造方法
【专利摘要】本发明实施例提出了一种创建虚拟机的方法、系统和装置,用于为分布式应用创建虚拟机集群,包括:接收虚拟机创建请求,所述虚拟机创建请求用于创建多台虚拟机;确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到;为所述每个虚拟机组确定归属物理机架,其中,一个虚拟机组对应一个归属物理机架;在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组。由于每个虚拟机组在其归属的物理机架下进行创建,使得每个虚拟机组等同于一个物理机架,这样的虚拟机创建方式,每个虚拟机组中的各虚拟机的部署属性能够满足分布式应用的机架感知属性,从而为分布式应用创建了满足其运行需求的虚拟机集群。
【专利说明】一种创建虚拟机的方法和装置
【技术领域】
[0001]本发明实施例涉及计算机技术,特别是一种创建虚拟机的方法、系统和装置。
【背景技术】
[0002]云计算系统的主要包括云应用层、云虚拟化层和物理设备层,云虚拟化层根据物理设备层的物理资源构建虚拟机(Virtual Machine, VM),云应用层中的各种应用程序就由这些虚拟机分别进行运行或者提供服务,一个云应用程序可能分布在一个或多个虚拟机上,对应于一个云应用程序的一个或多个虚拟机可以组成一个虚拟机集群。
[0003]目前存在一些集群软件,例如分布式应用,其主要考虑应用的高可用和高可靠性,比如Hadoop这样的集群软件。Hadoop能够对大量数据进行分布式处理,充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed FileSystem),简称HDFS,其可以维护多个工作数据副本,对于最常见的3个数据复制块,HDFS的规则是将第一个复制块存储在同一物理机架的不同节点上,最后一个复制块存储在不同物理机架的某个节点上。由于集群软件的高可靠性和高可用性的要求,为此类集群软件分配虚拟机以进行业务创建,以及集群软件根据分配好的虚拟机运行业务,是目前将虚拟化技术与集群软件结合实施的难点。
[0004]由于集群软件是基于物理机集群进行设计的,然而在虚拟化技术中,虚拟机的资源由云虚拟化层根据物理设备层上的物理资源灵活调度而成,例如,组成一台虚拟机的物理资源可能来自于不同的物理机架下的不同物理机,因此,现有技术中的云虚拟化层无法创建满足集群软件,例如分布式应用的运行要求的虚拟机。

【发明内容】

[0005]本发明实施例提出了一种创建虚拟机的方法、装置和系统,能够为分布式应用创建满足其运行需求的虚拟机。
[0006]第一方面,本发明实施例提出了一种创建虚拟机的方法,包括:
[0007]接收虚拟机创建请求,所述虚拟机创建请求用于创建多台虚拟机;
[0008]确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机;
[0009]为所述每个虚拟机组确定归属物理机架,其中,一个虚拟机组对应一个归属物理机架;
[0010]在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组。
[0011]结合第一方面,在第一种可能的实现方式中,将所述每个虚拟机组中的不同虚拟机创建在所述归属物理机架中的不同物理机上。
[0012]结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,根据所述每个虚拟机组的配置信息,为所述每个虚拟机组确定一个归属物理机架,其中,所述每个虚拟机组的配置信息包括所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格。
[0013]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,确定待分配归属物理机架的当前虚拟机组,获取物理设备层上的空闲物理机架,根据所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格,从所述空闲物理机架中选择空闲资源满足所述当前虚拟机组所需资源的第一物理机架,从所述第一物理机架中选择一个作为所述归属物理机架。
[0014]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,获取虚拟机组的约束信息,获取归属物理机架的分配记录信息,所述分配记录信息包括已分配归属物理机架的虚拟机组与归属物理机架的对应关系,根据所述所述分配记录信息和所述虚拟机组约束信息,从所述第一物理机架中选择一个作为所述当前虚拟机组的归属物理机架。
[0015]结合第一方面或者第一方面的第一种可能的实现方式,在第五种可能的实现方式中,获取虚拟机组的约束信息,所述虚拟机组的约束信息表示所述多个虚拟机组之间的关联关系或者互斥关系,根据所述虚拟机组的约束信息,为所述每个虚拟机组确定一个所述归属物理机架。
[0016]结合第一方面的第四种可能的实现方式或者第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述虚拟机组约束信息包括:不同虚拟机组对应不同的归属物理机架;则,为所述每个虚拟机组确定一个不同的归属物理机架。
[0017]结合第一方面或者第一方面的任意一种可能的实现方式,在第七种可能的实现方式中,还包括:获取所述每个虚拟机组的标识,将所述每个虚拟机组的标识提供给应用模块,以使得所述应用模块根据所述每个虚拟机组的标识处理业务。
[0018]第二方面,本发明实施例提出了一种创建虚拟机的方法,包括:
[0019]接收虚拟机创建请求,所述虚拟机创建请求用于为分布式应用创建多台虚拟机;
[0020]确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机;
[0021]获取每个虚拟机组的配置信息,其中,所述每个虚拟机组的配置信息包括所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格;
[0022]根据所述分布式应用的运行属性,确定虚拟机组的部署属性;
[0023]根据所述每个虚拟机组的配置信息和所述虚拟机组的部署属性,创建所述每个虚拟机组。
[0024]结合第二方面,在第一种可能的实现方式中,根据所述分布式应用的机架感知属性,确定所述虚拟机组的虚拟机架属性,其中,所述虚拟机架属性表明一个虚拟机组对应一个归属物理机架;
[0025]根据所述虚拟机组的虚拟机架属性,为所述每个虚拟机组确定一个归属物理机架;根据所述每个虚拟机组的配置信息,在所述每个虚拟机组的归属物理机架下创建所述每个虚拟机组。
[0026]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,根据所述每个虚拟机组的配置信息,将所述每个虚拟机组中的不同虚拟机创建在所述归属物理机架中的不同物理机上。
[0027]结合第二方面或者第二方面的第一种可能的实现方式,在第三种可能的实现方式中,根据所述虚拟机组的虚拟机架属性,为所述每个虚拟机组确定一个不同的归属物理机架。
[0028]第三方面,本发明实施例提出了一种创建虚拟机的装置,包括:
[0029]接收单元,用于接收虚拟机创建请求,所述虚拟机创建请求用于创建多台虚拟机;
[0030]分组单元,用于确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机;
[0031]配置单元,用于为所述每个虚拟机组确定归属物理机架,其中,一个虚拟机组对应一个归属物理机架;
[0032]创建单元,用于在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组。
[0033]结合第三方面,在第一种可能的实现方式中,所述创建单元具体用于:将所述每个虚拟机组中的不同虚拟机创建在所述归属物理机架中的不同物理机上。
[0034]结合第三方面或者第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述配置单元具体用于:根据所述每个虚拟机组的配置信息,为所述每个虚拟机组确定一个归属物理机架,其中,所述每个虚拟机组的配置信息包括所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格。
[0035]结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述配置单元包括:
[0036]确定子单元,用于确定待分配归属物理机架的当前虚拟机组,获取物理设备层上的空闲物理机架,根据所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格,从所述空闲物理机架中选择空闲资源满足所述当前虚拟机组所需资源的第一物理机架;
[0037]选择子单元,用于从所述第一物理机架中选择一个作为所述归属物理机架。
[0038]结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述选择子单元具体用于:获取虚拟机组的约束信息,获取归属物理机架的分配记录信息,所述分配记录信息包括已分配归属物理机架的虚拟机组与归属物理机架的对应关系,根据所述所述分配记录信息和所述虚拟机组约束信息,从所述第一物理机架中选择一个作为所述当前虚拟机组的归属物理机架。
[0039]结合第三方面或者第三方面的第一种可能的实现方式,在第五种可能的实现方式中,所述配置单元具体用于:获取虚拟机组的约束信息,所述虚拟机组的约束信息表示所述多个虚拟机组之间的关联关系或者互斥关系,根据所述虚拟机组的约束信息,为所述每个虚拟机组确定一个所述归属物理机架。
[0040]结合第三方面的第四种可能的实现方式或者第三方面的第五种可能的实现方式,在第六种可能的实现方式中,所述虚拟机组约束信息包括:不同虚拟机组对应不同的归属物理机架;则,所述配置单元为所述每个虚拟机组确定一个不同的归属物理机架。
[0041]结合第三方面或者第三方面的任意一种可能的实现方式,在第七种可能的实现方式中,还包括:发送单元,用于获取所述每个虚拟机组的标识,将所述每个虚拟机组的标识提供给应用模块,以使得所述应用模块根据所述每个虚拟机组的标识处理业务。
[0042]第四方面,本发明实施例提供一种创建虚拟机的装置,包括:
[0043]接收单元,用于接收虚拟机创建请求,所述虚拟机创建请求用于为分布式应用创建多台虚拟机;
[0044]分组单元,用于确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机;
[0045]获取单元,用于获取每个虚拟机组的配置信息,其中,所述每个虚拟机组的配置信息包括所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格;
[0046]确定单元,用于根据所述分布式应用的运行属性,确定虚拟机组的部署属性;
[0047]创建单元,用于根据所述每个虚拟机组的配置信息和所述虚拟机组的部署属性,创建所述每个虚拟机组。
[0048]结合第四方面,在第一种可能的实现方式中,所述确定单元具体用于:根据所述分布式应用的机架感知属性,确定所述虚拟机组的虚拟机架属性,其中,所述虚拟机架属性表明一个虚拟机组对应一个归属物理机架;
[0049]所述创建单元,具体用于:根据所述虚拟机组的虚拟机架属性,为所述每个虚拟机组确定一个归属物理机架,根据所述每个虚拟机组的配置信息,在所述每个虚拟机组的归属物理机架下创建所述每个虚拟机组。
[0050]第五方面,本发明实施例提供一种创建虚拟机的系统,包括:
[0051]云虚拟化装置,用于接收虚拟机创建请求,所述虚拟机创建请求用于创建多台虚拟机,确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机,为所述每个虚拟机组确定归属物理机架,其中,一个虚拟机组对应一个归属物理机架,在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组,获取所述每个虚拟机组的标识,将所述每个虚拟机组的标识提供给应用装置;
[0052]所述应用装置,用于接收所述每个虚拟机组的标识,根据所述每个虚拟机组的标识处理业务。
[0053]本发明实施例中,在为分布式应用创建多台虚拟机时,首先确定由所述多台虚拟机划分得到的多个虚拟机组,然后为每个虚拟机组指定一个归属物理机架,再在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组,由于每个虚拟机组在其归属的物理机架下进行创建,每个虚拟机组中的各虚拟机的具有相同的归属物理机架,使得每个虚拟机组等同于一个物理机架,这样的虚拟机创建方式,每个虚拟机组中的各虚拟机的部署属性能够满足分布式应用的机架感知属性,从而为分布式应用创建了满足其运行需求的虚拟机集群。并且,本发明实施例使得分布式应用不需要改动即可与虚拟化技术结合实施,并保证分布式应用的性能不受影响
【专利附图】

【附图说明】
[0054]为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055]图1是本发明实施例提供的虚拟机系统架构组成图;
[0056]图2是根据本发明实施例提供的一种方法流程图;
[0057]图3是根据本发明实施例提供的又一种方法流程图;
[0058]图4是根据本发明实施例提供的又一种方法流程图;[0059]图5是根据本发明实施例所创建的虚拟机群的网络拓扑结构图;
[0060]图6是根据本发明实施例提供的又一种方法流程图;
[0061]图7是根据本发明实施例提供的一种虚拟机创建装置的组成图;
[0062]图8是根据本发明实施例提供的又一种虚拟机创建装置的组成图;
[0063]图9是根据本发明实施例提供的又一种虚拟机创建装置的组成图;
[0064]图10是根据本发明实施例提供的又一种虚拟机创建装置的组成图;
[0065]图11是根据本发明实施例提供的一种虚拟机创建系统的组成图;
[0066]图12是根据本发明实施例提供的一种计算机的组成图。
【具体实施方式】
[0067]本发明实施例提出了一种创建虚拟机的方法、装置和系统,所创建的虚拟机集群可以满足满足分布式应用运行要求。
[0068]如图1所示,为本发明实施例提供的虚拟机系统架构图的一种示例,该示例中的虚拟机系统包括:云应用层11、云虚拟化层12以及物理设备层13。
[0069]所述云应用层11上可以运行分布式应用,所述分布式应用包括但不限于Hadoop软件、HDFS软件等分布式集群软件。在所述云应用层11,执行应用的业务处理的模块是应用模块111。
[0070]所述云虚拟化层12,用于根据云应用层11的需求,将物理设备层13上的物理资源抽象成多个虚拟机,并对虚拟机进行管理。在所述云虚拟化层12上进行虚拟机创建/构建/抽象工作的模块在本发明实施称为虚拟化模块,如图所示虚拟化模块121。
[0071]物理设备层13包含一台或多台物理机架,每台物理机架包含一台或多台物理机。每台物理机提供的物理资源可以包括CPU资源、内存资源、存储资源以及网络资源中的一种或者多种,物理设备层13提供的物理资源被虚拟化模块121抽象成多台虚拟机,并提供给相应的分布式应用提供服务。
[0072]结合图1,如图2所示,为本发明实施例提供的创建虚拟机的流程图,本发明实施例的方法包括:
[0073]步骤201:接收虚拟机创建请求,所述虚拟机创建请求用于创建多台虚拟机;
[0074]所述创建虚拟机创建请求中可以携带所述多台虚拟机的配置信息。
[0075]具体实施中,可以由虚拟化模块接收所述虚拟机创建请求,所述虚拟机创建请求可以是多个虚拟机组的创建请求,每个虚拟机组包含至少一台虚拟机,所述虚拟机创建请求还可以是多台虚拟机的创建请求。其中,所述多个虚拟机组的创建请求或者多台虚拟机的创建请求的具体实现方式可以比较灵活,可以是通过一个请求来创建多个虚拟机组或者多台虚拟机,也可以是通过多个请求来创建多个虚拟机组或者多台虚拟机,优选地,通过一个请求来创建一个虚拟机组或者一台虚拟机,本发明实施例对具体实现不做限定。
[0076]所述每台虚拟机的配置信息可以包含虚拟机的计算资源(例如CPU)、存储资源(例如memory)或者网络资源(例如网络IP地址)等的配置信息,例如每个虚拟机组的创建请求指明所述每个虚拟机组所包含的虚拟机的数量和各虚拟机的规格,或者,每台虚拟机的创建请求指明所述每台虚拟机的规格。
[0077]步骤202:确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得至IJ,每个虚拟机组包含至少一台虚拟机;
[0078]具体地,当所述虚拟化模块接收到多个虚拟机组的创建请求,则可以根据所述多个虚拟机组的创建请求,确定所述多个虚拟机组。当所述虚拟化模块接收到多台虚拟机的创建请求,所述虚拟化模块可以先将所述多台虚拟机划分为多个虚拟机组,再根据分组结果确定虚拟机组的信息。
[0079]步骤203:为所述每个虚拟机组确定归属物理机架,其中,一个虚拟机组对应一个归属物理机架;
[0080]基于分布式应用的运行属性的要求,本发明实施例中的虚拟化模块在为分布式应用创建虚拟机的时候,考虑分布式应用的运行属性,对分布式应用的运行属性进行适配,产生与所述分布式应用的运行属性相适配的虚拟机组的部署属性。例如根据分布式应用的运行属性中的机架感知属性,与之相适配,确定所述虚拟机组的部署属性包括虚拟机架属性,即每一个虚拟机组可以模拟为一个虚拟机架,一个虚拟机架可以等同于一个物理机架。根据虚拟机组的虚拟机架属性,每个虚拟机组对应一个归属物理机架,每个虚拟机组创建或者部署在其对应的归属物理机架下。
[0081]因此,所述虚拟化模块为所述每个虚拟机组确定一个归属物理机架。具体地,所述虚拟化模块可以根据每个虚拟机组的配置信息,为所述每个虚拟机组确定一个归属物理机架,也可以任意或者通过轮流的方式为每个虚拟机组指定一个归属物理机架,实际部署的时候,若指定的归属物理机架的物理资源不能满足虚拟机组的资源需求,可以重新制定另一个归属物理机架。
[0082]步骤204:在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组。
[0083]其中,具体地,可以利用所述归属物理机架中的物理机的资源来创建所述每个虚拟机组中的每台虚拟机。
[0084]本发明实施例中,所述虚拟化模块在为分布式应用创建多台虚拟机时,首先确定由所述多台虚拟机划分得到的多个虚拟机组,然后为每个虚拟机组指定一个归属物理机架,再在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组,由于每个虚拟机组在其归属的物理机架下进行创建,每个虚拟机组中的各虚拟机的具有相同的归属物理机架,使得每个虚拟机组等同于一个物理机架,这样的虚拟机创建方式,每个虚拟机组中的各虚拟机的部署属性能够满足分布式应用的机架感知属性,从而为分布式应用创建了满足其运行需求的虚拟机集群。并且,本发明实施例使得分布式应用不需要改动即可与虚拟化技术结合实施,并保证分布式应用的性能不受影响。另外,本发明实施例中,采用虚拟机组的粒度来创建虚拟机,此种通过虚拟机组创建虚拟机的方式也更加高效。
[0085]如图3所示,为本发明实施例提供的又一个为分布式应用创建虚拟机的流程图,本发明实施例的方法包括:
[0086]步骤301:接收虚拟机创建请求,所述虚拟机创建请求用于为分布式应用创建多台虚拟机;
[0087]步骤302:确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得至IJ,每个虚拟机组包含至少一台虚拟机;
[0088]步骤303:根据所述分布式应用的运行属性,确定所述每个虚拟机组的部署属性;
[0089]步骤304:根据所述每个虚拟机组的配置信息和所述每个虚拟机组的部署属性,创建所述每个虚拟机组。
[0090]本实施例为本发明的另一种实现方式,在步骤303中,基于分布式应用的运行属性的要求,本发明实施例中的虚拟化模块在为分布式应用创建虚拟机的时候,考虑分布式应用的运行属性,根据分布式应用的运行属性进行适配,产生与所述分布式应用的运行属性相适配的虚拟机组的部署属性。在步骤304中,即可根据每个虚拟机组的配置信息和所述每个虚拟机组的部署属性,创建所述每个虚拟机组,以满足分布式应用运行需求。
[0091]具体地,虚拟化模块可以根据所述分布式应用的机架感知属性,确定所述虚拟机组的虚拟机架属性,所述虚拟机架属性表明一个虚拟机组对应一个归属物理机架,所述虚拟化模块根据每个虚拟机组的配置信息,为所述每个虚拟机组确定一个归属物理机架,在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组,即将同一个虚拟机组中的不同虚拟机创建在同一个物理机架下。
[0092]本发明实施例考虑业界存在多种集群软件和不同集群软件的不同运行属性,在虚拟化模块增加适配层来实现创建满足分布式应用的虚拟机集群,使得分布式应用不需要改动即可与虚拟化技术结合实施,并保证分布式应用的性能不受影响。
[0093]进一步地,在本发明的又一个实施例中,在所述步骤204或者步骤304之后,还可以执行如下步骤:
[0094]步骤205/305:获取所述每个虚拟机组的标识;
[0095]所述虚拟化模块可以为每个虚拟机组分配一个标识,以用于代表每个虚拟机组。
[0096]步骤206/306:将所述每个虚拟机组的标识提供给上层的应用模块,以使得所述上层的应用模块根据所述每个虚拟机组的标识处理业务。
[0097]具体地,所述虚拟化模块可以向所述上层的应用模块发送每台虚拟机所在的物理机架号,其中,所述每台虚拟机所在的物理机架号为所述每台虚拟机所在的虚拟机组的标识。
[0098]在本实施例中,由于进一步地将每个虚拟机组的标识提供给了上层的应用模块,例如分布式应用模块,可以使得上层的应用模块在所述多台虚拟机上运行的时候,可以获知每台虚拟机所属于的虚拟机组,由此获取每个节点的网络拓扑信息,并根据获取到的虚拟机组的标识进行业务处理,例如保证不将相同的业务分配给同一虚拟机组的虚拟机进行处理,以满足上层应用的可靠性和可用性的要求。
[0099]关于分布式应用的机架感知属性和虚拟机组的虚拟机架属性将在后续实施例中详细说明。
[0100]如图4所示,为本发明实施例提供的又一个为分布式应用创建虚拟机的流程图,本发明实施例的方法包括:
[0101]步骤401:虚拟化模块接收多个虚拟机组的创建请求,其中,每个虚拟机组的创建请求指明所述每个虚拟机组所包含的虚拟机的数量和各虚拟机的规格;
[0102]本实施例中,虚拟化模块不再提供单个的虚拟机的创建模板,而是提供分布式应用的创建模板或者虚拟机组的创建模板,分布式应用的创建模板中包括多个虚拟机组,每个虚拟机组包括至少一台虚拟机,所述多个虚拟机组对应一个虚拟机集群,所述虚拟机集群为分布式应用提供服务。云管理员或者用户或者其它分布式应用的管理软件在确定需要为分布式应用创建虚拟机集群的时候,将所述虚拟机集群的多台虚拟机进行分组,每组虚拟机填写到一个虚拟机组的创建模板,每个虚拟机组的创建模板即对应一个虚拟机组,虚拟化模块接收多个虚拟机组的创建模板,每个虚拟机组的创建模板中可以包含虚拟机的数量、标识以及每台虚拟机的规格。例如,某个分布式应用需要创建15台虚拟机,15台虚拟机中的2台虚拟机需要作为管理节点,其规格信息为8CPUU00G内存,其他虚拟机作为服务节点,其规格信息为2CPU、40G内存(服务节点的规格可以一致,也可以不同,本实施例以服务节点的规格一致为例)。将所述15台虚拟机分为3组,其中作为管理节点的虚拟机不能分在同一组中,因此,虚拟化模块接收到3个虚拟机节点组的创建请求,即接收到3个虚拟机组的创建模板,如下:
[0103]第一虚拟机组的创建模板:
[0104]VM 数量:5;
[0105]VM 规格:VMl (8CPU、100G 内存);
[0106]VM2 (2CPU、40G 内存);
[0107]VM3 (2CPU、40G 内存);
[0108]VM4 (2CPU、40G 内存);
[0109]VM5 (2CPU、40G 内存);
[0110]第二虚拟机组的创建模板:
[0111]VM 数量:5;
[0112]VM 规格:VM6 (8CPU、100G 内存);
[0113]VM7 (2CPU、40G 内存);
[0114]VM8 (2CPU、40G 内存);
[0115]VM9 (2CPU、40G 内存);
[0116]VMlO (2CPU、40G 内存);
[0117]第三虚拟机组的创建模板:
[0118]VM 数量:5;
[0119]VM 规格:VMll (2CPU、40G 内存);
[0120]VM12 (2CPU、40G 内存);
[0121]VM13 (2CPU、40G 内存);
[0122]VM14 (2CPU、40G 内存);
[0123]VM15 (2CPU、40G 内存)。
[0124]步骤402:所述虚拟化模块根据所述多个虚拟机组的创建请求,确定所述多个虚拟机组。
[0125]例如根据所述3个虚拟机组的创建请求,确定3个虚拟机组。
[0126]步骤403:所述虚拟化模块为所述每个虚拟机组确定一个归属物理机架;
[0127]在本实施例中,所述虚拟化模块在确定了多个虚拟机组之后,可以进一步为每个虚拟机组配置一个归属的物理机架,每个虚拟机组中的虚拟机将在所述归属的的物理机架下进行创建。
[0128]本发明实施例旨在为分布式应用创建满足其运行需求的虚拟机,因此本发明实施例在创建虚拟机的过程中,考虑了分布式应用的特性。
[0129]大型分布式应用会分布在很多物理机架上。在这种情况下,基于可靠性和可用性的要求,产生如下要求:
[0130]-希望不同节点之间的通信能够尽量发生在同一个物理机架之内,而不是跨物理机架,目的是使写入数据产生的开销最小化;
[0131]-管理节点尽可能把数据块的副本放到多个物理机架上,目的是为了提高容错能力,使数据的可靠性和可用性最大化。
[0132]基于这两点要求,分布式应用的运行属性中包含机架感知属性,在分布式分布式应用的运行时,通过机架感知属性来获取每个节点的网络拓扑信息中的物理机架信息,并根据获取到的物理机架信息进行业务处理。例如对于副本放置(Replica Placement),数据块的副本放置策略的目的是在上述两点要求之间取得平衡,可以遵循以下规则:
[0133]-第I个副本放置于本地节点;
[0134]-第2个副本放置于不同的物理机架;
[0135]-第3个副本放置于本地物理机架的不同物理机;
[0136]—其余的副本在遵循以下限制的前提下随机放置:
[0137]—I个节点最多放置I个副本
[0138]-如果副本数少于2倍机架数,不可以在同一机架放置超过2个副本。
[0139]也就是说,当分布式应用发生数据读写的时候,管理节点需要获知每个节点的机架信息以根据上述规则决定数据副本放置在哪个节点上,并由哪个节点运行或者处理。
[0140]当分布式应用与虚拟化技术结合之后,执行任务的节点就是虚拟机,因此,分布式应用需要知道每个虚拟机所属于的机架号,才能进行业务处理,另外,执行任务的虚拟机部署在哪台物理机上也需要遵循一定的规则,才能满足分布式应用的运行需求。
[0141]本发明实施例基于分布式应用的运行属性的要求,所述虚拟化模块在为分布式应用创建虚拟机集群的时候,考虑分布式应用的运行属性,增加适配层,对分布式应用的运行属性进行适配,产生与所述分布式应用的运行属性相适配的虚拟机组的部署属性,以使得创建的虚拟机集群能够满足分布式应用的运行属性。例如,根据根据分布式应用的机架感知属性产生虚拟机组的虚拟机架属性,即同一虚拟机组对应一个归属物理机架,每个虚拟机节点组中的虚拟机创建在其归属的物理机架下。
[0142]在本实施例中,所述的虚拟机组的虚拟机架属性用于模拟物理机架的属性,一个虚拟机架可以等同于一个物理机架,一个虚拟机架内的虚拟机与一个物理机架内的物理机具有相同的特性,例如,每个物理机架下的各台物理机的物理和软件资源具有独立性且互不干扰,但却具有相同的电源与基础设施(例如空调设备等),因此,相应地,每个虚拟机架中的每台虚拟机也具有独立互不干扰的物理和软件资源,以及具有相同的电源与基础设施。具体来说,要使得虚拟机组的虚拟机架属性与物理机架具有相同的特性,则同一个虚拟机组中的不同虚拟机创建在同一个物理机架下,也即,同一个虚拟机组中的不同虚拟机的物理资源应该来自于同一个物理机架。
[0143]步骤403中为所述每个虚拟机组确定一个归属物理机架的具体实现方式可以有多种方式,所述虚拟化模块首先可以根据每个虚拟机组的配置信息,为所述每个虚拟机组确定一个归属物理机架,也可以为每个虚拟机组任意或者通过轮流的方式指定一个归属物理机架,实际部署的时候,若指定的归属物理机架的物理资源不能满足虚拟机组的资源需求,可以重新指定另一个归属物理机架。例如,步骤403可以包括:[0144]步骤403-1:确定待分配归属物理机架的当前虚拟机组;
[0145]步骤403-2:获取物理设备层上的空闲物理机架;
[0146]在本发明实施例中,空闲物理机架或者空闲物理机,主要是指那些物理资源未被完全占用的物理机架或物理机,可以包含资源完全未被占用的物理机架或物理机,也可以指资源只被部分占用的物理机架或物理机。
[0147]步骤403-3:根据所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格,从所述空闲物理机架中选择空闲资源满足所述当前虚拟机组所需资源的第一物理机架;
[0148]步骤403-4:从所述第一物理机架中选择一个作为所述归属物理机架。
[0149]上述确定归属物理机架的过程中,所述虚拟化模块考虑了每个虚拟机组的配置信息,选择空闲资源满足虚拟机组的资源需求的物理机架作为归属物理机架,保证了在归属的物理机架下创建虚拟机组能够被成功执行,提高了虚拟机组的创建成功率。
[0150]进一步地,在步骤403-3中,所述虚拟化模块还可以进一步判断物理机架中的每台物理机的资源是否满足每台虚拟机的资源需求,对归属物理机架进行进一步的筛选,使得所确定的归属物理机架的每台物理机都能够创建对应的虚拟机组的每台虚拟机,使得虚拟机的成功创建得到进一步的保证,例如可以步骤403-3可以按照如下方式执行:
[0151]步骤403-3-1:确定每个所述空闲物理机架上的空闲物理机的数量;
[0152]步骤403-3-2:根据所述当前虚拟机组包含的虚拟机的数量,从所述空闲物理机架中选择第二物理机架,其中,所述第二物理机架的空闲物理机的数量大于或等于所述当前虚拟机组包含的虚拟机的数量;
[0153]步骤403-3-2:根据所述当前虚拟机组包含的各个虚拟机的规格,从所述第二物理机架中选择所述第一物理机架,其中,所述第一物理机架的空闲物理机的空闲物理资源满足所述当前虚拟机组中的每台虚拟机的资源需求。
[0154]上述步骤403中为所述每个虚拟机组确定一个归属物理机架,除了根据每个虚拟机组的配置信息之外,还可以进一步考虑虚拟机组的约束信息,所述虚拟机组的约束信息指明所述多个虚拟机组之间的关联关系或者互斥关系。当然,所述虚拟化模块也可以只根据虚拟机组的约束信息,为所述每个虚拟机组确定一个归属物理机架。
[0155]对于分布式应用来说,一个集群软件往往可能包含很多个互相冗余的软件实例(对应虚拟机),这些软件实例的拓扑关系比较复杂,例如对于Hadoop软件来说,管理节点不能在同一个物理机架中,以保证业务的可靠性,因此,虚拟化模块在为分布式应用创建虚拟机集群时,可以获取虚拟机组的约束信息,所述虚拟机组的约束信息用于指明所述多个虚拟机组的创建关联关系或者创建互斥关系,例如,某些虚拟机组需要创建在同一台物理机或同一个物理机架中,某些虚拟机组需要创建在同一台物理机或同一个物理机架中。
[0156]优选地,一种具体实现方式是:步骤403-4:从所述第一物理机架中选择一个作为所述当前虚拟机组的归属物理机架,可以具体参照如下方式执行:
[0157]步骤403-4-1:获取虚拟机组的约束信息;
[0158]优选地,本实施例中所述虚拟机组的约束信息可以随同所述多个虚拟机组的创建请求一起发送到所述虚拟化模块,仍然以上述具体实例为例,例如,管理节点需要跨物理机架进行创建,因此所述虚拟化模块接收到如下虚拟机组的约束信息:
[0159]第一虚拟机组与第二虚拟机组不能创建在同一个物理机机架下。[0160]具体实践中,上述虚拟机组的约束信息可以在所述多个虚拟机组的创建模板中直接指定,也可以作为单独的消息发送到所述虚拟化模块,还可以由所述虚拟化模块根据分布式应用的属性信息及相应的规则确定出虚拟机组的约束信息,本发明实施例对此不做限定。
[0161]步骤403-4-2:获取归属物理机架的分配记录信息,所述分配记录信息包括已分配归属物理机架的虚拟机组与归属物理机架的对应关系;
[0162]步骤403-4-3:根据所述所述分配记录信息和所述虚拟机组约束信息,从所述第一物理机架中选择一个作为所述当前虚拟机组的归属物理机架。
[0163]例如,根据第一虚拟机组与第二虚拟机组不能创建在同一个物理机机架下的虚拟机组约束信息,第一虚拟机组的归属物理机架选择第一物理机架,第二虚拟机组的归属物理机架选择第二物理机架。
[0164]另外,由于分布式应用的更高的可靠性的要求,例如至少一个相同的数据副本需要放置在不同的物理机架下,因此所述虚拟机组约束信息还可以设置为:不同虚拟机组对应不同的归属物理机架;则,所述虚拟化模块根据所述虚拟机组的约束信息,为所述每个虚拟机组确定一个不同的归属物理机架,例如第一虚拟机组的归属物理机架为物理机架3,第二虚拟机组的归属物理机架为物理机架1,第三虚拟机组的归属物理机架为物理机架2。
[0165]步骤404:所述虚拟化模块在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组;
[0166]所述虚拟化模块根据所述每个虚拟机组的配置信息,例如,所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格,在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组的每台虚拟机。具体地,所述虚拟化模块根据每个虚拟机组中的虚拟机的数量和各个虚拟机的规格,调度物理设备层上的物理资源以创建每个虚拟机组中的每台虚拟机。
[0167]进一步地,步骤404中,所述虚拟化模块还可以进一步将所述每个虚拟机组中的不同虚拟机创建在所述归属物理机架中的不同物理机上,即所述虚拟化模块将同一个虚拟机组中的不同虚拟机创建在同一个物理机架下的不同物理机中,例如:
[0168]将第一虚拟机组创建在物理机架3下,在物理机架3的物理机I上创建VMl,在物理机架3的物理机2上创建VM2,在物理机架3的物理机3上创建VM3,在物理机架3的物理机4上创建VM4,在物理机架3的物理机5上创建VM5 ;
[0169]将第二虚拟机组创建在物理机架I下,在物理机架I的物理机I上创建VM6,在物理机架I的物理机2上创建VM7,在物理机架I的物理机3上创建VM8,在物理机架I的物理机4上创建VM9,在物理机架I的物理机5上创建VMlO ;
[0170]将第三虚拟机组创建在物理机架2下,在物理机架2的物理机I上创建VMl I,在物理机架2的物理机2上创建VM12,在物理机架2的物理机3上创建VM13,在物理机架2的物理机4上创建VM14,在物理机架2的物理机5上创建VM15。
[0171]上述虚拟化模块将同一虚拟机组的不同虚拟机创建在同一归属物理机架的不同物理机上,能够保证虚拟机组更进一步与物理机架具有相同的属性,使得虚拟机组能够满足分布式应用更高可靠性的运行要求。
[0172]步骤405:所述虚拟化模块获取所述每个虚拟机组的标识;[0173]所述虚拟化模块可以为所述每个虚拟机组分配虚拟机组的标识,例如,所述虚拟化模块为第一虚拟机组分配的虚拟机组的标识为VRl (VR,Virtual Rack);为第二虚拟机组分配的虚拟机组的标识为VR2 ;为第三虚拟机组分配的虚拟机组的标识为VR3。
[0174]所述步骤406可以在虚拟化模块确定多个虚拟机组后即可执行,本发明实施例在此处描述并不限定其具体实施时的具体执行顺序。
[0175]当然,所述虚拟化模块也可以不用分配所述虚拟机组的标识,而获取每个虚拟机组的创建请求中携带的虚拟机组的标识。
[0176]步骤406:所述虚拟化模块将所述每个虚拟机组的标识提供给上层的应用模块,以使得所述上层的应用模块根据所述每个虚拟机组的标识处理业务。
[0177]具体地,所述虚拟化模块将所述每个虚拟机组的标识提供给分布式应用。
[0178]分布式应用对机架的感知并非是自适应的,首先分布式应用的管理者将分布式分布式应用的各节点采用树状的网络拓扑结构进行管理,例如,分布式应用由多个数据中心(Data Center,DC)组成,每个数据中心里有多个机架(Rack),每个机架上有多台物理机。每个节点可以通过如下形式表述其在网络拓扑结构中的位置,例如,Rl的位置可以表示为/D1/R1,而N12的位置可以表示为/D2/R4/N12。再次,告知管理节点每个服务节点的网络拓扑关系。
[0179]因此,所述虚拟化模块还可以将每个虚拟机组的标识提供给所述分布式应用,以使得所述分布式应用根据所述每个虚拟机组的标识来处理业务。
[0180]例如,所述虚拟化模块返回虚拟机的创建结果,包含VRl (VMU VM2、VM3、VM4和VM5), VR2 (VM6、VM7、VM8、VM9 和 VM10)和 VR3 (VM11、VM12、VM13、VM14 和 VM15)。
[0181]优选地,所述虚拟化模块可以将每台虚拟机所归属的虚拟机组的标识作为所述每台虚拟机的机架号,提供给所述分布式应用。
[0182]进一步地,所述虚拟化模块还可以将每个虚拟机组所在的物理机架的信息提供给分布式应用,例如所述虚拟化模块返回如下信息:VR1-Rackl,VR2-Rack2和VR3_Rack3。
[0183]所述分布式应用获取到所述每个虚拟机组的标识后,可以建立每台虚拟机的网络拓扑结构,并将所述网络拓扑结果配置到所述分布式应用的管理节点中,以使得所述管理节点根据每台虚拟机的网络拓扑结构进行业务处理。如图5所示,为根据本发明实施例应用模块所建立的为分布式应用提供服务的虚拟机群的网络拓扑结构图。例如,VMl作为管理节点,当接收到数据之后,根据每台虚拟机的网络拓扑结构,进行如下处理:
[0184]-第I个副本放置于本地节点,如VMl;
[0185]—第2个副本放置于不同的物理机架,如VMG2中的VM7;
[0186]—第3个副本放置于本地物理机架的不同物理机,如VMGl中的VM2。
[0187]本发明实施例,所述虚拟化模块在为分布式应用创建多台虚拟机时,首先确定由所述多台虚拟机划分得到的多个虚拟机组,然后为每个虚拟机组指定一个归属物理机架,再在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组,由于每个虚拟机组在其归属的物理机架下进行创建,每个虚拟机组中的各虚拟机的具有相同的归属物理机架,使得每个虚拟机组等同于一个物理机架,这样的虚拟机创建方式,每个虚拟机组中的各虚拟机的部署属性能够满足分布式应用的机架感知属性,从而为分布式应用创建了满足其运行需求的虚拟机集群。并且,本发明实施例考虑业界存在多种集群软件和不同集群软件的不同运行属性,在虚拟化模块增加适配层来实现创建满足分布式应用的虚拟机集群,使得分布式应用不需要改动即可与虚拟化技术结合实施,并保证分布式应用的性能不受影响。另外,本发明实施例中,采用虚拟机组的粒度来创建虚拟机,此种通过虚拟机组创建虚拟机的方式也更加高效。
[0188]在本实施例中,由于进一步地将每个虚拟机组的标识提供给了上层的应用模块,例如分布式应用模块,可以使得上层的应用模块在所述多台虚拟机上运行的时候,可以获知每台虚拟机所属于的虚拟机组,由此获取每个节点的网络拓扑信息,并根据获取到的虚拟机组的标识进行业务处理,例如保证不将相同的业务分配给同一虚拟机组的虚拟机进行处理,以满足上层应用的可靠性和可用性的要求。
[0189]另外,本实施例中,虚拟化模块进一步考虑虚拟机组的约束信息来创建虚拟机组,使得属于一个分布式应用多个虚拟机组不共享物理机架,即任意两个虚拟机组都不创建在同一个物理机架下,如此创建的虚拟机集群,能够满足可靠性更高要求的分布式应用的运行需求。
[0190]进一步地,本实施例中,虚拟化模块将同一虚拟机组的不同虚拟机创建在同一归属物理机架的不同物理机上,能够保证虚拟机组更进一步与物理机架具有相同的属性,使得虚拟机组能够满足分布式应用更高可靠性的运行要求。
[0191]进一步地,本实施例中,虚拟化模块不再提供单个的虚拟机的创建模板,而是提供分布式应用的创建模板或者虚拟机组的创建模板,提供了更加便利的虚拟机集群的创建方式。
[0192]如图6所示,为本发明实施例提供的又一种创建虚拟机集群的流程图,本发明实施例的方法包括:
[0193]步骤601:虚拟化模块接收多台虚拟机的创建请求,其中,每台虚拟机的创建请求指明所述每台虚拟机的数量和规格;
[0194]所述多台虚拟机组成一个虚拟机集群,所述虚拟机集群为分布式应用提供服务;
[0195]在本实施例中,所述虚拟化模块提供单个的虚拟机的创建模板,云管理员或者用户在确定需要为分布式应用创建虚拟机集群的时候,将所述虚拟机集群的多台虚拟机填写到一个虚拟机的创建模板,虚拟化模块接收多个虚拟机的创建模板。其中,每个虚拟机的创建模板中可以包含虚拟机的标识、数量以及配置信息。
[0196]优选地,所述虚拟化模块接收的虚拟机的创建模板可以是根据虚拟机的规格进行分类后的创建模板,例如所需要创建的虚拟机包含两种规格,则虚拟化模块可以接收到2个虚拟机的创建模板,每一种创建模板中包含了虚拟机的规格、标识和数量。
[0197]例如,某个分布式应用需要创建15台虚拟机,15台虚拟机中的2台虚拟机需要作为管理节点,其规格信息为8CPUU00G内存,其他虚拟机作为服务节点,其规格信息为2CPU、40G内存(服务节点的规格可以一致,也可以不同,本实施例以服务节点的规格一致为例)。则所述虚拟化模块接收到如下虚拟机的创建模板:
[0198]模板一(第一虚拟机创建请求):虚拟机规格:8CPU、100G内存;虚拟机标识:VM1和VM6 ;虚拟机数量:2 ;
[0199]模板二(第二虚拟机创建请求):虚拟机规格:2CPU、40G内存;虚拟机标识:VM2、VM3、VM4、VM5、VM7、VM8、VM9、VMlO、VMl1、VMl2、VMl3、VM14 和 VMl5 ;虚拟机数量:13。[0200]步骤602:所述虚拟化模块将所述多台虚拟机划分为所述多个虚拟机组;
[0201]上一个实施例中,云管理员或者用户或者其它分布式应用的管理软件在确定需要为分布式应用创建虚拟机集群的时候,将所述虚拟机集群的多台虚拟机进行分组,然后所述虚拟化模块接收已经分好组的多个虚拟机组的创建请求,然而,在本实施例中,所述虚拟化模块接收到的是多台虚拟机的创建请求,所述虚拟化模块需要将所述多台虚拟机进行分组,以得到多个虚拟机组。所述虚拟化模块在对所述多台虚拟机进行分组的时候,需要考虑分布式应用的分布式属性,例如管理节点分布是创建以满足可靠性,即作为管理节点的虚拟机不能分在同一组中,得到的虚拟机组如下:
[0202]第一虚拟机组:
[0203]VM 数量:5;
[0204]成员:VMl、VM2、VM3、VM4和 VM5 ;
[0205]第二虚拟机组:
[0206]VM 数量:5;
[0207]成员:VM6、VM7、VM8、VM9和 VMlO ;
[0208]第三虚拟机组:
[0209]VM 数量:5;
[0210]成员:VM11、VM12、VM13、VM14和 VM15。
[0211]上述虚拟机组的分组中,每一个虚拟机组中的虚拟机数量是相同的,但是,以上只是本发明的一个【具体实施方式】,在其他实施例中,每个虚拟机组中的虚拟机的数量可以是任意的。
[0212]步骤603:所述虚拟化模块为所述每个虚拟机组确定一个归属物理机架;
[0213]步骤604:在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组;
[0214]步骤605:所述虚拟化模块获取所述每个虚拟机组的标识;
[0215]步骤606:所述虚拟化模块将所述每个虚拟机组的标识提供给上层的应用模块,以使得所述上层的应用模块根据所述每个虚拟机组的标识处理业务。
[0216]上述步骤603-606与步骤403-406的具体实现细节相类似,本实施例中就不再赘述。
[0217]本发明实施例中,由于虚拟化模块接收到的是多台虚拟机创建请求,该虚拟化模块还将为分布式应用提供服务的多台虚拟机进行分组,并对分组得到的虚拟机组确定归属物理机架,创建所述虚拟机组,使得所创建的虚拟机集群能够满足分布式应用的运行需求。
[0218]如图7所示,为本发明实施例提供的一种创建虚拟机的装置700,包括:
[0219]接收单元701,用于接收虚拟机创建请求,所述虚拟机创建请求用于创建多台虚拟机;
[0220]分组单元702,用于确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机;
[0221]配置单元703,用于为所述每个虚拟机组确定归属物理机架,其中,一个虚拟机组对应一个归属物理机架;
[0222]创建单元704,用于在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组。[0223]具体地,所述创建单元704具体用于:将所述每个虚拟机组中的不同虚拟机创建在所述归属物理机架中的不同物理机上。
[0224]具体地,在本发明实施例的一种具体实现中,所述配置单元703具体用于:根据所述每个虚拟机组的配置信息,为所述每个虚拟机组确定一个归属物理机架,其中,所述每个虚拟机组的配置信息包括所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格。
[0225]优选地,如图8所示,在本发明实施例的另一个优选实施例中,所述装置800除包括如图7所示的各组成外,所述配置单元703包括:
[0226]确定子单元7031,用于确定待分配归属物理机架的当前虚拟机组,获取物理设备层上的空闲物理机架,根据所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格,从所述空闲物理机架中选择空闲资源满足所述当前虚拟机组所需资源的第一物理机架;
[0227]选择子单元7032,用于从所述第一物理机架中选择一个作为所述归属物理机架。
[0228]进一步,所述确定子单元7031具体用于:确定每个所述空闲物理机架上的空闲物理机的数量,根据所述当前虚拟机组包含的虚拟机的数量,从所述空闲物理机架中选择第二物理机架,其中,所述第二物理机架的空闲物理机的数量大于或等于所述当前虚拟机组包含的虚拟机的数量,根据所述当前虚拟机组包含的各个虚拟机的规格,从所述第二物理机架中选择所述第一物理机架,其中,所述第一物理机架的空闲物理机的空闲物理资源满足所述当前虚拟机组中的每台虚拟机的资源需求。
[0229]进一步,所述选择子单元7032具体用于:获取虚拟机组的约束信息,获取归属物理机架的分配记录信息,所述分配记录信息包括已分配归属物理机架的虚拟机组与归属物理机架的对应关系,根据所述所述分配记录信息和所述虚拟机组约束信息,从所述第一物理机架中选择一个作为所述当前虚拟机组的归属物理机架。
[0230]在本发明实施例的另一种具体实现中,所述配置单元703可以具体用于:获取虚拟机组的约束信息,所述虚拟机组的约束信息表示所述多个虚拟机组之间的关联关系或者互斥关系,根据所述虚拟机组的约束信息,为所述每个虚拟机组确定一个所述归属物理机架。
[0231]在本发明实施例的另一种具体实现中,如图9所示,所述装置900除包括如图7所示的各组成外,还包括发送单元705,用于获取所述每个虚拟机组的标识,将所述每个虚拟机组的标识提供给上层的应用模块,以使得所述上层的应用模块根据所述每个虚拟机组的标识处理业务。
[0232]优选地,所述发送单元705,具体用于向所述上层的应用模块发送每台虚拟机所在的机架号,其中,所述每台虚拟机所在的机架号为所述每台虚拟机所在的虚拟机组的标识。
[0233]如图10所示,为本发明实施例提供的一种创建虚拟机的装置1000,包括:
[0234]接收单元1001,用于接收虚拟机创建请求,所述虚拟机创建请求用于为分布式应用创建多台虚拟机;
[0235]分组单元1002,用于确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机;
[0236]获取单元1003,用于获取每个虚拟机组的配置信息,其中,所述每个虚拟机组的配置信息包括所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格;
[0237]确定单元1004,用于根据所述分布式应用的运行属性,确定虚拟机组的部署属性;
[0238]创建单元1005,用于根据所述获取单元1003获取的所述每个虚拟机组的配置信息和所述确定单元1004确定的所述虚拟机组的部署属性,创建所述每个虚拟机组。
[0239]具体地,所述确定单元1004具体用于:根据所述分布式应用的机架感知属性,确定所述虚拟机组的虚拟机架属性,其中,所述虚拟机架属性表明一个虚拟机组对应一个归属物理机架;
[0240]所述创建单元1005,具体用于:根据所述虚拟机组的虚拟机架属性,为所述每个虚拟机组确定一个归属物理机架,根据所述每个虚拟机组的配置信息,在所述每个虚拟机组的归属物理机架下创建所述每个虚拟机组。
[0241]如图11所示,本发明实施例提供的一种创建虚拟机的系统,包括:
[0242]云虚拟化装置1101,用于接收虚拟机创建请求,所述虚拟机创建请求用于创建多台虚拟机,确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机,为所述每个虚拟机组确定归属物理机架,其中,一个虚拟机组对应一个归属物理机架,在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组,获取所述每个虚拟机组的标识,将所述每个虚拟机组的标识提供给应用装置;
[0243]所述应用装置1102,用于接收所述每个虚拟机组的标识,根据所述每个虚拟机组的标识处理业务。
[0244]如图12,为本发明实施例的计算机的结构组成示意图。本发明实施例的计算机可包括:
[0245]处理器1201、存储器1202、系统总线1204和通信接口 1205。CPU1201、存储器1202和通信接口 1205之间通过系统总线1204连接并完成相互间的通信。
[0246]处理器1201可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
[0247]存储器1202可以为高速RAM存储器,也可以为非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
[0248]存储器1202用于计算机执行指令1203。具体的,计算机执行指令1203中可以包括程序代码。
[0249]当计算机运行时,处理器1201运行计算机执行指令1203,可以执行图2、3、4或图6任意之一所述的方法流程。
[0250]本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此夕卜,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
[0251 ] 计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。[0252]计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
[0253]计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
[0254]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0255]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种创建虚拟机的方法,其特征在于,包括: 接收虚拟机创建请求,所述虚拟机创建请求用于创建多台虚拟机; 确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机; 为所述每个虚拟机组确定归属物理机架,其中,一个虚拟机组对应一个归属物理机架; 在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组。
2.如权利要求1所述的方法,其特征在于,在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组,包括: 将所述每个虚拟机组中的不同虚拟机创建在所述归属物理机架中的不同物理机上。
3.如权利要求1或2所述的方法,其特征在于,所述为所述每个虚拟机组确定归属物理机架,包括: 根据所述每个虚拟机组的配置信息,为所述每个虚拟机组确定一个归属物理机架,其中,所述每个虚拟机组的配置信息包括所`述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格。
4.如权利要求3所述的方法,其特征在于,所述根据每个虚拟机组的配置信息,为所述每个虚拟机组确定一个归属物理机架,包括: 确定待分配归属物理机架的当前虚拟机组; 获取物理设备层上的空闲物理机架; 根据所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格,从所述空闲物理机架中选择空闲资源满足所述当前虚拟机组所需资源的第一物理机架; 从所述第一物理机架中选择一个作为所述归属物理机架。
5.如权利要求4所述的方法,其特征在于,所述根据所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格,从所述空闲物理机架中选择空闲资源满足所述当前虚拟机组所需资源的第一物理机架,包括: 确定每个所述空闲物理机架上的空闲物理机的数量; 根据所述当前虚拟机组包含的虚拟机的数量,从所述空闲物理机架中选择第二物理机架,其中,所述第二物理机架的空闲物理机的数量大于或等于所述当前虚拟机组包含的虚拟机的数量; 根据所述当前虚拟机组包含的各个虚拟机的规格,从所述第二物理机架中选择所述第一物理机架,其中,所述第一物理机架的空闲物理机的空闲物理资源满足所述当前虚拟机组中的每台虚拟机的资源需求。
6.如权利要求4或5所述的方法,其特征在于,所述从所述第一物理机架中选择一个作为所述归属物理机架,包括: 获取虚拟机组的约束信息; 获取归属物理机架的分配记录信息,所述分配记录信息包括已分配归属物理机架的虚拟机组与归属物理机架的对应关系; 根据所述所述分配记录信息和所述虚拟机组约束信息,从所述第一物理机架中选择一个作为所述当前虚拟机组的归属物理机架。
7.如权利要求1或2所述的方法,其特征在于,所述为所述每个虚拟机组确定归属物理机架,包括: 获取虚拟机组的约束信息,所述虚拟机组的约束信息表示所述多个虚拟机组之间的关联关系或者互斥关系; 根据所述虚拟机组的约束信息,为所述每个虚拟机组确定一个所述归属物理机架。
8.如权利要求6或7所述的方法,其特征在于,所述虚拟机组约束信息包括:不同虚拟机组对应不同的归属物理机架; 贝U,为所述每个虚拟机组确定一个不同的归属物理机架。
9.如权利要求1-8任一项所述的方法,其特征在于,还包括: 获取所述每个虚拟机组的标识; 将所述每个虚拟机组的标识提供给应用模块,以使得所述应用模块根据所述每个虚拟机组的标识处理业务。
10.如权利要求9所述的方法,其特征在于,所述将所述每个虚拟机组的标识提供给应用模块,包括: 向所述应用模块发送每台虚拟机所在的机架号,其中,所述每台虚拟机所在的机架号为所述每台虚拟机所在的虚拟机组的标识。
11.如权利要求1-10任一项所述的方法,其特征在于,所述接收虚拟机创建请求包括: 接收多个虚拟机组的创`建请求,其中,每个虚拟机组的创建请求指明所述每个虚拟机组所包含的虚拟机的数量和各虚拟机的规格; 相应地,所述确定多个虚拟机组包括: 根据所述多个虚拟机组的创建请求,确定所述多个虚拟机组。
12.如权利要求1-10任一项所述的方法,其特征在于,所述接收虚拟机创建请求包括: 接收多台虚拟机的创建请求,其中,每台虚拟机的创建请求指明所述每台虚拟机的规格; 相应地,所述确定多个虚拟机组包括: 将所述多台虚拟机划分为所述多个虚拟机组。
13.—种创建虚拟机的方法,其特征在于,包括: 接收虚拟机创建请求,所述虚拟机创建请求用于为分布式应用创建多台虚拟机; 确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机; 获取每个虚拟机组的配置信息,其中,所述每个虚拟机组的配置信息包括所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格; 根据所述分布式应用的运行属性,确定虚拟机组的部署属性; 根据所述每个虚拟机组的配置信息和所述虚拟机组的部署属性,创建所述每个虚拟机组。
14.如权利要求13所述的方法,其特征在于,所述根据所述分布式应用的属性,确定所述每个虚拟机组的部署属性,包括: 根据所述分布式应用的机架感知属性,确定所述虚拟机组的虚拟机架属性,其中,所述虚拟机架属性表明一个虚拟机组对应一个归属物理机架;相应地,所述根据所述每个虚拟机组的配置信息和所述虚拟机组的部署属性,创建所述每个虚拟机组,包括: 根据所述虚拟机组的虚拟机架属性,为所述每个虚拟机组确定一个归属物理机架; 根据所述每个虚拟机组的配置信息,在所述每个虚拟机组的归属物理机架下创建所述每个虚拟机组。
15.如权利要求14所述的方法,其特征在于,根据所述每个虚拟机组的配置信息,在所述每个虚拟机组的归属物理机架下创建所述每个虚拟机组,包括: 根据所述每个虚拟机组的配置信息,将所述每个虚拟机组中的不同虚拟机创建在所述归属物理机架中的不同物理机上。
16.如权利要求14或15所述的方法,其特征在于,所述根据所述虚拟机组的虚拟机架属性,为所述每个虚拟机组确定一个归属物理机架,包括: 根据所述虚拟机组的虚拟机架属性,为所述每个虚拟机组确定一个不同的归属物理机架。
17.一种创建虚拟机的装置,其特征在于,包括: 接收单元,用于接收虚拟机创建请求,所述虚拟机创建请求用于创建多台虚拟机; 分组单元,用 于确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机; 配置单元,用于为所述每个虚拟机组确定归属物理机架,其中,一个虚拟机组对应一个归属物理机架; 创建单元,用于在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组。
18.如权利要求17所述的装置,其特征在于,所述创建单元具体用于:将所述每个虚拟机组中的不同虚拟机创建在所述归属物理机架中的不同物理机上。
19.如权利要求17或18所述的装置,其特征在于,所述配置单元具体用于:根据所述每个虚拟机组的配置信息,为所述每个虚拟机组确定一个归属物理机架,其中,所述每个虚拟机组的配置信息包括所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格。
20.如权利要求19所述的装置,其特征在于,所述配置单元包括: 确定子单元,用于确定待分配归属物理机架的当前虚拟机组,获取物理设备层上的空闲物理机架,根据所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格,从所述空闲物理机架中选择空闲资源满足所述当前虚拟机组所需资源的第一物理机架; 选择子单元,用于从所述第一物理机架中选择一个作为所述归属物理机架。
21.如权利要求20所述的装置,其特征在于,所述确定子单元具体用于:确定每个所述空闲物理机架上的空闲物理机的数量,根据所述当前虚拟机组包含的虚拟机的数量,从所述空闲物理机架中选择第二物理机架,其中,所述第二物理机架的空闲物理机的数量大于或等于所述当前虚拟机组包含的虚拟机的数量,根据所述当前虚拟机组包含的各个虚拟机的规格,从所述第二物理机架中选择所述第一物理机架,其中,所述第一物理机架的空闲物理机的空闲物理资源满足所述当前虚拟机组中的每台虚拟机的资源需求。
22.如权利要求20或21所述的装置,其特征在于,所述选择子单元具体用于:获取虚拟机组的约束信息,获取归属物理机架的分配记录信息,所述分配记录信息包括已分配归属物理机架的虚拟机组与归属物理机架的对应关系,根据所述所述分配记录信息和所述虚拟机组约束信息,从所述第一物理机架中选择一个作为所述当前虚拟机组的归属物理机架。
23.如权利要求17或18所述的装置,其特征在于,所述配置单元具体用于:获取虚拟机组的约束信息,所述虚拟机组的约束信息表示所述多个虚拟机组之间的关联关系或者互斥关系,根据所述虚拟机组的约束信息,为所述每个虚拟机组确定一个所述归属物理机架。
24.如权利要求22或23所述的装置,其特征在于,所述虚拟机组约束信息包括:不同虚拟机组对应不同的归属物理机架; 贝U,所述配置单元为所述每个虚拟机组确定一个不同的归属物理机架。
25.如权利要求22-24任一项所述的装置,其特征在于,还包括: 发送单元,用于获取所述每个虚拟机组的标识,将所述每个虚拟机组的标识提供给应用模块,以使得所述应用模块根据所述每个虚拟机组的标识处理业务。
26.如权利要求25所述的装置,其特征在于,所述发送单元,具体用于向所述应用模块发送每台虚拟机所在的机架号,其中,所述每台虚拟机所在的机架号为所述每台虚拟机所在的虚拟机组的标识。
27.如权利要求22-26任一项所述的装置,其特征在于,所述接收单元具体用于:接收多个虚拟机组的创建请求,其中,每个虚拟机组的创建请求指明所述每个虚拟机组所包含的虚拟机的数量和各虚拟机的规格; 所述分组单元具体用于:根据所述多个虚拟机组的创建请求,确定所述多个虚拟机组。
28.如权利要求22-26任一项所述的装置,其特征在于,所述接收单元具体用于:接收多台虚拟机的创建请求,其中,每台虚拟机的创建请求指明所述每台虚拟机的规格; 所述分组单元具体用于:将所述多台虚拟机划分为所述多个虚拟机组。
29.—种创建虚拟机的装置,其特征在于,包括: 接收单元,用于接收虚拟机创建请求,所述虚拟机创建请求用于为分布式应用创建多台虚拟机; 分组单元,用于确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机; 获取单元,用于获取每个虚拟机组的配置信息,其中,所述每个虚拟机组的配置信息包括所述每个虚拟机组包含的虚拟机的数量和各个虚拟机的规格; 确定单元,用于根据所述分布式应用的运行属性,确定虚拟机组的部署属性; 创建单元,用于根据所述每个虚拟机组的配置信息和所述虚拟机组的部署属性,创建所述每个虚拟机组。
30.如权利要求29所述的装置,其特征在于,所述确定单元具体用于:根据所述分布式应用的机架感知属性,确定所述虚拟机组的虚拟机架属性,其中,所述虚拟机架属性表明一个虚拟机组对应一个归属物理机架; 所述创建单元,具体用于:根据所述虚拟机组的虚拟机架属性,为所述每个虚拟机组确定一个归属物理机架,根据所述每个虚拟机组的配置信息,在所述每个虚拟机组的归属物理机架下创建所述每个虚拟机组。
31.一种创建虚拟机的系统,其特征在于,包括: 云虚拟化装置,用于接收虚拟机创建请求,所述虚拟机创建请求用于创建多台虚拟机,确定多个虚拟机组,其中,所述多个虚拟机组由所述多台虚拟机划分得到,每个虚拟机组包含至少一台虚拟机,为所述每个虚拟机组确定归属物理机架,其中,一个虚拟机组对应一个归属物理机架,在所述每个虚拟机组的归属物理机架下,创建所述每个虚拟机组,获取所述每个虚拟机组的标识,将所述每个虚拟机组的标识提供给应用装置; 所述应用装置,用于接收所述每个虚拟机组的标识,根据所述每个虚拟机组的标识处理业务。
32.—种计算机,其特征在于,包括:处理器、存储器、总线和通信接口 ; 所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算机运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算机执行如权利要求1-12任一项所述的创建虚拟机的方法。
33.一种计算机,其特征在于,包括:处理器、存储器、总线和通信接口 ; 所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算机运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算机执行如权利要求13-16任一项所述的创建虚拟机的方法。
34.一种计算机可读介质,其特征在于,包括计算机执行指令,当计算机的处理器执行所述计算机执行指令时,所述计算机执行如权利要求1-12任一项所述的创建虚拟机的方法。
35.一种计算机可读介质,其特征在于,包括计算机执行指令,当计算机的处理器执行所述计算机执行指令时,所述计算机执行如权利要求13-16任一项所述的创建虚拟机的方法。
【文档编号】G06F9/455GK103797462SQ201380002627
【公开日】2014年5月14日 申请日期:2013年10月23日 优先权日:2013年10月23日
【发明者】钟颙 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1