CN102479096A - 虚拟机部署规划方法及相关设备 - Google Patents
虚拟机部署规划方法及相关设备 Download PDFInfo
- Publication number
- CN102479096A CN102479096A CN2010105770476A CN201010577047A CN102479096A CN 102479096 A CN102479096 A CN 102479096A CN 2010105770476 A CN2010105770476 A CN 2010105770476A CN 201010577047 A CN201010577047 A CN 201010577047A CN 102479096 A CN102479096 A CN 102479096A
- Authority
- CN
- China
- Prior art keywords
- activation
- virtual machine
- item
- sequence
- activates
- 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
Links
Images
Abstract
本发明提供了虚拟机部署规划方法及相关设备。虚拟机部署规划方法包括:接收多个虚拟机中的激活项之间的依赖关系和激活项描述参数;根据所述激活项之间的依赖关系优化虚拟机中的激活项的激活顺序;及根据优化后的激活顺序和激活项描述参数生成激活逻辑文件。本发明的一个实施例解决的一个技术问题是使没有熟练掌握激活逻辑文件的编写的用户也能完成虚拟机的建立,提高用户友好度。
Description
技术领域
本发明涉及虚拟机技术。特别地,本发明涉及虚拟机部署规划方法及相关设备。
背景技术
计算机虚拟机技术目前得到了日益广泛的应用,尤其在分布式环境中。将对应于一个虚拟解决方案的虚拟应用(virtual appliance)分成若干虚拟机(virtual machine),即虚拟镜像(virtual image)。各虚拟机可以位于同一物理实体(如同一计算机)中,也可以位于不同物理实体中。
图1示出了现有技术中的处理设备(如计算机)的示意框图。处理设备1包括虚拟机部署与激活工具11、虚拟机12和相关激活参数简档13。虚拟机部署与激活工具11用于建立、部署虚拟机12,并对虚拟机12的激活进行协调。虚拟机12包括激活引擎121、激活项(激活脚本)122和激活逻辑文件123。
激活项122即为虚拟机12中必须执行的任务编写的脚本。例如,在某虚拟机上打算部署web应用服务器、网络和数据库,则可以为该虚拟机编写ConfigWAS、ConfigNet和ConfigDB三个脚本。
图3示出了现有技术中激活逻辑文件123的内容,其包含了各激活项的描述参数以及各激活项之间的依赖关系。各激活项的描述参数与激活参数简档13中保存的激活参数不同。激活参数是指激活项激活时需要的参数,如激活网络需要的网络IP地址的具体值。各激活项的描述参数描述需要哪些激活参数,如描述“需要网络IP地址”,但不涉及具体的值。
关于各激活项之间的依赖关系,作为一个示例,如图8A所示,部署在虚拟机B上的激活项B2的激活依赖于部署在虚拟机C上的激活项C2和虚拟机B上的激活项B3的激活;部署在虚拟机A上的激活项A2和A3的激活又依赖于部署在虚拟机B上的激活项B2的激活。
激活参数简档13是存放各激活项激活时所需要的具体激活参数值的文档。
激活引擎121用于激活虚拟机12中的各激活项122。它读取激活参数简档13中的具体激活参数,并在读到相关激活参数时调用与该激活参数相关的激活项122。激活逻辑文件123中各激活项的描述参数是描述激活项的激活需要哪些激活参数的。它为激活参数简档13中需保存哪些激活参数的具体值提供了依据。
图2示出了虚拟机12在物理实体上实例化之前必须经历的过程,其包括建立阶段、部署阶段和激活阶段。
建立阶段是将虚拟机包括的激活引擎121、激活项122、激活逻辑文件123安装到物体实体的过程。在步骤S1,镜像建立工具111将激活引擎121安装到物理实体上。在步骤S2,镜像建立工具111将用户编写好的激活项122安装到物理实体上。在步骤S3,开发者将激活项描述参数和激活项之间的依赖关系编写在激活逻辑文件中。如图1所示,在一个实例中,步骤S1可以由激活引擎安装器1111执行,步骤S2可以由激活项安装器1112执行,而步骤S3是开发者人为执行的,缺少一种自动执行的工具。
经过虚拟机建立阶段,虚拟机12的基本构架已经建立起来。但是,激活项122的激活还需要具体激活参数,其是通过虚拟机部署阶段获得的。在步骤S4,部署工具112生成激活参数收集页用于用户部署。在步骤S5,当用户输入激活参数后,部署工具112接收用户输入的激活参数。在步骤S6,部署工具112生成包含用户输入的激活参数的激活参数简档13。激活参数简档13中的激活参数配合激活项122使用,才能完成激活项122的激活。如图1所示,在一个实例中,步骤S4可以由激活参数收集页生成器1121执行,步骤S5可以由激活参数接收器1122执行,而步骤S6可以由激活参数简档生成器1123执行。
激活阶段是为虚拟机定制所需的操作系统、网络、应用资源等的阶段。在建立阶段建立的激活项只有在激活阶段结合激活参数简档13中的激活参数激活才能被实例化。由于激活逻辑文件123保存了各激活项之间的依赖关系,激活引擎121在调用激活项122的时候要参照该依赖关系。激活引擎在不违背该依赖关系的前提下随机选择各虚拟机内部各激活项122的激活顺序,但该顺序不一定是最优的。现有技术中缺少一种自动优化各虚拟机内部各激活项122的激活顺序的技术。
激活协调器113负责在虚拟机中的某一激活项已经被激活后,通知其它虚拟机中依赖于该激活项的激活项开始激活。如图8A所示,部署在虚拟机B上的激活项B1的激活依赖于部署在虚拟机C上的激活项C2的激活。因此,虚拟机C中的激活引擎激活了激活项C2后,其要通知激活协调器113可以激活依赖于激活项C2的激活的虚拟机B中的激活项B1。激活协调器113通知虚拟机B中的激活引擎激活激活项B1。
现有技术中存在的一个问题是在步骤S3中,是由开发者将激活项描述参数和激活项之间的依赖关系编写在激活逻辑文件中的。也就是说,用户需要熟练掌握激活逻辑文件的编写,这对于某些缺乏经验的用户来说是有难度的。
另外,由于在现有技术中,激活引擎是在不违背激活逻辑文件中的各激活项的依赖关系的前提下随机选择各虚拟机内部各激活项122的激活顺序的,因此,该顺序不一定是最优的。现有技术中缺少一种自动优化各虚拟机内部各激活项的激活顺序的方式。
发明内容
本发明的一个实施例的一个目的是使没有熟练掌握激活逻辑文件的编写的用户也能完成虚拟机的建立,提高用户友好度。
根据本发明的第一方面,本发明提供了一种虚拟机部署规划方法,所述方法包括:接收多个虚拟机中的激活项之间的依赖关系和激活项描述参数;根据所述激活项之间的依赖关系优化所述虚拟机中的激活项的激活顺序;及根据优化后的激活顺序和激活项描述参数生成激活逻辑文件。
根据本发明的第二方面,本发明提供了一种虚拟机部署规划器,包括:接收装置,接收多个虚拟机中的激活项之间的依赖关系和激活项描述参数;激活顺序优化装置,根据所述激活项之间的依赖关系优化所述虚拟机中的激活项的激活顺序;及激活逻辑文件生成装置,根据优化后的激活顺序和激活项描述参数生成激活逻辑文件。
根据本发明的第三方面,本发明提供了一种镜像建立工具,包括:激活引擎安装器,在虚拟机中安装激活引擎;激活项安装器,在虚拟机中安装激活项;根据本发明的第二方面的虚拟机部署规划器。
根据本发明的第四方面,本发明提供了一种虚拟机部署与激活工具,包括:根据本发明的第三方面的镜像建立工具;部署工具,接收用于激活项的激活参数,并将激活参数保存在激活参数简档中;激活协调器,响应于接收到虚拟机的某一激活项的激活完毕通知消息,通知其它虚拟机中依赖于该激活项的激活项开始激活。
根据本发明的第五方面,本发明提供了一种处理设备,包括:根据本发明的第四方面的虚拟机部署与激活工具;虚拟机,包括由激活引擎安装器安装的激活引擎、由激活项安装器安装的激活项、由虚拟机部署规划器生成的激活逻辑文件;耦接于虚拟机的激活参数简档,其中激活参数简档中的激活参数由部署工具保存。激活引擎在某一激活项激活完毕的情况下,发通知消息到激活协调器。
由本发明的一个实施例取得的一个有益效果是,使没有熟练掌握激活逻辑文件的编写的用户也能完成虚拟机的建立,从而提高了用户友好度。
附图说明
本申请中所参考的附图只用于示例本发明的典型实施例,不应该认为是对本发明范围的限制。
图1示出了现有技术中的处理设备(如计算机)的结构框图。
图2示出了现有技术中虚拟机在物理实体上实例化之前必须经历的过程,其与图1中的结构框图大致对应。
图3示出了现有技术中激活逻辑文件的内容。
图4示出了根据本发明的一个实施例的处理设备的结构框图。
图5示出了根据本发明的一个实施例虚拟机在物理实体上实例化之前必须经历的过程,其与图4中的结构框图大致对应。
图6示出了根据本发明的一个实施例的激活逻辑文件的内容。
图7示出了根据本发明的一个实施例的虚拟机部署规划方法流程图。
图8A示出了虚拟机中各激活项之间的依赖关系的一个实例。
图8B示出了虚拟机中各激活项之间的依赖关系的另一个实例。
图9A是对应于图8A的实例的虚拟机整体依赖关系树。
图9B是对应于图8B的实例的虚拟机整体依赖关系树。
图10是根据本发明的一个实施例的虚拟机部署规划器的结构框图。
具体实施方式
下列讨论中,提供大量具体的细节以帮助彻底了解本发明。然而,很显然对于本领域技术人员来说,即使没有这些具体细节,并不影响对本发明的理解。并且应该认识到,使用如下的任何具体术语仅仅是为了方便描述,因此,本发明不应当局限于只用在这样的术语所表示和/或暗示的任何特定应用中。
先通过图4-6简要描述本发明的一个实施例的工作原理。
图4与图1的区别在于在镜像建立工具111中多了一个虚拟机部署规划器1113,用于自动编写激活逻辑文件123,使没有熟练掌握激活逻辑文件的编写的用户也能完成虚拟机的建立,从而提高了用户友好度。图4的其它部分与图1基本类似。
图5与图2的区别在于用步骤S3’取代了步骤S3。在步骤S3’,虚拟机部署规划器1113生成包含激活项描述参数和由激活项之间的依赖关系优化出的各虚拟机中的激活项的激活顺序的激活逻辑文件。在现有技术中,激活引擎是在不违背激活逻辑文件中的各激活项的依赖关系的前提下随机选择各虚拟机内部各激活项的激活顺序的。因此,该顺序不一定是优化的。然而,根据本发明的一个实施例,实现了各虚拟机内部各激活项的激活顺序的自动优化。图5的其它部分与图2基本类似。
图6与图3的区别在于,根据本发明的一个实施例的激活逻辑文件123除了包含各激活项的描述参数1231以及各激活项之间的依赖关系1232之外,还包含虚拟机部署规划器1113确定出的各虚拟机内部各激活项的优化激活顺序。例如,A2>A3>A1表示在虚拟机A中,先激活激活项A2,再激活激活项A3,最后激活激活项A1。这样,激活引擎121在激活虚拟机A上的激活项时,就不是随机地选择一个顺序,而是按照优化激活顺序A2>A3>A1去执行。
图7示出了根据本发明的一个实施例的虚拟机部署规划方法流程图。
在步骤S701,接收多个虚拟机中的激活项之间的依赖关系和激活项描述参数。一种实现方式是,提供使用户能够输入多个虚拟机中的激活项之间的依赖关系和激活项描述参数的界面。然后,用户无需了解激活逻辑文件123的编写,只需在界面上输入多个虚拟机中的激活项之间的依赖关系和激活项描述参数即可,大大简化了用户的操作并减少了用户必备的基本技能。当然,这种接收也可以通过其它任何本领域公知的接收手段来实现。
在步骤S702,根据所述激活项之间的依赖关系优化虚拟机中的激活项的激活顺序。作为一种实现方式,其可以通过以下过程实现,但不局限于通过以下过程实现。
首先,确定虚拟机的初始规划顺序。
在一种实现方式中,如果某一虚拟机中的激活项的激活依赖于另一虚拟机中的激活项的激活的数量大于所述另一虚拟机中的激活项的激活依赖于本虚拟机中的激活项的激活的数量,则确定本虚拟机的激活整体依赖于所述另一虚拟机的激活,反之则确定所述另一虚拟机的激活整体依赖于本虚拟机的激活。然后,按照确定出的各虚拟机的激活依赖关系画整体依赖关系树。按照整体依赖关系树中最不被依赖的虚拟机到最被依赖的虚拟机的顺序确定所述初始规划顺序。任选处于平等依赖地位的虚拟机的先后顺序。
作为一个实例,如图8A所示,虚拟机A中的激活项A2、A3的激活依赖于虚拟机B中的激活项B2的激活,虚拟机B中的激活项B1、B2的激活依赖于虚拟机C中的激活项C2的激活,而虚拟机B中的激活项B3的激活依赖于虚拟机C中的激活项C3的激活。由于虚拟机A中的激活项的激活依赖于虚拟机B中的激活项的激活的数量为2,而虚拟机B中的激活项的激活依赖于虚拟机A中的激活项的激活的数量为0,因此确定虚拟机A的激活整体依赖于虚拟机B的激活。同理,虚拟机B的激活整体依赖于虚拟机C的激活。因此,可以画出如图9A的整体依赖关系树。在图9A的整体依赖关系树中,处于最底层的、最不被依赖的虚拟机是虚拟机A,处于最高层的、最被依赖的虚拟机是虚拟机C。最终确定出的初始规划顺序是A>B>C。
作为另一个实例,如图8B所示,虚拟机A中的激活项A2、A3的激活依赖于虚拟机B中的激活项B2的激活,但虚拟机B中的激活项B1的激活依赖于虚拟机A中的激活项A2的激活。虚拟机B中的激活项B1、B3的激活分别依赖于虚拟机C中的激活项C2、C3的激活,而虚拟机C中的激活项C1的激活依赖于虚拟机B中的激活项B2的激活。虚拟机D中的激活项D3的激活依赖于虚拟机B中的激活项B1的激活。由于虚拟机A中的激活项的激活依赖于虚拟机B中的激活项的激活的数量为2,而虚拟机B中的激活项的激活依赖于虚拟机A中的激活项的激活的数量为1,因此确定虚拟机A的激活整体依赖于虚拟机B的激活。同理,虚拟机B的激活整体依赖于虚拟机C的激活,而虚拟机D的激活整体依赖于虚拟机B的激活。因此,可以画出如图9B的整体依赖关系树。在图9B的整体依赖关系树中,处于最底层的、最不被依赖的虚拟机是虚拟机A、D,因此在初始规划顺序中可以任选其中一个排在另一个的前面。处于最高层的、最被依赖的虚拟机是虚拟机C。最终确定出的初始规划顺序是A>D>B>C。
上面只是示例了确定虚拟机的初始规划顺序的一种实现方式,但本发明不限于该实现方式。确定虚拟机的初始规划顺序的其它方式对于受益于本公开内容的本领域技术人员是显然的。
然后,按照虚拟机的初始规划顺序,针对每个虚拟机优化虚拟机内部的各激活项的激活顺序。
在一种实现方式中,针对选择的虚拟机,列出不违背所述依赖关系的所有可能的各激活项的其它激活顺序。针对每一可能的各激活项的激活顺序,在假定其它虚拟机内部的已确定出的激活项的激活顺序不变的前提下,按照各激活项的部署仿真参数找出最优总部署仿真参数。将对应于最优总部署仿真参数的各激活项的激活顺序确定为该虚拟机的激活项的优化激活顺序。
仍以图8A的实例为例。针对图8A的实例,最终确定出的初始规划顺序是A>B>C。针对虚拟机A、B、C,分别随机确定虚拟机内部各激活项的激活顺序是A3>A2>A1;B3>B1>B2;C1>C2>C3。
先选择虚拟机A。针对虚拟机A,不违背依赖关系的所有可能的激活项的其它激活顺序为A2>A3>A1,A2>A1>A3。假设B3>B1>B2和C1>C2>C3不变。以激活时间为部署仿真参数。例如,图8A中的A1(3-5)表示激活项A1的激活时间为3-5分钟。通过仿真,最终得到:在A2>A3>A1、B3>B1>B2、C1>C2>C3的情况下虚拟机A、B、C的总激活时间为56.55分钟。在A3>A2>A1、B3>B1>B2、C1>C2>C3的情况下虚拟机A、B、C的总激活时间为56.57分钟。在A2>A1>A3、B3>B1>B2、C1>C2>C3的情况下虚拟机A、B、C的总激活时间为56.58分钟。因此,确定A2>A3>A1为虚拟机A的激活项的优化激活顺序。
再选择虚拟机B。针对虚拟机B,不违背依赖关系的所有可能的激活项的其它激活顺序为B1>B3>B2、B3>B2>B1。假设A2>A3>A1和C1>C2>C3不变。通过仿真,最终得到:在A2>A3>A1、B3>B1>B2、C1>C2>C3的情况下虚拟机A、B、C的总激活时间为56.55分钟;在A2>A3>A1、B1>B3>B2、C1>C2>C3的情况下虚拟机A、B、C的总激活时间为56.57分钟。在A2>A3>A1、B3>B2>B1、C1>C2>C3的情况下虚拟机A、B、C的总激活时间为54.48分钟。因此,确定B3>B2>B1为虚拟机B的激活项的优化激活顺序。
再选择虚拟机C。针对虚拟机C,不违背依赖关系的所有可能的激活项的其它激活顺序为C1>C3>C2、C2>C1>C3、C2>C3>C1、C3>C1>C2、C3>C2>C1。假设A2>A3>A1和B3>B2>B1不变。通过仿真,最终得到:在A2>A3>A1、B3>B2>B1、C1>C2>C3的情况下虚拟机A、B、C的总激活时间为54.55分钟。在A2>A3>A1、B3>B2>B1、C1>C3>C2的情况下虚拟机A、B、C的总激活时间为45.44分钟。在A2>A3>A1、B3>B2>B1、C2>C1>C3的情况下虚拟机A、B、C的总激活时间为54.48分钟。在A2>A3>A1、B3>B2>B1、C2>C3>C1的情况下虚拟机A、B、C的总激活时间为52.39分钟。在A2>A3>A1、B3>B2>B1、C3>C1>C2的情况下虚拟机A、B、C的总激活时间为43.55分钟。在A2>A3>A1、B3>B2>B1、C3>C2>C1的情况下虚拟机A、B、C的总激活时间为40.57分钟。因此,C3>C2>C1是虚拟机C的激活项的优化激活顺序。
上面只是示例了逐一确定虚拟机内部的各激活项的优化激活顺序的一种实现方式。但本发明不限于该实现方式。逐一确定虚拟机内部的各激活项的优化激活顺序的其它实现方式对于受益于本公开内容的本领域技术人员是显然的。例如,可以针对选择的虚拟机,不考虑依赖关系列出所有激活项的可能激活顺序。然而,违背依赖关系的激活顺序在仿真中无法产生仿真结果而被自然淘汰掉。
接着,重复优化优化后的各激活项的激活顺序。重复优化的作用在于:由于在上述优化过程中,在假定其它虚拟机内部的已确定出的激活项的激活顺序不变的前提下进行优化,但其它虚拟机内部的激活项的激活顺序是随机确定的,并不是最优的,因此影响最终的优化结果。因此,优选地,进行重复优化。
在一种实现方案中,再回到初始规划顺序中的第一个虚拟机。然后,执行列出所有可能的各激活项的其它激活顺序到优化该虚拟机的激活项的激活顺序的过程,并判断该虚拟机的优化后的各激活项的激活顺序是否变化。接着,选择初始规划顺序中的下一个虚拟机,执行列出所有可能的各激活项的其它激活顺序到优化该虚拟机的激活项的激活顺序的过程,并判断该虚拟机的优化后的各激活项的激活顺序是否变化,直到判断出激活顺序未变化的次数达到n次,n代表虚拟机总数。
仍以图8A的实例为例。先返回虚拟机A。执行列出所有可能的各激活项的其它激活顺序到优化该虚拟机的激活项的激活顺序的过程。最后仿真结果表明,A2>A3>A1仍然是最优激活顺序。然后,对于虚拟机B,重复类似的过程。最后仿真结果表明,B3>B2>B1仍然是最优激活顺序。对于虚拟机C,仍然重复类似的过程。最后仿真结果表明,C3>C2>C1仍然是最优激活顺序。由于优化激活顺序已经3次没有变化,A2>A3>A1、B3>B2>B1、C3>C2>C1为重复优化后的优化激活顺序。
在另一种实现方案中,不是根据优化后的激活顺序改变的次数来判断是否中止重复优化的,而是简单地再回到初始规划顺序中的第一个虚拟机,从第一个虚拟机到最后一个虚拟机按照前述的过程再重复执行一遍优化内部激活项的激活顺序的过程。
当然,重复优化各激活项的激活顺序不仅限于以上两种方式。其它方式对于收益于上述两种方式的本领域技术人员也是显然的。
作为一种实现方式,部署仿真参数可以是事先存储的。
作为另一种实现方式,部署仿真参数可以是用户输入的。本发明接收用户输入的部署仿真参数用于仿真,以便确定优化激活顺序。
上面结合激活时间描述了确定优化激活顺序的过程。但本领域技术人员显然知道,可以用例如故障概率、网络条件、故障恢复概率等其它部署仿真参数来确定优化激活顺序。另外,还可以按照激活时间、故障概率、网络条件、故障恢复概率等中的两个或多于两个的组合来确定优化激活顺序。将两个或多于两个部署仿真参数加权,从而计算综合部署仿真参数,并按照综合部署仿真参数确定虚拟机的激活项的优化激活顺序。
然后,根据所述优化激活顺序和激活项描述参数生成激活逻辑文件。如图6所示,将激活项描述参数和最终确定的各虚拟机内部的优化激活顺序自动写在激活逻辑文件中。
图10是根据本发明的一个实施例的虚拟机部署规划器1113的结构框图。虚拟机部署规划器1113包括接收装置901、激活顺序优化装置902、激活逻辑文件生成装置903。接收装置901接收多个虚拟机中的激活项之间的依赖关系和激活项描述参数。激活顺序优化装置902根据所述激活项之间的依赖关系优化虚拟机中的激活项的激活顺序。激活逻辑文件生成装置903根据优化后的激活顺序和激活项描述参数生成激活逻辑文件。
激活顺序优化装置902包括初始规划顺序确定装置9021、虚拟机内部激活顺序优化装置9022。可选地,激活顺序优化装置902还包括激活顺序重复优化装置9023。初始规划顺序确定装置9021确定虚拟机的初始规划顺序。虚拟机内部激活顺序优化装置9022按照虚拟机的初始规划顺序,针对每个虚拟机优化虚拟机内部的各激活项的激活顺序。激活顺序重复优化装置9023重复优化优化后的各激活项的激活顺序。
初始规划顺序确定装置9021基于以下准则确定虚拟机的初始规划顺序:如果某一虚拟机中的激活项的激活依赖于另一虚拟机中的激活项的激活的数量大于所述另一虚拟机中的激活项的激活依赖于本虚拟机中的激活项的激活的数量,则确定本虚拟机的激活整体依赖于所述另一虚拟机的激活,反之则确定所述另一虚拟机的激活整体依赖于本虚拟机的激活;按照确定出的各虚拟机的激活依赖关系画整体依赖关系树;按照整体依赖关系树中最不被依赖的虚拟机到最被依赖的虚拟机的顺序确定所述初始规划顺序,其中任选处于平等依赖地位的虚拟机的先后顺序。
虚拟机内部激活顺序优化装置9022包括:全部激活顺序确定器90221、虚拟机内部激活顺序优化器90222。全部激活顺序确定器90221针对选择的虚拟机,列出不违背所述依赖关系的所有可能的各激活项的激活顺序。虚拟机内部激活顺序优化器90222针对每一可能的各激活项的激活顺序,在假定其它虚拟机内部的已确定出的激活项的激活顺序不变的前提下,按照各激活项的部署仿真参数找出最优总部署仿真参数,将对应于最优总部署仿真参数的各激活项的激活顺序确定为该虚拟机的激活项的优化激活顺序,并指示虚拟机选择器选择下一个虚拟机。
优化激活顺序重复优化装置9023包括重新选择器90231、重复优化器90232、变化记录器90233、结束判断器90234。重新选择器90231重新选择初始规划顺序中的第一个虚拟机。重复优化器90232针对选择的虚拟机,列出不违背所述依赖关系的所有可能的各激活项的其它激活顺序,针对每一可能的各激活项的激活顺序,在假定其它虚拟机内部的已确定出的激活项的激活顺序不变的前提下,按照各激活项的部署仿真参数找出最优总部署仿真参数,将对应于最优总部署仿真参数的各激活项的激活顺序确定为该虚拟机的激活项的优化激活顺序。变化记录器90233在该虚拟机的激活项的优化激活顺序变化的情况下进行记录。结束判断器90234在记录的优化激活顺序未变化的次数达到n次的情况下结束重复优化。n等于虚拟机总数。
可选地,虚拟机部署规划器1113还包括部署仿真参数收集器904,用于接收所述部署仿真参数。
所属技术领域的技术人员知道,本发明可以体现为系统、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(medium ofexpression)中的计算机程序产品的形式,该介质中包含计算机可用的程序码。
可以使用一个或多个计算机可用的或计算机可读的介质的任何组合。计算机可用的或计算机可读的介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质、或者磁存储器件。注意计算机可用的或计算机可读的介质甚至可以是上面印有程序的纸张或者其它合适的介质,这是因为,例如可以通过电扫描这种纸张或其它介质,以电子方式获得程序,然后以适当的方式加以编译、解释或处理,并且必要的话在计算机存储器中存储。在本文件的语境中,计算机可用的或计算机可读的介质可以是任何含有、存储、传达、传播、或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的介质。计算机可用的介质可包括在基带中或者作为载波一部分传播的、由其体现计算机可用的程序码的数据信号。计算机可用的程序码可以用任何适当的介质传输,包括-但不限于-无线、电线、光缆、RF等等。
用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文中所用的术语,仅仅是为了描述特定的实施例,而不意图限定本发明。本文中所用的单数形式的“一”和“该”,旨在也包括复数形式,除非上下文中明确地另外指出。还要知道,“包含”一词在本说明书中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件,以及/或者它们的组合。
权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。
Claims (19)
1.一种虚拟机部署规划方法,所述方法包括:
接收多个虚拟机中的激活项之间的依赖关系和激活项描述参数;
根据所述激活项之间的依赖关系优化所述虚拟机中的激活项的激活顺序;及
根据优化后的激活顺序和激活项描述参数生成激活逻辑文件。
2.根据权利要求1的方法,其中根据所述激活项之间的依赖关系优化所述虚拟机中的激活项的激活顺序的步骤包括:
确定所述虚拟机的初始规划顺序;
按照所述虚拟机的初始规划顺序,针对每个虚拟机优化虚拟机内部的各激活项的激活顺序。
3.根据权利要求2的方法,其中根据所述激活项之间的依赖关系优化所述虚拟机中的激活项的激活顺序的步骤还包括重复优化优化后的各激活项的激活顺序。
4.根据权利要求2的方法,其中所述确定所述虚拟机的初始规划顺序的步骤包括:
如果某一虚拟机中的激活项的激活依赖于另一虚拟机中的激活项的激活的数量大于所述另一虚拟机中的激活项的激活依赖于本虚拟机中的激活项的激活的数量,则确定本虚拟机的激活整体依赖于所述另一虚拟机的激活,反之则确定所述另一虚拟机的激活整体依赖于本虚拟机的激活;
按照确定出的各虚拟机的激活依赖关系画整体依赖关系树;
按照整体依赖关系树中最不被依赖的虚拟机到最被依赖的虚拟机的顺序确定所述初始规划顺序,其中任选处于平等依赖地位的虚拟机的先后顺序。
5.根据权利要求3的方法,其中所述针对每个虚拟机优化虚拟机内部的各激活项的激活顺序的步骤包括:
a.针对选择的虚拟机,列出不违背所述依赖关系的所有可能的各激活项的激活顺序;
b.针对每一可能的各激活项的激活顺序,在假定其它虚拟机内部的已确定出的激活项的激活顺序不变的前提下,按照各激活项的部署仿真参数找出最优总部署仿真参数;
c.将对应于最优总部署仿真参数的各激活项的激活顺序确定为该虚拟机的激活项的优化激活顺序。
6.根据权利要求5的方法,其中所述重复优化优化后的各激活项的激活顺序的步骤包括:
d.回到初始规划顺序中的第一个虚拟机;
e.执行过程a-c,并判断该虚拟机的优化后的各激活项的激活顺序是否变化;
f.选择初始规划顺序中的下一个虚拟机,执行过程e,直到判断出激活顺序未变化的次数达到n次,n等于虚拟机总数。
7.根据权利要求5或6的方法,还包括:接收所述部署仿真参数。
8.根据权利要求5或6的方法,其中,部署仿真参数选自如下部署仿真参数中的任一个:激活时间、故障概率、网络条件、故障恢复概率;或者
部署仿真参数选自如下部署仿真参数中的两个或多于两个:激活时间、故障概率、网络条件、故障恢复概率,其中将所述两个或多于两个部署仿真参数加权,从而计算综合部署仿真参数,虚拟机的各激活项的激活顺序是按照综合部署仿真参数选择的。
9.一种虚拟机部署规划器,包括:
接收装置,接收多个虚拟机中的激活项之间的依赖关系和激活项描述参数;
激活顺序优化装置,根据所述激活项之间的依赖关系优化所述虚拟机中的激活项的激活顺序;及
激活逻辑文件生成装置,根据优化后的激活顺序和激活项描述参数生成激活逻辑文件。
10.根据权利要求9的虚拟机部署规划器,其中激活顺序优化装置包括:
初始规划顺序确定装置,确定所述虚拟机的初始规划顺序;
虚拟机内部激活顺序优化装置,按照所述虚拟机的初始规划顺序,针对每个虚拟机优化虚拟机内部的各激活项的激活顺序。
11.根据权利要求10的虚拟机部署规划器,其中激活顺序优化装置还包括:激活顺序重复优化装置,重复优化优化后的各激活项的激活顺序。
12.根据权利要求10的虚拟机部署规划器,其中初始规划顺序确定装置基于以下准则确定所述虚拟机的初始规划顺序:
如果某一虚拟机中的激活项的激活依赖于另一虚拟机中的激活项的激活的数量大于所述另一虚拟机中的激活项的激活依赖于本虚拟机中的激活项的激活的数量,则确定本虚拟机的激活整体依赖于所述另一虚拟机的激活,反之则确定所述另一虚拟机的激活整体依赖于本虚拟机的激活;
按照确定出的各虚拟机的激活依赖关系画整体依赖关系树;
按照整体依赖关系树中最不被依赖的虚拟机到最被依赖的虚拟机的顺序确定所述初始规划顺序,其中任选处于平等依赖地位的虚拟机的先后顺序。
13.根据权利要求11的虚拟机部署规划器,其中虚拟机内部激活顺序优化装置包括:
全部激活顺序确定器,针对选择的虚拟机,列出不违背所述依赖关系的所有可能的各激活项的激活顺序;
虚拟机内部激活顺序优化器,针对每一可能的各激活项的激活顺序,在假定其它虚拟机内部的已确定出的激活项的激活顺序不变的前提下,按照各激活项的部署仿真参数找出最优总部署仿真参数,将对应于最优总部署仿真参数的各激活项的激活顺序确定为该虚拟机的激活项的优化激活顺序。
14.根据权利要求13的虚拟机部署规划器,其中优化激活顺序重复优化装置包括:
重新选择器,重新选择初始规划顺序中的第一个虚拟机;
重复优化器,针对选择的虚拟机,列出不违背所述依赖关系的所有可能的各激活项的其它激活顺序,针对每一可能的各激活项的激活顺序,在假定其它虚拟机内部的已确定出的激活项的激活顺序不变的前提下,按照各激活项的部署仿真参数找出最优总部署仿真参数,将对应于最优总部署仿真参数的各激活项的激活顺序确定为该虚拟机的激活项的优化激活顺序;
变化记录器,在该虚拟机的激活项的优化激活顺序变化的情况下进行记录;
结束判断器,在记录的优化激活顺序未变化的次数达到n次的情况下结束重复优化,其中n等于虚拟机总数。
15.根据权利要求13或14的虚拟机部署规划器,包括:部署仿真参数收集器,接收所述部署仿真参数。
16.根据权利要求13或14的虚拟机部署规划器,其中,部署仿真参数选自如下部署仿真参数中的任一个:激活时间、故障概率、网络条件、故障恢复概率;或者
部署仿真参数选自如下部署仿真参数中的两个或多于两个:激活时间、故障概率、网络条件、故障恢复概率,其中将所述两个或多于两个部署仿真参数加权,从而计算综合部署仿真参数,虚拟机的激活项的优化激活顺序是按照综合部署仿真参数选择的。
17.一种镜像建立工具,包括:
激活引擎安装器,在虚拟机中安装激活引擎;
激活项安装器,在虚拟机中安装激活项;
根据权利要求9的虚拟机部署规划器。
18.一种虚拟机部署与激活工具,包括:
根据权利要求17的镜像建立工具;
部署工具,接收用于激活项的激活参数,并将激活参数保存在激活参数简档中;
激活协调器,响应于接收到虚拟机的某一激活项的激活完毕通知消息,通知其它虚拟机中依赖于该激活项的激活项开始激活。
19.一种处理设备,包括:
根据权利要求18的虚拟机部署与激活工具;
虚拟机,包括:激活引擎,由激活引擎安装器安装;激活项,由激活项安装器安装;激活逻辑文件,由虚拟机部署规划器生成;
耦接于虚拟机的激活参数简档,其中激活参数简档中的激活参数由部署工具保存,
其中,激活引擎在某一激活项激活完毕的情况下,发通知消息到激活协调器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010577047.6A CN102479096B (zh) | 2010-11-30 | 2010-11-30 | 虚拟机部署规划方法及相关设备 |
US14/147,572 US9262196B2 (en) | 2010-11-30 | 2014-01-05 | Virtual machine deployment planning method and associated apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010577047.6A CN102479096B (zh) | 2010-11-30 | 2010-11-30 | 虚拟机部署规划方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102479096A true CN102479096A (zh) | 2012-05-30 |
CN102479096B CN102479096B (zh) | 2014-08-27 |
Family
ID=46091750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010577047.6A Active CN102479096B (zh) | 2010-11-30 | 2010-11-30 | 虚拟机部署规划方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102479096B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2498838A (en) * | 2011-12-14 | 2013-07-31 | Ibm | Building a Software Appliance |
CN104951396A (zh) * | 2014-03-31 | 2015-09-30 | 国际商业机器公司 | 基于虚拟机创建软件性能测试环境的方法和装置 |
CN108667636A (zh) * | 2017-03-27 | 2018-10-16 | 中兴通讯股份有限公司 | 配置信息恢复方法、装置、存储器和计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060277542A1 (en) * | 2005-05-19 | 2006-12-07 | Novell, Inc. | System and method for creating a customized installation on demand |
CN101256495A (zh) * | 2007-02-27 | 2008-09-03 | 国际商业机器公司 | 用于中间件组件的基于策略自动配置的方法和装置 |
CN101470621A (zh) * | 2007-12-28 | 2009-07-01 | 埃森哲环球服务有限公司 | 虚拟机配置系统 |
CN101753594A (zh) * | 2008-11-28 | 2010-06-23 | 国际商业机器公司 | 激活虚拟机的方法、模拟计算设备的装置及监控设备 |
-
2010
- 2010-11-30 CN CN201010577047.6A patent/CN102479096B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060277542A1 (en) * | 2005-05-19 | 2006-12-07 | Novell, Inc. | System and method for creating a customized installation on demand |
CN101256495A (zh) * | 2007-02-27 | 2008-09-03 | 国际商业机器公司 | 用于中间件组件的基于策略自动配置的方法和装置 |
CN101470621A (zh) * | 2007-12-28 | 2009-07-01 | 埃森哲环球服务有限公司 | 虚拟机配置系统 |
CN101753594A (zh) * | 2008-11-28 | 2010-06-23 | 国际商业机器公司 | 激活虚拟机的方法、模拟计算设备的装置及监控设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2498838A (en) * | 2011-12-14 | 2013-07-31 | Ibm | Building a Software Appliance |
CN104951396A (zh) * | 2014-03-31 | 2015-09-30 | 国际商业机器公司 | 基于虚拟机创建软件性能测试环境的方法和装置 |
US9921939B2 (en) | 2014-03-31 | 2018-03-20 | International Business Machines Corporation | Creating a software performance testing environment on a virtual machine system |
US9921940B2 (en) | 2014-03-31 | 2018-03-20 | International Business Machines Corporation | Creating a software performance testing environment on a virtual machine system |
CN108667636A (zh) * | 2017-03-27 | 2018-10-16 | 中兴通讯股份有限公司 | 配置信息恢复方法、装置、存储器和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102479096B (zh) | 2014-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fleck et al. | Marrying search-based optimization and model transformation technology | |
CN103677527B (zh) | 适于移动终端的悬浮问题交互控件显示方法和装置 | |
US9524279B2 (en) | Help document animated visualization | |
Krishna et al. | IoT Composer: Composition and deployment of IoT applications | |
CN104267968A (zh) | 界面切换的方法和装置 | |
CN109240670A (zh) | 模块化的软件开发方法、系统、设备及介质 | |
CN103207902A (zh) | 一种金融客户端数据更新方法及系统 | |
CN109086215B (zh) | 一种嵌入式软件单元测试用例生成方法及系统 | |
CN105450461A (zh) | 一种分流方法及网络设备 | |
JP2013515315A (ja) | 通信端末機のウェブ基盤ユーザインターフェース具現装置およびその方法 | |
JP5740349B2 (ja) | コンピュータ環境における式の変換 | |
JP4001286B2 (ja) | プログラム保守支援装置、プログラム保守支援方法、およびプログラム | |
CN108900897A (zh) | 一种多媒体数据处理方法、装置以及相关设备 | |
Romero et al. | SPLEMMA: A generic framework for controlled-evolution of software product lines | |
CN109189384A (zh) | 一种代码的复用方法及装置 | |
CN110135735A (zh) | 一种工作流定义方法及系统 | |
CN102479096A (zh) | 虚拟机部署规划方法及相关设备 | |
SG188262A1 (en) | Automatic application tuning | |
CN103605696A (zh) | 一种获取影音文件地址的方法和装置 | |
US9262196B2 (en) | Virtual machine deployment planning method and associated apparatus | |
CN111984248B (zh) | 页面编辑方法和装置、存储介质及电子装置 | |
Cetina et al. | Strategies for variability transformation at run-time. | |
CN111209463B (zh) | 互联网数据采集方法及装置 | |
Nolan et al. | Android best practices | |
CN110134434B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |