虚拟资源编排方法及装置转让专利

申请号 : CN201710189168.5

文献号 : CN107145380B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙勐文震

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

摘要 :

本申请公开了一种虚拟资源编排方法及装置,属于计算机技术领域。所述方法包括:获取编排模板,该编排模板包括至少两个存在依赖关系的第一待编排虚拟资源和第二待编排虚拟资源的配置参数和关系指示信息,第一待编排虚拟资源和第二待编排虚拟资源可以均为虚拟机或容器,该第一待编排虚拟资源的关系指示信息和该第二待编排虚拟资源的关系指示信息可以联合指示该第二待编排虚拟资源依赖于该第一待编排虚拟资源的指定参数;基于该第一待编排虚拟资源和第二待编排虚拟资源的配置参数创建对应的第一虚拟资源和第二虚拟资源;将该第一虚拟资源中的指定参数的参数值传输至该第二虚拟资源中。本申请能够提高应用节点部署的效率,简化应用节点部署的流程。

权利要求 :

1.一种虚拟资源编排方法,其特征在于,所述方法包括:

获取编排模板,所述编排模板包括至少两个待编排虚拟资源的配置参数和关系指示信息,所述至少两个待编排虚拟资源包括存在依赖关系的第一待编排虚拟资源和第二待编排虚拟资源,所述第一待编排虚拟资源的关系指示信息用于指示所述第一待编排虚拟资源的指定参数被依赖,所述第二待编排虚拟资源的关系指示信息用于指示所述第二待编排虚拟资源依赖于所述第一待编排虚拟资源的指定参数,所述待编排虚拟资源为虚拟机或容器,所述至少两个待编排虚拟资源中包括至少一个虚拟机和至少一个容器;

基于所述第一待编排虚拟资源的配置参数创建对应的第一虚拟资源;

基于所述第二待编排虚拟资源的配置参数创建对应的第二虚拟资源;

基于所述第一待编排虚拟资源的关系指示信息和所述第二待编排虚拟资源的关系指示信息,将所述第一虚拟资源中的指定参数的参数值传输至所述第二虚拟资源中。

2.根据权利要求1所述的方法,其特征在于,所述基于所述第一待编排虚拟资源的关系指示信息和所述第二待编排虚拟资源的关系指示信息,将所述第一虚拟资源中的指定参数的参数值传输至所述第二虚拟资源中,包括:基于所述第一待编排虚拟资源的关系指示信息,获取所述第一虚拟资源中的指定参数的参数值;

基于所述第二待编排虚拟资源的关系指示信息,向所述第二虚拟资源提供所述指定参数的参数值。

3.根据权利要求2所述的方法,其特征在于,所述基于所述第一待编排虚拟资源的关系指示信息,获取所述第一虚拟资源中的指定参数的参数值,包括:基于所述第一待编排虚拟资源的关系指示信息,通过所述第一虚拟资源对应的调度装置查询所述第一虚拟资源中的指定参数的参数值;

将查询到的所述指定参数的参数值存储于参数数据库中。

4.根据权利要求3所述的方法,其特征在于,所述基于所述第二待编排虚拟资源的关系指示信息,向所述第二虚拟资源提供所述指定参数的参数值,包括:向所述第二虚拟资源发送参数值获取指令,所述参数值获取指令携带所述第二待编排虚拟资源的关系指示信息,所述参数值获取指令用于指示所述第二虚拟资源从所述参数数据库中获取所述第二待编排虚拟资源的关系指示信息所指示的指定参数的参数值。

5.根据权利要求1所述的方法,其特征在于,所述第二待编排虚拟资源的配置参数包括:参数配置信息,所述参数配置信息用于指示所述第二虚拟资源在获取所述指定参数的参数值后,将所述指定参数的参数值配置于所述第二虚拟资源的目标应用中。

6.根据权利要求5所述的方法,其特征在于,所述第二待编排虚拟资源的配置参数包括:启动信息,所述启动信息用于指示所述第二虚拟资源在将所述指定参数的参数值配置于所述第二虚拟资源的目标应用中后,启动所述第二虚拟资源中的目标应用。

7.根据权利要求1所述的方法,其特征在于,所述基于所述第一待编排虚拟资源的配置参数创建对应的第一虚拟资源,包括:当所述第一待编排虚拟资源为虚拟机时,通过虚拟机调度装置调用虚拟机创建引擎,基于所述第一待编排虚拟资源的配置参数创建所述第一待编排虚拟资源对应的虚拟机;

当所述第一待编排虚拟资源为容器时,通过容器调度装置调用容器创建引擎,基于所述第一待编排虚拟资源的配置参数创建所述第一待编排虚拟资源对应的容器;

所述基于所述第二待编排虚拟资源的配置参数创建对应的第二虚拟资源,包括:当所述第二待编排虚拟资源为虚拟机时,通过虚拟机调度装置调用虚拟机创建引擎,基于所述第二待编排虚拟资源的配置参数创建所述第二待编排虚拟资源对应的虚拟机;

当所述第二待编排虚拟资源为容器时,通过容器调度装置调用容器创建引擎,基于所述第二待编排虚拟资源的配置参数创建所述第二待编排虚拟资源对应的容器。

8.一种虚拟资源编排装置,其特征在于,所述装置包括:

获取模块,用于获取编排模板,所述编排模板包括至少两个待编排虚拟资源的配置参数和关系指示信息,所述至少两个待编排虚拟资源包括存在依赖关系的第一待编排虚拟资源和第二待编排虚拟资源,所述第一待编排虚拟资源的关系指示信息用于指示所述第一待编排虚拟资源的指定参数被依赖,所述第二待编排虚拟资源的关系指示信息用于指示所述第二待编排虚拟资源依赖于所述第一待编排虚拟资源的指定参数,所述待编排虚拟资源为虚拟机或容器,所述至少两个待编排虚拟资源中包括至少一个虚拟机和至少一个容器;

创建模块,用于基于所述第一待编排虚拟资源的配置参数创建对应的第一虚拟资源;

所述创建模块,还用于基于所述第二待编排虚拟资源的配置参数创建对应的第二虚拟资源;

参数值传输模块,用于基于所述第一待编排虚拟资源的关系指示信息和所述第二待编排虚拟资源的关系指示信息,将所述第一虚拟资源中的指定参数的参数值传输至所述第二虚拟资源中。

9.根据权利要求8所述的装置,其特征在于,所述参数值传输模块,用于:

基于所述第一待编排虚拟资源的关系指示信息,获取所述第一虚拟资源中的指定参数的参数值;

基于所述第二待编排虚拟资源的关系指示信息,向所述第二虚拟资源提供所述指定参数的参数值。

10.根据权利要求9所述的装置,其特征在于,所述参数值传输模块,用于:基于所述第一待编排虚拟资源的关系指示信息,通过所述第一虚拟资源对应的调度装置查询所述第一虚拟资源中的指定参数的参数值;

将查询到的所述指定参数的参数值存储于参数数据库中。

11.根据权利要求10所述的装置,其特征在于,所述参数值传输模块,用于:向所述第二虚拟资源发送参数值获取指令,所述参数值获取指令携带所述第二待编排虚拟资源的关系指示信息,所述参数值获取指令用于指示所述第二虚拟资源从所述参数数据库中获取所述第二待编排虚拟资源的关系指示信息所指示的指定参数的参数值。

12.根据权利要求8所述的装置,其特征在于,所述第二待编排虚拟资源的配置参数包括:参数配置信息,所述参数配置信息用于指示所述第二虚拟资源在获取所述指定参数的参数值后,将所述指定参数的参数值配置于所述第二虚拟资源的目标应用中。

13.根据权利要求12所述的装置,其特征在于,所述第二待编排虚拟资源的配置参数包括:启动信息,所述启动信息用于指示所述第二虚拟资源在将所述指定参数的参数值配置于所述第二虚拟资源的目标应用中后,启动所述第二虚拟资源中的目标应用。

14.根据权利要求8所述的装置,其特征在于,所述创建模块,用于:

当所述第一待编排虚拟资源为虚拟机时,通过虚拟机调度装置调用虚拟机创建引擎,基于所述第一待编排虚拟资源的配置参数创建所述第一待编排虚拟资源对应的虚拟机;

当所述第一待编排虚拟资源为容器时,通过容器调度装置调用容器创建引擎,基于所述第一待编排虚拟资源的配置参数创建所述第一待编排虚拟资源对应的容器;

所述创建模块,用于:

当所述第二待编排虚拟资源为虚拟机时,通过虚拟机调度装置调用虚拟机创建引擎,基于所述第二待编排虚拟资源的配置参数创建所述第二待编排虚拟资源对应的虚拟机;

当所述第二待编排虚拟资源为容器时,通过容器调度装置调用容器创建引擎,基于所述第二待编排虚拟资源的配置参数创建所述第二待编排虚拟资源对应的容器。

说明书 :

虚拟资源编排方法及装置

技术领域

[0001] 本申请涉及计算机技术领域,特别涉及一种虚拟资源编排方法及装置。

背景技术

[0002] 在实际应用中,一些分布式、集群式的应用,如分布式文档存储数据库(英文:MongoDB)、分布式计算(英文:Hadoop)等中间应用,需要多节点部署,并且可能会随业务负载变化而动态增减节点个数。
[0003] 相关技术中,可以将这些应用的多个节点部署于虚拟机或容器中,具体地,一种情况下,可以将这些节点全部部署于虚拟机中,或者,全部部署于容器(英文:container)中,另一种情况下,可以将这些节点混合部署于虚拟机和容器中。
[0004] 在实际应用中,通常可以利用编排的方式创建容器或虚拟机以部署上述应用,具体地,在节点全部部署于虚拟机或容器上时,以全部部署于虚拟机上为例,技术人员可以编辑一个编排模板,该编排模板中可以定义一组虚拟机的配置参数和依赖关系,而后虚拟机编排装置可以根据该编排模板的定义,首先创建被依赖的虚拟机并获取该被依赖的虚拟机的被依赖的参数值,而后再创建依赖于上述被依赖的虚拟机的依赖虚拟机,在创建依赖虚拟机的过程中,虚拟机编排装置可以将上述被依赖的参数值配置于依赖虚拟机中,以使依赖虚拟机基于该被依赖的参数值运行部署于自身中的应用;
[0005] 由于现有的编排方式仅能够实现一组容器或一组虚拟机的创建,并不能实现虚拟机和容器的混合创建,因此,在将应用的节点混合部署于容器和虚拟机中时,技术人员需要根据容器和虚拟机的依赖关系编辑多个编排模板,并对创建容器和虚拟机的过程进行人工干预。例如,在将节点部署于虚拟机A,容器B和虚拟机Z上,且虚拟机A依赖于容器B的IP地址,容器B依赖于虚拟机Z的IP地址时,技术人员需要编辑一个编排模板创建虚拟机Z,然后技术人员需要编辑一个编排模板创建容器B,在创建容器B时,技术人员还需要将虚拟机Z的IP地址配置给容器B,再然后技术人员需要编辑一个编排模板创建虚拟机A,在创建虚拟机A时,技术人员还需要将容器B的IP地址配置给虚拟机A。
[0006] 在实现本申请的过程中,发明人发现现有技术至少存在以下问题:
[0007] 在将节点混合部署于虚拟机和容器上时,需要编辑多个编排模板,且需要人工干预创建过程,导致节点部署的效率较低,流程较为复杂。

发明内容

[0008] 为了解决现有技术节点部署效率较低、流程较为复杂的问题,本发明实施例提供了一种虚拟资源编排方法及装置。所述技术方案如下:
[0009] 一方面,提供了一种虚拟资源编排方法,所述方法包括:
[0010] 获取编排模板,所述编排模板包括至少两个待编排虚拟资源的配置参数和关系指示信息,所述至少两个待编排虚拟资源包括存在依赖关系的第一待编排虚拟资源和第二待编排虚拟资源,所述第一待编排虚拟资源的关系指示信息用于指示所述第一待编排虚拟资源的指定参数被依赖,所述第二待编排虚拟资源的关系指示信息用于指示所述第二待编排虚拟资源依赖于所述第一待编排虚拟资源的指定参数,所述待编排虚拟资源为虚拟机或容器;
[0011] 基于所述第一待编排虚拟资源的配置参数创建对应的第一虚拟资源;
[0012] 基于所述第二待编排虚拟资源的配置参数创建对应的第二虚拟资源;
[0013] 基于所述第一待编排虚拟资源的关系指示信息和所述第二待编排虚拟资源的关系指示信息,将所述第一虚拟资源中的指定参数的参数值传输至所述第二虚拟资源中。
[0014] 在本发明实施例中,编排模板中包括存在依赖关系的第一待编排虚拟资源和第二待编排虚拟资源的配置参数和关系指示信息,其中,第一待编排虚拟资源和第二待编排虚拟资源均可以为虚拟机或容器,虚拟资源编排装置可以基于第一待编排虚拟资源和第二待编排虚拟资源的配置参数创建对应的第一虚拟资源和第二虚拟资源,因此,技术人员仅编辑一个编排模板就能够实现虚拟机和容器的混合创建,从而提高了节点部署的效率,简化了节点部署的流程。
[0015] 此外,第一待编排虚拟资源的关系指示信息用于指示第一待编排虚拟资源的指定参数被依赖,第二待编排虚拟资源的关系指示信息用于指示第二待编排虚拟资源依赖于第一待编排虚拟资源的指定参数,也即是,第一待编排虚拟资源的关系指示信息和第二待编排虚拟资源的关系指示信息可以联合指示第二待编排虚拟资源依赖于第一待编排虚拟资源的指定参数,虚拟资源编排装置在创建了第一虚拟资源和第二虚拟资源后,可以基于第一待编排虚拟资源的关系指示信息和第二待编排虚拟资源的关系指示信息,将第一虚拟资源中的指定参数的参数值传输至第二虚拟资源中,从而使得技术人员不需要根据虚拟机和容器的依赖关系对虚拟机和容器的创建过程进行人工干预,从而提高了节点部署的效率,简化了节点部署的流程。
[0016] 在本发明的一个实施例中,上文所述的基于所述第一待编排虚拟资源的关系指示信息和所述第二待编排虚拟资源的关系指示信息,将所述第一虚拟资源中的指定参数的参数值传输至所述第二虚拟资源中的技术过程可以为:基于所述第一待编排虚拟资源的关系指示信息,获取所述第一虚拟资源中的指定参数的参数值;基于所述第二待编排虚拟资源的关系指示信息,向所述第二虚拟资源提供所述指定参数的参数值。
[0017] 其中,基于所述第一待编排虚拟资源的关系指示信息,获取所述第一虚拟资源中的指定参数的参数值的技术过程可以包括:基于所述第一待编排虚拟资源的关系指示信息,通过所述第一虚拟资源对应的调度装置查询所述第一虚拟资源中的指定参数的参数值;将查询到的所述指定参数的参数值存储于参数数据库中。
[0018] 基于所述第二待编排虚拟资源的关系指示信息,向所述第二虚拟资源提供所述指定参数的参数值的技术过程可以包括:向所述第二虚拟资源发送参数值获取指令,所述参数值获取指令携带所述第二待编排虚拟资源的关系指示信息,所述参数值获取指令用于指示所述第二虚拟资源从所述参数数据库中获取所述第二待编排虚拟资源的关系指示信息所指示的指定参数的参数值。
[0019] 在本发明的一个实施例中,所述第二待编排虚拟资源的配置参数包括:参数配置信息,所述参数配置信息用于指示所述第二虚拟资源在获取所述指定参数的参数值后,将所述指定参数的参数值配置于所述第二虚拟资源的目标应用中。
[0020] 在本发明的一个实施例中,所述第二待编排虚拟资源的配置参数包括:启动信息,所述启动信息用于指示所述第二虚拟资源在将所述指定参数的参数值配置于所述第二虚拟资源的目标应用中后,启动所述第二虚拟资源中的目标应用。
[0021] 通过在第二虚拟资源的配置参数中设置参数配置信息和启动信息,使得第二虚拟资源可以在将指定参数值配置于目标应用中后启动目标应用,从而保证了第二虚拟资源中的目标应用能够正确运行。
[0022] 在本发明的一个实施例中,基于所述第一待编排虚拟资源的配置参数创建对应的第一虚拟资源的技术过程可以为:当所述第一待编排虚拟资源为虚拟机时,通过虚拟机调度装置调用虚拟机创建引擎,基于所述第一待编排虚拟资源的配置参数创建所述第一待编排虚拟资源对应的虚拟机;当所述第一待编排虚拟资源为容器时,通过容器调度装置调用容器创建引擎,基于所述第一待编排虚拟资源的配置参数创建所述第一待编排虚拟资源对应的容器。
[0023] 同理地,基于所述第二待编排虚拟资源的配置参数创建对应的第二虚拟资源的技术过程可以为:当所述第二待编排虚拟资源为虚拟机时,通过虚拟机调度装置调用虚拟机创建引擎,基于所述第二待编排虚拟资源的配置参数创建所述第二待编排虚拟资源对应的虚拟机;当所述第二待编排虚拟资源为容器时,通过容器调度装置调用容器创建引擎,基于所述第二待编排虚拟资源的配置参数创建所述第二待编排虚拟资源对应的容器。
[0024] 第二方面,提供了一种虚拟资源编排装置,该虚拟资源编排装置包括至少一个模块,该虚拟资源编排装置可以通过上述至少一个模块执行上述第一方面或第一方面中任意一种实现方式所提供的虚拟资源编排方法。
[0025] 本发明实施例提供的技术方案带来的有益效果是:
[0026] 通过获取编排模板中存在依赖关系的第一待编排虚拟资源和第二待编排虚拟资源的配置参数和关系指示信息,其中,第一待编排虚拟资源和第二待编排虚拟资源均可以为虚拟机或容器,使得虚拟资源编排装置可以基于第一待编排虚拟资源和第二待编排虚拟资源的配置参数创建对应的第一虚拟资源和第二虚拟资源,因此,技术人员仅编辑一个编排模板就能够实现虚拟机和容器的混合创建,从而提高了节点部署的效率,简化了节点部署的流程。此外,第一待编排虚拟资源的关系指示信息用于指示第一待编排虚拟资源的指定参数被依赖,第二待编排虚拟资源的关系指示信息用于指示第二待编排虚拟资源依赖于第一待编排虚拟资源的指定参数,也即是,第一待编排虚拟资源的关系指示信息和第二待编排虚拟资源的关系指示信息可以联合指示第二待编排虚拟资源依赖于第一待编排虚拟资源的指定参数,虚拟资源编排装置在创建了第一虚拟资源和第二虚拟资源后,可以基于第一待编排虚拟资源的关系指示信息和第二待编排虚拟资源的关系指示信息,将第一虚拟资源中的指定参数的参数值传输至第二虚拟资源中,从而使得技术人员不需要根据虚拟机和容器的依赖关系对虚拟机和容器的创建过程进行人工干预,从而提高了节点部署的效率,简化了节点部署的流程。

附图说明

[0027] 图1-1是一种利用编排的方法创建一组虚拟机的方法的示意图。
[0028] 图1-2是一种利用编排的方法混合创建虚拟机和容器的方法的示意图。
[0029] 图1-3是本发明实施例提供的一种虚拟资源编排方法所涉及的实施环境的示意图。
[0030] 图1-4是本发明实施例提供的一种虚拟资源编排装置的结构框图。
[0031] 图1-5是本发明实施例提供的一种虚拟资源编排装置的结构框图。
[0032] 图2-1是本发明实施例提供的一种虚拟资源编排方法的流程图。
[0033] 图2-2是本发明实施例提供的一种虚拟资源编排装置混合创建容器和虚拟机的示意图。
[0034] 图2-3是本发明实施例提供的一种虚拟资源编排装置传递指定参数的参数值的示意图。
[0035] 图3是本发明实施例提供的一种虚拟资源编排装置的结构框图。

具体实施方式

[0036] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0037] 当前,虚拟机(英文:Virtual Machine,简称:VM)和容器(英文:Container)已经成为计算虚拟化领域的两个主要的技术,它们各有特点和应用场景。其中,虚拟机带有操作系统,是一种硬件级的虚拟化隔离装置,主要适用于部署对系统隔离性、安全性要求较高的应用或模块,而容器与主机共享操作系统内核,并可以通过操作系统内核提供的隔离能力为应用或模块提供独立的用户域、文件系统和运行空间等,其具有更高的迁移性和部署密度。
[0038] 在实际应用中,一些需要多节点部署的分布式、集群式的应用可以部署于多个虚拟机或容器中,也即是,该类应用的多个节点可以全部部署于虚拟机中、全部部署于容器中或混合部署于虚拟机和容器中。在实际应用中,对于一些应用而言,基于虚拟机和容器各自的特点,将节点混合部署于虚拟机和容器中要优于将节点全部部署于虚拟机或全部部署于容器中。以分布式计算(英文:Hadoop)应用组建的一个分析系统为例,其需要部署的节点类型有三类,第一类为主节点(英文:Master Node),第二类为从节点(英文:Slave Node),第三类为用户节点(英文:Client Node)。其中,主节点负责整个分析系统的元数据和任务调度管理,主节点部署后通常不需要动态增减,其对可靠性、隔离性的要求较高,因此适合将其部署到虚拟机上,而从节点负责执行数据分析任务,自身具有多副本机制,具有一定的可靠性保证,且从节点是未来分析系统扩展的主体,需要动态增减和扩容,因此适合将其部署到容器上,用户节点仅在执行数据分析任务时被使用,可以动态地创建和销毁,因此适合将其部署到容器上。
[0039] 在实际应用中,一般可以利用编排的方式通过编辑一个编排模板来创建一组虚拟机或一组容器以实现上述分布式、集群式的应用的多节点部署。其中,编排指的是通过流程化的方式实现一组虚拟机或一组容器的创建。
[0040] 以将上述举例中用户节点(下文称为X节点)、主节点(下文称为Y节点)和从节点(下文称为Z节点)全部部署于虚拟机中为例,技术人员可以编辑一个编排模板,该编排模板中可以定义3个待编排虚拟机x1、y1和z1(分别对应于X节点、Y节点和Z节点)的配置参数,如中央处理器(英文:Central Processing Unit,简称:CPU)个数、内存大小、虚拟机镜像类型等,以及该3个待编排虚拟机x1、y1和z1的依赖关系(对应于X节点、Y节点和Z节点的依赖关系),例如该依赖关系可以为待编排虚拟机x1依赖于待编排虚拟机y1的网际互联协议(英文:Internet Protocol,简称:IP)地址,待编排虚拟机y1依赖于待编排虚拟机z1的IP地址。
[0041] 如图1-1所示,虚拟机编排装置(英文:VM Orchestrator)u可以解析该编排模板,经过对编排模板的解析,虚拟机编排装置u可以确定待编排虚拟机的创建顺序为z1-y1-x1(被依赖的待编排虚拟机优先创建),并获取待编排虚拟机x1、y1和z1的配置参数。而后虚拟机编排装置u可以基于对编排模板的解析结果调用虚拟机调度装置(英文:VM Scheduler)v,虚拟机调度装置v可以根据该解析结果中待编排虚拟机x1、y1和z1的配置参数选择合适的资源(如某一物理服务器等)部署该3个待编排虚拟机x1、y1和z1。虚拟机调度装置v还可以根据选择的合适的资源调用虚拟机创建引擎(英文:Hypervisor)w基于该3个待编排虚拟机x1、y1和z1的配置参数和创建顺序创建对应的虚拟机x2、y2和z2,并在创建的过程中,将虚拟机z2的IP地址配置到虚拟机y2中,将虚拟机y2的IP地址配置到虚拟机x2中。在实际应用中,上文所述的虚拟机编排装置可以为Heat组件,该Heat组件是开源的云计算管理平台项目OpenStack中的虚拟机编排装置,虚拟机调度装置可以为Nova组件、vSphere Server组件等,该Nova组件是上述OpenStack中的虚拟机调度装置,该vSphere Server组件是虚拟化软件平台Vmware中的虚拟机调度装置。
[0042] 需要说明的是,利用编排的方式创建一组容器的方式与上述举例中利用编排的方式创建一组虚拟机的方式同理,所不同的是,利用编排的方式创建一组容器时,需要由容器编排装置(英文:Container Orchestrator)、容器调度装置(英文:Container Scheduler)和容器创建引擎(英文:Container Engine)执行,其中,在实际应用中,该容器编排装置可以为Magnum组件,该Magnum组件是开源的云计算管理平台项目OpenStack中的容器编排装置,容器调度装置可以为基于Linux的容器内核的容器的集群管理调度组件(英文:Kubernates,简称:k8s)、基于Linux的容器内核的容器的集群管理调度组件(英文:Swarm)等。
[0043] 由于容器的创建和虚拟机的创建需要分别由容器编排装置和虚拟机编排装置执行,而容器编排装置和虚拟机编排装置并不兼容,因此,在将应用的节点混合部署于虚拟机和容器上时,技术人员需要编辑多个编排模板,并对创建过程进行人工干预。具体地:
[0044] 以将上述举例中X节点部署于容器上、Y节点部署于虚拟机上、Z节点部署于容器上为例,由于容器编排装置和虚拟机编排装置并不兼容,因此,如图1-2所示,技术人员首先需要针对Z节点编辑一个编排模板1,并通过容器编排装置t解析该编排模板1,调用容器调度装置p和容器创建引擎q创建Z节点对应的容器z3,同时技术人员需要获取容器z3的IP地址,然后技术人员需要针对Y节点编辑一个编排模板2,并通过虚拟机编排装置u解析该编排模板2,调用虚拟机调度装置v和虚拟机创建引擎w创建Y节点对应的虚拟机y3,同时技术人员需要将容器z3的IP地址配置到虚拟机y3中,并获取虚拟机y3的IP地址,再然后技术人员需要针对X节点编辑一个编排模板3,并通过容器编排装置t解析该编排模板3,调用容器调度装置p和容器创建引擎q创建X节点对应的容器x3,同时技术人员需要将虚拟机y3的IP地址配置到容器x3中,至此技术人员才完成了对容器x3、虚拟机y3和容器z3的创建。
[0045] 实际应用中,在将应用的节点混合部署于虚拟机和容器上时,技术人员需要编辑多个编排模板,并对创建过程进行人工干预,这会导致节点部署的效率较低,流程较为复杂。
[0046] 请参考图1-3,图1-3是本发明实施例提供的虚拟资源编排方法所涉及的实施环境,该实施环境包括多个节点A,该多个节点A可以为物理服务器或虚拟机等,在该多个节点A中可以部署有虚拟资源编排装置101、容器调度装置102、虚拟机调度装置103、容器创建引擎104和虚拟机创建引擎105。在实际应用中,如图1-3所示,虚拟资源编排装置101、容器调度装置102、虚拟机调度装置103、容器创建引擎104和虚拟机创建引擎105可以分别单独部署于一个节点中。当然,在实际应用中,两个或两个以上的装置也可以共同部署于同一个节点中,例如,容器调度装置102和虚拟机调度装置103可以部署于同一个节点中,本发明实施例对此不做具体限定。
[0047] 其中,虚拟资源编排装置101可以与容器调度装置102和虚拟机调度装置103进行通信,容器调度装置102可以与容器创建引擎104进行通信,虚拟机调度装置103可以和虚拟机创建引擎105进行通信。
[0048] 容器调度装置102用于根据虚拟资源编排装置101的调用指令所指示的待编排容器的配置参数选择合适的节点(如某一物理服务器)部署该待编排容器,容器调度装置102还用于调用容器创建引擎104根据待编排容器的配置参数在选择的合适的节点上创建对应的容器。
[0049] 虚拟机调度装置103用于根据虚拟资源编排装置101的调用指令所指示的待编排虚拟机的配置参数选择合适的节点(如某一物理服务器)部署该待编排虚拟机,虚拟机调度装置103还用于调用虚拟机创建引擎105根据待编排虚拟机的配置参数在选择的合适的节点上创建对应的虚拟机。
[0050] 请参考图1-4,图1-4是本发明实施例提供的虚拟资源编排装置101的结构框图,如图1-4所示,该虚拟资源编排装置101可以包括:模型解析模块001、指令生成模块002、底层管理模块003和参数数据库004,其中,指令生成模块002能够与底层管理模块003、参数数据库004和模板解析模块001分别进行通信。
[0051] 模板解析模块001用于获取编排模板,并对该编排模板进行解析,以获取该编排模板中包括的待编排虚拟资源的配置参数和关系指示信息等。
[0052] 指令生成模块002用于根据模板解析模块001对编排模板的解析结果生成对容器调度装置的第一调用指令,和/或对虚拟机调度装置的第二调用指令,该第一调用指令可以携带待编排容器的配置参数等,该第二调用指令可以携带待编排虚拟机的配置参数等,从而使容器调度装置基于第一调用指令调用容器创建引擎创建容器,和/或使虚拟机调度装置基于第二调用指令调用虚拟机创建引擎创建虚拟机。
[0053] 指令生成模块002还可以基于模板解析模块001对编排模板的解析结果通过虚拟机调度装置,和/或容器调度装置查询已经创建的虚拟资源中被其他虚拟资源依赖的虚拟资源中的指定参数的参数值。指令生成模块002可以将该指定参数的参数值存储至参数数据库004中。
[0054] 指令生成模块002还可以基于模板解析模块001对编排模板的解析结果生成参数值获取指令,以指示已经创建的虚拟资源中需要依赖于其他虚拟资源的虚拟资源从参数数据库004中获取依赖的指定参数的参数值。
[0055] 底层管理模块003可以与容器调度装置、虚拟机调度装置和已经创建的虚拟资源进行通信,以向该容器调度装置发送指令生成模块002生成的第一调用指令,向虚拟机调度装置发送指令生成模块002生成的第二调用指令,向已经创建的虚拟资源发送指令生成模块002生成的参数值获取指令。
[0056] 请参考图1-5,图1-5是本发明实施例提供的虚拟资源编排装置101的结构框图,如图1-5所示,该虚拟资源编排装置101可以包括:处理器a、存储器b、总线c和至少一个通信接口d。
[0057] 处理器a可以是通用中央处理器(英文:central processing unit,简称:CPU)、微处理器、特定应用集成电路(英文:application-specific integrated circuit,简称:ASIC)、或用于控制实现本申请方案的程序执行的集成电路。
[0058] 存储器b可以是只读存储器(英文:read-only memory,简称:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、可存储信息和指令的动态存储设备、电可擦可编程只读存储器(英文:electrically erasable programmable read-only memory,简称EEPROM)、只读光盘(英文:compact disc read-only memory,简称:CD-ROM)、磁盘存储介质等。
[0059] 其中,存储器b用于存储执行本申请方案的应用程序代码,也即是存储器b存储有图1-4中模板解析模块001和指令生成模块002对应的逻辑代码,并由处理器a来执行上述逻辑代码以实现本申请的技术方案。此外,存储器b中还存储有参数数据库004中存储的数据。
[0060] 总线c可以为一个通路,用于在上述处理器a、存储器b和至少一个通信接口d之间传送信息。
[0061] 通信接口d可以为收发器等装置,用于与其他装置(如虚拟机调度装置、容器调度装置等)或通信网络通信,如以太网,无线接入网(英文:radio access network,简称:RAN),无线局域网(英文:wireless local area networks,简称:WLAN)等。
[0062] 图2-1是本发明实施例提供一种虚拟资源编排方法的流程图,该虚拟资源编排方法应用于如图1-3所示的虚拟资源编排装置101中,如图2-1所示,该虚拟资源编排方法包括以下步骤:
[0063] 步骤201、虚拟资源编排装置获取编排模板。
[0064] 需要说明的是,上述编排模板可以包括至少两个待编排虚拟资源的配置参数和关系指示信息。其中,待编排虚拟资源可以为虚拟机或容器,配置参数可以包括CPU个数、内存大小、镜像类型、调度装置的类型等,上述至少两个待编排虚拟资源可以包括存在依赖关系的第一待编排虚拟资源和第二待编排虚拟资源,其中,第一待编排虚拟资源被第二待编排虚拟资源所依赖,这里的“依赖”指的是第一待编排虚拟资源和第二待编排虚拟资源之间的语义连接关系,具体地,第一待编排虚拟资源被第二待编排虚拟资源所依赖,指的是第二待编排虚拟资源中的目标应用需要配置第一待编排虚拟资源中的指定参数的参数值。
[0065] 以上述举例中X节点部署于容器上、Y节点部署于虚拟机上、Z节点部署于容器上,且,Y节点依赖于Z节点的IP地址,X节点依赖于Y节点的IP地址为例。在这种情况下,编排模板中可以包括三个待编排虚拟资源x4(对应于节点X)、y4(对应于节点Y)和z4(对应于节点Z)的配置参数,其中,x4可以为容器,y4可以为虚拟机,z4可以为容器。由于X节点需要依赖于Y节点,则在上述编排模板中,x4也需要依赖于y4,因此,x4在编排模板中为第二待编排虚拟资源。由于Y节点一方面需要依赖于Z节点,另一方面又被X节点依赖,因此,在编排模板中,y4也一方面依赖于z4,另一方面又被x4依赖,因此,y4在编排模板中既为第一待编排虚拟资源,又为第二待编排虚拟资源。由于Z节点需要被Y节点依赖,因此,在编排模板中,z4也被y4依赖,因此,z4在编排模板中为第一待编排虚拟资源。如表1所示为编排模板中待编排虚拟资源x4、y4和z4的资源类型,依赖关系以及资源种类。
[0066] 表1
[0067]
[0068] 此外,在编排模板中,该第一待编排虚拟资源的关系指示信息用于指示第一待编排虚拟资源的指定参数被依赖,该第二待编排虚拟资源的关系指示信息用于指示第二待编排虚拟资源依赖于第一待编排虚拟资源的指定参数,也即是,第一待编排虚拟资源的关系指示信息和第二待编排虚拟资源的关系指示信息可以联合指示该第二待编排虚拟资源依赖于该第一待编排虚拟资源的指定参数。
[0069] 以上述举例中X节点部署于容器上、Y节点部署于虚拟机上、Z节点部署于容器上,且,指定参数为IP地址,即Y节点依赖于Z节点的IP地址,X节点依赖于Y节点的IP地址为例。在这种情况下,编排模板中z4的关系指示信息可以指示z4的IP地址被依赖,y4的关系指示信息可以指示y4的IP地址被依赖,同时y4的关系指示信息也可以指示y4依赖于z4的IP地址,x4的关系指示信息可以指示x4依赖于y4的IP地址。
[0070] 在实际应用中,上述举例中的编排模板可以为:
[0071] parameter:
[0072] param1:{type,value}
[0073] param2:{type,value}
[0074] param3:{type,value}
[0075] Resource:
[0076] master_node://y4
[0077] type:vm//y4为虚拟机
[0078] properties:param1//资源属性,可以从parameter中获取,该资源属性可以为物理服务器的名称、IP地址、访问的秘钥、用户名和密码信息、挂载磁盘配置信息等[0079] engine-type:nova//虚拟机调度装置的类型
[0080] flavor:xxx//虚拟机规格
[0081] image:xxx//镜像类型
[0082] meta-data:
[0083] slave-ip:{slave-ip}//关系指示信息,用于指示y4依赖于z4的IP地址[0084] output:
[0085] master-ip:{this.ip}//关系指示信息,用于指示y4的IP地址被依赖[0086] slave_node://z4
[0087] type:docker//z4为容器
[0088] properties:param2//资源属性,可以从parameter中获取
[0089] engine-type:magnum//容器调度装置的类型
[0090] flavor:xxx//容器规格
[0091] image:xxx//镜像类型
[0092] output:
[0093] slave-ip:{this.ip}//关系指示信息,用于指示z4的IP地址被依赖[0094] client_node://x4
[0095] type:docker//x4为容器
[0096] properties:param3//资源属性,可以从parameter中获取
[0097] engine-type:magnum//容器调度装置的类型
[0098] flavor:xxx//容器规格
[0099] image:xxx//镜像类型
[0100] meta-data:
[0101] master-ip:{master-ip}//关系指示信息,用于指示x4依赖于y4的IP地址[0102] 需要说明的是,上述编排模板仅仅是示例性的,其并不能限制本申请。
[0103] 步骤202、虚拟资源编排装置基于该第一待编排虚拟资源的配置参数创建对应的第一虚拟资源。
[0104] 在实际应用中,虚拟资源编排装置可以解析上述编排模板,当该第一待编排虚拟资源为虚拟机时,虚拟资源编排装置可以通过虚拟机调度装置调用虚拟机创建引擎,基于第一待编排虚拟资源的配置参数创建第一待编排虚拟资源对应的虚拟机;当该第一待编排虚拟资源为容器时,虚拟资源编排装置可以通过容器调度装置调用容器创建引擎,基于第一待编排虚拟资源的配置参数创建该第一待编排虚拟资源对应的容器。
[0105] 其中,虚拟资源编排装置通过虚拟机调度装置调用虚拟机创建引擎创建虚拟机的方式与上文所述的虚拟机编排装置通过虚拟机调度装置调用虚拟机创建引擎创建虚拟机的方式同理,本发明实施例在此不再赘述。虚拟资源编排装置通过容器调度装置调用容器创建引擎创建容器的方式与上文所述的虚拟机编排装置通过虚拟机调度装置调用虚拟机创建引擎创建虚拟机的方式也同理,本发明实施例在此也不再赘述。
[0106] 步骤203、虚拟资源编排装置基于该第二待编排虚拟资源的配置参数创建对应的第二虚拟资源。
[0107] 在实际应用中,虚拟资源编排装置基于该第二待编排虚拟资源的配置参数创建对应的第二虚拟资源的方式与步骤202所述的方式同理,本发明实施例在此不再赘述。
[0108] 需要说明的是,在实际应用中,虚拟资源编排装置可以并行执行上述步骤202和203,本发明实施例对此不作具体限定。
[0109] 以上述举例中示出的编排模板为例,如图2-2所示,虚拟资源编排装置可以解析该编排模板,从而获取x4、y4和z4的配置参数。基于上述解析结果,虚拟资源编排装置可以通过容器调度装置p调用容器创建引擎q,基于x4和z4的配置参数创建容器x5(对应于第二待编排虚拟资源x4)和容器z5(对应于第一待编排虚拟资源z4),虚拟资源编排装置还可以通过虚拟机调度装置v调用虚拟机创建引擎w,基于y4的配置参数创建虚拟机y5(对应于第一待编排虚拟资源和第二待编排虚拟资源y4)。
[0110] 步骤204、虚拟资源编排装置基于该第一待编排虚拟资源的关系指示信息和该第二待编排虚拟资源的关系指示信息,将该第一虚拟资源中的指定参数的参数值传输至该第二虚拟资源中。
[0111] 在实际应用中,创建了第一虚拟资源和第二虚拟资源后,由于第二虚拟资源的目标应用还没有配置指定参数的参数值,因此,第二虚拟资源中的目标应用仍然无法正常运行。例如,在上述举例中,创建了x5、y5和z5后,y5还没有获取自身依赖的z5的IP地址,更没有将z5的IP地址配置到自身的目标应用中,因此,y5中的目标应用无法正常运行,同理地,x5也还没有获取自身依赖的y5的IP地址,更没有将y5的IP地址配置到自身的目标应用中,因此,x5中的目标应用无法正常运行。为了保证第二虚拟资源中的目标应用能够正常运行,本发明实施例需要在创建了第一虚拟资源和第二虚拟资源之后,将第一虚拟资源中的指定参数的参数值传输至第二虚拟资源中。
[0112] 对于第一虚拟资源而言,虚拟资源编排装置需要基于第一待编排虚拟资源的关系指示信息,获取第一虚拟资源的目标参数的参数值,具体地:虚拟资源编排装置可以在第一虚拟资源为虚拟机时,基于第一待编排虚拟资源的关系指示信息,通过虚拟机调度装置查询第一虚拟资源的指定参数的参数值,在第一虚拟资源为容器时,基于第一待编排虚拟资源的关系指示信息,通过容器调度装置查询第一虚拟资源的指定参数的参数值。而后,虚拟资源编排装置可以将查询到的指定参数的参数值存储于参数数据库中。当然,在实际应用中,虚拟资源编排装置还可以通过其他方法获取第一虚拟资源的目标参数的参数值,本发明实施例对此不做具体限定。
[0113] 对于第二虚拟资源而言,虚拟资源编排装置需要基于该第二待编排虚拟资源的关系指示信息,向第二虚拟资源提供指定参数的参数值,具体地:虚拟资源编排装置可以向该第二虚拟资源发送参数值获取指令,该参数值获取指令携带该第二待编排虚拟资源的关系指示信息,该参数值获取指令用于指示该第二虚拟资源从该参数数据库中获取该第二待编排虚拟资源的关系指示信息所指示的指定参数的参数值,第二虚拟资源在接收到该参数值获取指令后,可以周期性地查询上述参数数据库,直至从上述参数数据库中获取到指定参数的参数值为止。
[0114] 例如,如图2-3所示,在上述举例中,虚拟资源编排装置可以通过虚拟机调度装置查询y5的IP地址的值,通过容器调度装置查询z5的IP地址的值,虚拟资源编排装置查询到的y5的IP地址的值可以为1.80.145.216,虚拟资源编排装置查询到的z5的IP地址的值可以为1.80.145.215。虚拟资源编排装置可以将查询到的y5的IP地址的值和z5的IP地址的值存储于参数数据库中。此外,虚拟资源编排装置还可以向x5和y5发送参数值获取指令,发送给x5的参数值获取指令可以携带用于指示y5的IP地址的指示信息,发送给y5的参数值获取指令可以携带用于指示z5的IP地址的指示信息,x5接收到参数值获取指令后,可以周期性地查询上述参数数据库,直至从上述参数数据库中获取到y5的IP地址的值,也即是1.80.145.216,y5接收到参数值获取指令后,可以周期性地查询上述参数数据库,直至从上述参数数据库中获取到z5的IP地址的值,也即是1.80.145.215。
[0115] 需要说明的是,第二待编排虚拟资源的配置参数可以包括:参数配置信息,该参数配置信息用于指示第二虚拟资源在获取指定参数的参数值后,将该指定参数的参数值配置于该第二虚拟资源的目标应用中。此外,该第二待编排虚拟资源的配置参数还包括:启动信息,该启动信息用于指示第二虚拟资源在将该指定参数的参数值配置于该第二虚拟资源的目标应用中后,启动第二虚拟资源中的目标应用。
[0116] 通过在配置参数中设置参数配置信息和启动信息,使得基于该配置参数创建的第二虚拟资源能够在获取了指定参数的参数值后将该指定参数的参数值配置于目标应用中,并在配置完成后启动该第二虚拟资源中的目标应用,从而保证了第二虚拟资源中目标应用的正常运行。
[0117] 需要说明的是,本发明实施例提供的上述虚拟资源的编排方法不仅能够实现虚拟机和容器的混合编排,也能够实现对一组虚拟机或一组容器的单独编排,其实现方式与虚拟机和容器的混合编排的实现方式同理,本发明实施例在此不再赘述。
[0118] 综上所述,本发明实施例提供的虚拟资源的编排方法,通过获取编排模板中存在依赖关系的第一待编排虚拟资源和第二待编排虚拟资源的配置参数和关系指示信息,其中,第一待编排虚拟资源和第二待编排虚拟资源均可以为虚拟机或容器,使得虚拟资源编排装置可以基于第一待编排虚拟资源和第二待编排虚拟资源的配置参数创建对应的第一虚拟资源和第二虚拟资源,因此,技术人员仅编辑一个编排模板就能够实现虚拟机和容器的混合创建,从而提高了节点部署的效率,简化了节点部署的流程。此外,第一待编排虚拟资源的关系指示信息用于指示第一待编排虚拟资源的指定参数被依赖,第二待编排虚拟资源的关系指示信息用于指示第二待编排虚拟资源依赖于第一待编排虚拟资源的指定参数,也即是,第一待编排虚拟资源的关系指示信息和第二待编排虚拟资源的关系指示信息可以联合指示第二待编排虚拟资源依赖于第一待编排虚拟资源的指定参数,虚拟资源编排装置在创建了第一虚拟资源和第二虚拟资源后,可以基于第一待编排虚拟资源的关系指示信息和第二待编排虚拟资源的关系指示信息,将第一虚拟资源中的指定参数的参数值传输至第二虚拟资源中,从而使得技术人员不需要根据虚拟机和容器的依赖关系对虚拟机和容器的创建过程进行人工干预,从而提高了节点部署的效率,简化了节点部署的流程。
[0119] 图3是本发明实施例提供一种虚拟资源编排装置300的结构框图,如图3所示,该虚拟资源编排装置300包括:获取模块301、创建模块302和参数值传输模块303。
[0120] 该获取模块301,用于执行上述实施例中步骤201的技术过程。
[0121] 该创建模块302,用于执行上述实施例中步骤202和步骤203的技术过程。
[0122] 该参数值传输模块303,用于执行上述实施例中步骤204的技术过程。
[0123] 综上所述,本发明实施例提供的虚拟资源编排装置,通过获取编排模板中存在依赖关系的第一待编排虚拟资源和第二待编排虚拟资源的配置参数和关系指示信息,其中,第一待编排虚拟资源和第二待编排虚拟资源均可以为虚拟机或容器,使得虚拟资源编排装置可以基于第一待编排虚拟资源和第二待编排虚拟资源的配置参数创建对应的第一虚拟资源和第二虚拟资源,因此,技术人员仅编辑一个编排模板就能够实现虚拟机和容器的混合创建,从而提高了节点部署的效率,简化了节点部署的流程。此外,第一待编排虚拟资源的关系指示信息用于指示第一待编排虚拟资源的指定参数被依赖,第二待编排虚拟资源的关系指示信息用于指示第二待编排虚拟资源依赖于第一待编排虚拟资源的指定参数,也即是,第一待编排虚拟资源的关系指示信息和第二待编排虚拟资源的关系指示信息可以联合指示第二待编排虚拟资源依赖于第一待编排虚拟资源的指定参数,虚拟资源编排装置在创建了第一虚拟资源和第二虚拟资源后,可以基于第一待编排虚拟资源的关系指示信息和第二待编排虚拟资源的关系指示信息,将第一虚拟资源中的指定参数的参数值传输至第二虚拟资源中,从而使得技术人员不需要根据虚拟机和容器的依赖关系对虚拟机和容器的创建过程进行人工干预,从而提高了节点部署的效率,简化了节点部署的流程。
[0124] 需要说明的是:上述实施例提供的虚拟资源编排装置在编排虚拟资源时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟资源编排装置与虚拟资源编排方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0125] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0126] 以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。