CN101470621A - 虚拟机配置系统 - Google Patents

虚拟机配置系统 Download PDF

Info

Publication number
CN101470621A
CN101470621A CNA2008101849034A CN200810184903A CN101470621A CN 101470621 A CN101470621 A CN 101470621A CN A2008101849034 A CNA2008101849034 A CN A2008101849034A CN 200810184903 A CN200810184903 A CN 200810184903A CN 101470621 A CN101470621 A CN 101470621A
Authority
CN
China
Prior art keywords
virtual machine
configuration
image file
order
attribute
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
CNA2008101849034A
Other languages
English (en)
Other versions
CN101470621B (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.)
Accenture Global Services Ltd
Accenture International LLC
Original Assignee
Accenture Global Services GmbH
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 Accenture Global Services GmbH filed Critical Accenture Global Services GmbH
Publication of CN101470621A publication Critical patent/CN101470621A/zh
Application granted granted Critical
Publication of CN101470621B publication Critical patent/CN101470621B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种计算设备,使用配置命令来配置虚拟机。每个虚拟机可以从相应的虚拟机镜像文件来引导。在虚拟机引导或者执行时,虚拟机可以从相应的虚拟机镜像文件中所包括的应用文件和操作系统文件中进行读取或者向其进行写入。在虚拟机引导之前,通过从相应的虚拟机镜像文件中包括的应用文件和操作系统文件进行读取或者向其进行写入,计算设备可以得到或者设置将要在相应的虚拟机中引导的操作系统和应用的配置属性。计算设备可以执行配置命令来得到或者设置操作系统以及应用的配置属性。

Description

虚拟机配置系统
技术领域
本发明的领域总体上涉及软件配置。具体地,本发明涉及虚拟机的配置。
背景技术
正确地配置应用可能是费时费力的人工过程。正确地配置应用可能需要人们使用图形用户接口(GUI)来进行配置设置,其中轻微的错误便可能导致应用故障。一些应用的配置是非常复杂的,因为应用可能包括多个层级(tier)。层级可以定义为执行类似功能的一个或多个服务器的群组。例如,两层级应用可以包括配置web服务器和数据库服务器。三层级应用可以包括配置web服务器、应用服务器以及数据库服务器。每个层级可以包括多个机器,以处理负载平衡和机器故障转移。
每个服务器可能需要至少一些人工配置,并且动态地增大了复杂性和引入配置错误的可能性。典型的企业级应用,诸如客户关系管理(CRM)应用或者企业资源规划(ERP)应用,可能需要几天甚至几周的时间来安装和配置。
配置的难点之一涉及从层级到机器的映射。在开发期间,为了节省硬件成本,可能将所有层级映射至同一物理机器。在此典型配置中,每个层级中使用的所有应用都可以安装在同一物理机器上。相反,在产品配置中,每个层级可以映射至一个或者多个物理机器,以使可扩展性和可靠性最大化。在此典型的产品配置中,每个层级中的应用可以仅安装在属于该层级的每个机器上。由此,每个机器具有不同的配置。
虚拟化技术已经缓解了与一些类型的这些复杂应用相关联的一些配置问题。虚拟机使用硬件仿真层,从而使多个操作系统可以在同一物理硬件上同时执行,因为硬件仿真层使得物理硬件看起来好像是每个操作系统的专用硬件。
虚拟机可以从镜像文件来引导。镜像文件可以是安装在计算机系统中软件(可以包括操作系统和各种应用)的镜像。有时,为了特定目的而安装在计算机系统中的软件的镜像文件公知为虚拟工具。例如,给定应用的特定层级中的软件可以安装在计算机系统中。从该计算机系统创建的镜像文件可以称为虚拟工具。随后可以使用镜像文件来引导属于该层级的虚拟机。
在典型的开发者配置中,每个层级的虚拟机可以在同一物理机器上引导,每个虚拟机从不同的镜像文件引导。备选地,在产品环境中,可以从同一镜像文件引导用于给定层级的多个虚拟机。每个虚拟机可以在独立的物理机器上运行。
尽管镜像文件可以包括预先安装的软件的集合,该软件的其他配置或者附加组件的安装常常还是留给用户来人工完成。其一个原因是:在创建镜像文件时,用以配置机器的某些信息是未知的。例如,网络设置可能仅当在从目标配置中的镜像文件引导了虚拟机之后才是已知的。一般地,如果应用需要使用多个虚拟机,所引导的虚拟机至少在一定程度上必须人工配置。
发明内容
一种计算设备,其使用配置命令来配置虚拟机。每个虚拟机可以从相应的虚拟机镜像文件来引导。在虚拟机引导或者执行时,虚拟机从相应的虚拟机镜像文件中所包括的应用文件以及操作系统文件进行读取或向其进行写入。在虚拟机引导之前,计算设备可以从相应的虚拟机镜像文件中所包括的应用和操作系统中读取或者向其写入,以此来得到或者设置将要在相应的虚拟机中引导的操作系统和应用的配置属性。该计算设备可以执行配置命令,以得到或者设置操作系统和应用的配置属性。
与从应用文件和操作系统文件进行读取或者向其进行写入相关联的逻辑可以封装在虚拟机模块中。虚拟机模块可以具有应用编程接口(API),其包括用于得到或者设置虚拟机的已命名属性的一个或多个方法。已命名属性可以称为虚拟机的配置属性。虚拟机的配置属性可以对应于该虚拟机的操作系统和应用的配置属性。
该计算设备可以执行配置命令,所述配置命令可执行以访问虚拟机的配置属性。该计算设备可以执行虚拟机模块的API以执行配置命令。可以使得配置命令所获得的虚拟机的配置属性对于一个或多个随后执行的配置命令可用。
配置命令可以对虚拟机镜像文件的副本、而不是虚拟机镜像文件本身进行参考。以此方式,可以使用相同的虚拟机镜像文件来引导不同的虚拟机,其中每个不同的虚拟机具有不同的配置。
可以通过XML来表示配置命令。可以将用以得到或者设置虚拟机属性的配置命令表示为单个XML元素。还可以将用以将虚拟机镜像文件映射为虚拟机标识符的配置命令表示为单个XML元素。还可以将用以引导给定虚拟机标识符的虚拟机的配置命令表示为单个XML元素。一个配置命令可以通过被表示为父XML元素的子XML元素,来将值传递给另一配置命令,其中该另一配置命令被表示为所述父XML元素。
该计算设备的令人感兴趣的方面在于:配置命令可以使用从一个虚拟机获得的配置属性来配置多个虚拟机,以设置另一虚拟机的配置属性。例如,一个配置命令可以得到一个虚拟机的操作系统的配置属性,并且使用该配置属性来设置不同虚拟机中的应用的配置属性。
该计算设备的另一令人感兴趣的方面在于:配置命令还可以配置已引导的虚拟机。例如,配置命令可以通过与已引导虚拟机内执行的代理模块进行通信来设置该已引导虚拟机的属性。
通过下文参考附图的描述,本发明的其他目的和优点将变得易见,其中附图清楚地示出了本发明的优选实施方式。
附图说明
参考下文的附图和描述将更好地理解本系统。图中的组件不一定是按比例绘制的,其重点强调的是示出本发明的原理。
图1是具有预先安装软件的示例计算机系统的图示;
图2是用于配置虚拟机的第一示例计算设备的图示;
图3是用于配置虚拟机的第二示例计算设备的图示;
图4是用于配置虚拟机的第三示例计算设备的图示;
图5是用于配置虚拟机的第四示例计算设备的图示;以及
图6是示出了使用配置命令来配置虚拟机的示例操作的框图。
具体实施方式
图1是具有预先安装软件的示例计算机系统的图示。示例计算机系统100具有已安装的操作系统102以及两个应用104和106。操作系统102可以具有硬件驱动器108,操作系统102使用该硬件驱动器108来与硬件设备通信。一个这样的硬件设备可以是存储设备110。存储设备110可以是任何类型的存储器、存储器存储设备或者不同类型存储器或者存储器存储设备的组合,包括但不限于:随机访问存储器(RAM)、只读存储器(ROM)、硬盘、光盘、数字视频盘(DVD)、压缩盘只读存储器(CD-ROM)等。
存储设备110可以包含操作系统文件112以及一个或多个应用文件114和116。操作系统文件112中的一些可以是可执行的二进制码。当计算机系统100引导或者开始执行指令时,可以将可执行二进制码从存储在存储设备110上的操作系统文件112装载至存储器并执行,由此开始计算机系统100的操作。在向硬件加电之后,当计算机系统执行将该计算机系统置于常规操作配置所需的操作时,可以说该计算机系统进行引导(或者处于引导过程中)。当操作系统已经启动时,可以认为计算机系统处于常规操作配置中,此时应用可以在操作系统内执行。一旦应用可以在操作系统内执行,就认为操作系统和计算机系统已经经过了引导。在一些示例中,当应用可以在操作系统内执行时,操作系统可能仍然处于启动过程中,在这样的例子中,认为操作系统和计算机系统已经经过了引导,即使操作系统仍然正在启动。应用是需要操作系统以便执行的任何软件,诸如web服务器、数据库服务器、文字处理器、网络驱动器、网络服务、浏览器插件等。软件程序可以是操作系统或者应用。如果可以从包含操作系统文件112的存储设备110来引导计算机系统,则认为该存储设备110是可引导的。
操作系统102在其引导时可以读取一个或多个配置文件,以读取存储在配置文件中的配置设置。例如,图1中示出了操作系统(OS)配置文件118。OS配置文件118可以是用于存储配置设置的任意格式,诸如:二进制、可扩展标记语言(XML)、INI格式(也即,由符号“=”隔开的名称值对)等。在所示的例子中,OS配置文件118包含至少三个属性120,其名称分别为Property1、Property2和Property3,值分别是A、B和C。在其他示例中,OS配置文件188可以包括更多或者更少的属性,具有不同名称或者值并且不同格式的属性。
在操作系统102引导时,操作系统102可能需要确定特定属性的值,诸如属性“Property1”。操作系统102还可能需要在操作系统102引导之后确定特定属性的值。为了确定特定属性的值,操作系统102可以读取OS配置文件118,并继而解析OS配置文件118的内容,以确定特定属性的值。取决于操作系统102和将要读取的特定属性,可以在操作系统102引导之前修改OS配置文件118中的属性值,以配置该特定属性。在一些情况下,为了改变操作系统102的一个属性,可能需要改变多个OS配置文件。
类似地,当应用104或者106在操作系统102内加载时,可以将应用文件114或者116中包含的该应用的可执行二进制码从存储设备110装载到存储器中,并继而执行。而且,当应用104或者106执行时,应用可以从应用配置文件122读取配置设置。
取决于应用104和106以及将要读取的特定属性124,可以在应用104加载之前修改应用配置文件122中的属性值,以便配置应用的该特定属性124。在一些情况下,为了改变应用104的一个属性,可能需要改变多个应用配置文件122。
如上所述,计算机系统100可以包括(1)操作系统102在其上执行的硬件,(2)操作系统102,以及(3)在操作系统102内执行的应用104和106。相反,在此使用的术语“虚拟机”定义为软件,其包括(1)仿真软件,其对计算机系统100的硬件进行仿真,以及(2)操作系统102,其被配置为在仿真软件上执行。短语“被配置为在仿真软件上执行”包括:操作系统102被配置为在计算机系统100的硬件上执行,但是其实际上是在仿真软件上执行。仿真软件可以包括硬件仿真驱动器,其对操作系统102用来与硬件设备通信的硬件驱动器108进行仿真。在此使用的术语“虚拟机”可以表示包括在操作系统102内执行的一个或多个应用104和106的软件。在此使用的术语“虚拟机”可以表示被配置为在仿真软件上执行的操作系统102以及在操作系统102内执行的一个或多个应用104和106,而不是表示仿真软件本身。
计算机系统100的虚拟镜像文件可以包含操作系统文件112以及应用文件114和116的全部。虚拟镜像文件的格式可以是将要使用的虚拟化软件所特定的。可用的供应商虚拟化软件包括但不限于:Xen、VMware以及微软的“Viridian”项目。虚拟镜像文件还可以包括除了操作系统文件112以及应用文件114和116之外的信息,诸如仅由供应商虚拟化软件所使用的信息。通过至少包括操作系统文件112以及应用文件114和116,供应商虚拟化软件能够作为虚拟机来引导计算机系统100中最初所安装和配置的系统。当安装在虚拟机中的操作系统启动(响应于硬件仿真软件仿真对硬件加电)并且操作系统内的一个或多个应用可以执行的时候,认为该虚拟机进行了引导。能够从虚拟镜像文件来引导虚拟机的供应商虚拟化软件的组件将被称为虚拟机管理系统(VMMS)。虚拟机管理系统可以具有附加的功能,诸如查询功能。
在逻辑上,可以将每个虚拟机视为具有可访问(也即,读取或者修改)的属性集合。该虚拟机属性集合是操作系统的属性以及存储在应用配置文件118和122中的应用的属性的集合或者子集。该虚拟机属性集合也可以包括逻辑属性。逻辑属性是表示虚拟机状态的属性,其中状态未必存储在应用配置文件中。例如,逻辑属性可以向供应商指明安装在虚拟机中的应用的类型。有两类虚拟机属性:静态的或者动态的。静态属性可以在引导虚拟机之前改变。动态属性可以在引导虚拟机之前和之后改变。虚拟机属性可以具有不同的数据类型。
图2是用于配置虚拟机的第一示例计算设备的图示。计算设备200可以包括操作系统201。操作系统201可以在包括硬件仿真器203的虚拟机中运行,或者可以在不包括硬件仿真器203的非虚拟化计算机系统中运行。硬件仿真器203是上面讨论的仿真软件。容器模块230可以在操作系统201内执行。容器模块230可以获取配置命令235、装载虚拟机模块236和238,以及指引虚拟机模块236和238执行:以便根据一个或多个配置命令235来配置镜像文件232和234。一个或多个配置命令235例如可以通过XML来表示。配置命令235可以包括用于得到和设置虚拟机操作系统202和/或虚拟机应用204的配置属性的命令。配置命令235可以指明配置命令是针对哪个虚拟机的,是260还是262。
每个虚拟机260或者262可以对应于镜像文件232和234。备选地,每个虚拟机260或者262可以对应于指定的镜像文件232或者234的副本。通过对镜像文件的副本进行操作,可以不同地配置基于相同镜像文件的两个或者更多虚拟机。
为了执行用于得到或者设置虚拟机260或者262的配置属性的配置命令,容器模块230可以执行与镜像文件232或者234相对应的虚拟机模块236或者238。为了将配置属性设置为配置命令中所指定的值,虚拟机模块236或者238中的代码可以修改镜像文件232或者234中的适当配置文件。为了得到配置命令中所指定的配置属性,虚拟机模块236或者238中的代码可以解析镜像文件232或者234中的适当配置文件。
配置命令还可以包括用于引导虚拟机260或者262的一个或多个配置命令。为了执行这样的引导配置命令,容器模块230可以调用虚拟机管理系统240(VMMS)中的代码,并且容器模块230可以将对与虚拟机260或者262相对应的镜像文件232或者234的参考传递给VMMS240。对镜像文件232和234的参考可以是镜像文件232或者234的路径名称、网络地址、快捷方式、预定义别名或者任何其他标识符。可以执行VMMS240,以在操作系统当前执行的同一计算设备200上或者在计算设备200外部的机器上引导虚拟机260或者262。当虚拟机260或者262引导时,将根据对镜像文件232或者234所进行的修改来配置虚拟机操作系统202和/或虚拟机应用204。
图3是用于配置虚拟机的计算设备的第二示例的图示。在此示例中,计算设备300包括处理器301和计算机可读存储器302。处理器301可以是能够执行模拟逻辑操作或数字逻辑操作的任何设备或者系统。存储器302可以是任何已知的或者稍后开发的、用于存储数据或代码的计算机可读介质,诸如随机访问存储器(RAM)、只读存储器(ROM)、硬盘、光盘、数字视频盘(DVD)、压缩盘只读存储器(CD-ROM)等。计算机可读存储器302可以包括计算机代码和虚拟机镜像文件332和334。计算机代码可以是以任意计算机语言编写的,诸如C、C++、Java、C#、汇编语言、Perl等。计算机代码可以(或者可以不)在操作系统内运行。计算设备300可以包括一个、两个或者多于两个虚拟机镜像文件332和334。
计算机代码可以包括访问模块336,其可以由处理器301来执行,用以访问每个虚拟机镜像文件332和334中所包括的一个或多个应用文件340以及操作系统文件338。访问模块336可以是VMMS的部分。例如,访问模块336可以包括VMMS所提供的操作系统扩展,其将虚拟机镜像文件332或者334作为操作系统内执行的代码可访问的驱动或者目录而安装在操作系统内。在另一示例中,如果虚拟机镜像文件332和334是标准文件压缩格式的,诸如ZIP、TAR、GZ等,则访问模块336可以是能够处理这些标准文件压缩格式的代码。每个虚拟机镜像文件332和334可以是虚拟机中可引导的。供应商虚拟化软件的具体内容可以确定是否使用VMMS来从虚拟机镜像文件引导虚拟机。
在图3示出的示例计算设备300中,计算机代码可以包括一个或多个虚拟机模块341。每个虚拟机模块342可以由处理器301来执行,以访问至少一个虚拟机镜像文件332中所配置的应用和/或操作系统的配置属性。下文将给出虚拟机模块341如何操作的细节。
在图3所示的示例计算设备300中,计算机代码可以包括容器模块330。容器模块330可以从存储在计算机可读存储器201中的文件处获取配置命令344。该文件的格式可以是XML文本文件。备选地,该文件可以是目前已知的或者以后开发的、用于表示命令的任何格式,诸如JavaScript、VBScript、Perl、各种构建文件语法等。配置命令344例如可被配置用于访问虚拟机镜像文件332或者334中所配置的应用和操作系统的配置属性。
容器模块330可以执行配置命令344。容器模块330可以调用至少一个虚拟机模块341来访问虚拟机镜像文件332或者334中所包括的文件338和340中所存储的配置属性。
图4是用于配置虚拟机的计算设备400的第三示例的图示。图4中的计算设备400示出了虚拟机模块442是如何操作的。计算设备400包括处理器401以及处理器401可执行的容器模块430。计算设备400还可以包括虚拟机模块442以及访问模块436,二者都可以由处理器401来执行。计算设备400还可以包括虚拟机镜像文件432。虚拟机镜像文件432可以包括虚拟机(VM)操作系统文件438以及一个或多个VM应用文件440。配置属性433可以存储在应用文件440之一中。在其他示例中,计算设备400可以包括不止一个虚拟机镜像文件432。
容器模块430可以获取配置命令444,其包括用以访问存储在应用文件440之一中的配置属性433的一个或多个配置命令444。容器模块430还可以装载虚拟机模块442,并且指引虚拟机模块442执行以访问配置属性433,而不是直接调用访问模块436或者直接访问应用文件440。容器模块430可被配置用于执行以预定编程语言集合之一编写的虚拟机模块442。该预定集合可以是编程语言的任意集合,诸如Java和C++。备选地,容器模块430可被配置用于以一个预定编程语言编写的虚拟机模块442。编程语言可以是解释语言,诸如Java、BASIC、C#等。当软件代码执行时,以解释语言编写的软件代码可以由语言特定的代码模块来解释。编程语言还可以是编译语言,诸如C、C++、汇编语言等。可以首先利用称为编译器的代码模块对以编译语言编写的软件代码进行编译,以生成二进制可执行文件。该二进制可执行文件可以包括处理器401所理解的代码指令。在此使用的短语“通过处理器可执行”一般地适用于以解释语言或者编译语言编写的软件代码。
在此使用的术语“子模块”被定义为与方法、功能或者子例程等同。子模块可以(或者可以不)具有任何参数,并且可以(或者可以不)具有返回值。
虚拟机模块442可以外露应用程序接口(API)446,其包含用于通过名称来得到和/或设置属性的方法。继而可以将对存储配置属性433的具体应用或者操作系统文件进行定位的逻辑封装到该API的实现代码中。还可以将用于访问和解析特定应用或者操作系统文件的代码封装到虚拟机模块442的实现中。备选地,在不同的示例中,可以将用于访问和解析特定应用或者操作系统文件的代码封装到容器模块430中。在后面的例子中,虚拟机模块442中的代码对于所使用的供应商虚拟化软件而言可以是中立(neutral)的。
在一个示例中,API 446可以包括具有值参(例如,“firstValue”)的设置器方法(例如“setFirstConfigurationProperty”)。该设置器方法可以具有前缀(例如,“set”),其连接有配置属性433之一的名称(例如,“FirstConfigurationProperty”)。可以执行设置器方法来将配置属性433设置为值参。在其他示例中,可以使用不同的命名惯例。在其他示例中,可以不遵循命名惯例。
API 446可以包括具有返回值的获得器方法(例如,“getFirstConfigurationProperty”)。该获得器方法可以具有前缀(例如,“get”),其连接有配置属性433之一的名称(例如,“FirstConfigurationProperty”)。可以执行获得器方法来返回配置属性433的值。在其他示例中,可以使用不同的命名惯例。在其他示例中,可以不遵循命名惯例。
API 446中访问配置属性433的方法的实现可以执行访问模块436来访问存储在应用文件440之一中的配置属性433。在一些示例中,API 446中方法的实现可以仅仅是确定配置属性433存储在什么文件中、以及该文件的格式的代码。
具有获得器方法和/或设置器方法的API 446使得容器模块430能够将配置命令444转换为对虚拟机模块442的API 446中所包括的方法的调用。虚拟机模块442可以编写一次,并被随后编写配置命令444的多个不同的脚本开发者复用。
由于特定虚拟机镜像文件432上的应用文件440与被编写以访问这些文件的虚拟机442之间的紧密关系,可以将虚拟机模块442作为文件包括在该特定虚拟机镜像文件432中。容器模块430可以直接从虚拟机镜像文件432读取和装载虚拟机模块442。
在一些示例中,容器模块430可以可编程地检查给定虚拟机模块442的API 446,以确定给定的虚拟机模块442支持什么属性。例如,如果容器模块430和虚拟机模块442是通过Java编写的,则容器模块430可以使用Java Reflection来找到API 446中方法的名称,以确定可以得到或者设置什么属性。
备选地,每个虚拟机镜像文件432可以包括声明文件。声明文件可被配置用于指定该虚拟机镜像文件432中所包括的虚拟机模块442可以访问的配置属性。声明文件还可被配置用于指定API 446的方法。在另一示例中,API 446的属性声明和/或方法声明可以存储在虚拟机镜像文件432中,但是当从虚拟机镜像文件来引导虚拟机452时,其存储在对于操作系统456或者应用450而言不可见的虚拟机镜像文件432的部分中。
在一个示例中,属性声明可以遵循编程语言(例如,C编程语言)的语法。例如,可以使用C语言中用于声明变量的语法来声明配置属性;并且可以使用C语言中用于声明方法的语法来声明API 446的方法。每个方法声明还可以包括从虚拟机模块442的开始(其指明了API446的相应方法的二进制实现的开始)的偏移。容器模块430可以使用该偏移来计算存储器中包含API 446的预定方法的二进制实现的地址。
通过抽象对访问模块436的访问逻辑,虚拟机模块442可以对所使用的供应商虚拟化软件中立,并且可以在不同的供应商虚拟化软件之间移动。此外,配置命令444对于所使用的供应商虚拟化软件而言也可以是中立的,因此可以在不同的供应商虚拟化软件之间移动。
还可以执行容器模块430来使得由配置命令444之一获取的配置属性对后续执行的配置命令可用。这例如允许将存储在一个虚拟机镜像文件432中的配置属性433设置为从在不同的虚拟机镜像文件中获取的另一配置属性获取的值。
在另一示例中,虚拟机模块442的API 446可以包括可执行以删除至少一个虚拟机镜像文件432中所包括的应用文件440的子集的方法。通过删除应用文件的子集,该方法可执行以从虚拟机镜像文件432处卸载一个或多个应用。
在另一示例中,虚拟机模块442的API 446可以包括通知方法。通知方法可以具有方法名称(例如,“notifySecondConfigurationProperty”),其形式是前缀(例如,“notify”)连接有配置属性448的名称(例如,“SecondConfigurationProperty”)。可以从调用通知方法的模块向该通知方法传递值参。可以执行通知方法,以便在从虚拟机镜像文件432引导虚拟机452之后将虚拟机镜像文件432中所配置的应用450的配置属性448设置为该值参。通知方法可能是有用的,因为虚拟机镜像文件432中的配置属性433在引导虚拟机452之后的改变可能并未被已引导虚拟机452内执行的应用450读取到。
虚拟机模块442的通知方法可以与在已引导虚拟机452中执行的代理454通信。在一个示例中,代理454可以存储在虚拟机镜像文件432中。在一些示例中,通知方法可以使用诸如TCP/IP、HTTP、SOAP、SMP等的标准协议来与代理454通信。在其他示例中,通知方法可以使用VMMS来与代理454通信。VMMS可以提供以下能力:使用VMMS可编程地加载已引导虚拟机452中的进程。例如,如果已引导的虚拟机452使用寄宿(hosted)硬件仿真器在宿主操作系统中执行并且VMMS在该宿主操作系统中执行,则VMMS可以使用该功能。寄宿硬件仿真器是在宿主操作系统内运行、并且对硬件进行仿真的软件。“客户”操作系统456可以在寄宿硬件仿真器上运行,并由此在宿主操作系统内执行第二操作系统。
在一个示例中,容器模块430可以确定是调用API 446中包括的通知方法还是设置器方法。如果容器模块430执行设置配置属性433或者448的配置命令444,则容器模块430可以在虚拟机452被引导的情况下调用通知方法,而在虚拟机452未被引导的情况下调用设置器方法。在另一示例中,容器模块430总是调用设置器方法,但是仅在虚拟机452被引导的情况下调用通知方法。在又一示例中,配置命令444本身指明是调用通知方法还是设置器方法。
在一个示例中,代理454可以调用虚拟机模块442中的方法来设置应用450的配置属性448。在该示例中,虚拟机模块442可以附加地存储在应用文件458中。换言之,虚拟机模块442可以在客户操作系统456中运行,并由此被认为是应用——因此,虚拟机模块442可以恰当地包括在应用文件中。代理454可以是多个虚拟机模块442使用的通用代码。
可以执行容器模块430来将作为虚拟机模块442的API中所包括方法的值参而从配置命令444之一传递的文本值从文本数据类型转换为该值参的预定数据类型。该功能可以使得开发者更为容易地创建虚拟机模块442,因为开发者可以使用API中所包括的方法中的适当数据类型,而无需编写代码来转换从配置命令444之一传递的文本值。容器模块430也可以将使用预定数据类型的变量中的值保留为虚拟机模块442中的方法所返回的样子。容器模块430继而可以将该变量中保留的未转换值传递给虚拟机442中的方法(如果随后执行的配置命令444之一提出了这样的请求)。
图5是用于配置虚拟机的计算设备500的第四示例的图示。计算设备500可以包括处理器501和存储器502。处理器501与存储器502通信。镜像文件532和533可以存储在存储器中。每个镜像文件(包括第一镜像文件532和第二镜像文件533)可以是虚拟机镜像格式的,并且包括操作系统538的文件以及一个或多个应用540的文件。计算设备500还可以包括包含在存储器502中的虚拟机管理系统504(VMMS)。
可以由处理器501来执行VMMS 504,以便从虚拟机镜像格式的镜像文件532或者533来引导虚拟机552。虚拟机552可被配置用于对计算机系统的硬件驱动器558进行仿真,以便使一个或多个应用550以及镜像文件532或者533的VM操作系统556能够在虚拟机552中执行。
计算设备500还可以包括包含在存储器502中的配置命令544。配置命令544可以由处理器501来执行。可以从一个或多个文件中读取配置命令544。在另一示例中,可以使用任何已知的或者以后发明的协议(诸如TCP/IP、HTTP、SOAP等)来通过网络或者计算设备500外部的一些其他位置来接收配置命令544。
配置命令544可以包括第一配置命令。可以执行第一配置命令来得到第一镜像文件532的操作系统538的第一属性。第一配置命令可以使用操作系统命令模块506来获取第一属性。操作系统命令模块506可以是特定于特定类型的操作系统的,诸如Windows、Linux、Macintosh等。可以执行操作系统命令模块506,以便例如从操作系统538的一个或多个文件定位给定的属性。
配置命令544可以包括第二配置命令,可执行该第二配置命令以设置第二镜像文件533的应用535的一个或多个文件中所包括的第二属性534。第二配置命令可以使用应用命令模块508来设置该属性。
计算设备500可以包括任意数目的命令模块,诸如操作系统命令模块506和应用命令模块508。可以执行每个命令模块来实现至少一个配置命令。应用命令模块508可被配置用于实现被配置为访问应用550之一的属性的所有配置命令,其中,属性存储在第二镜像文件533中所包括的一个或多个应用535的文件中。实际上,如果同一应用包括在多个镜像文件532和533中,则可以使用相同的应用命令模块来访问该多个镜像文件532或者533的任意镜像文件中的该应用的属性。
计算设备500可以包括容器模块530,其包含在存储器502中,并且可以由处理器501来执行。容器模块530可被配置用于执行与每个配置命令544相对应的命令模块506或者508,其中命令模块实际上实现了配置命令。在一个示例中,每个镜像文件532和533可以包含任意操作系统命令模块506或者应用命令模块508的副本,所述模块可执行以访问存储在操作系统536或者538的文件中、或者存储在镜像文件532或者533中所包括的应用535或者540的文件中的属性。容器模块530可被配置用于从每个镜像文件532和533来读取每个命令模块506或者508。
在另一示例中,计算设备500可以包括解析器模块,其存储在存储器502中并且可以由处理器501来执行,以从配置命令的表示(例如,XML)获得配置命令544。解析器可进一步执行以识别每个配置命令544以便将配置命令编组为所确定的顺序,以及识别该表示中的语法错误和语义错误。示例语义错误是访问不存在的虚拟机属性。在错误的情况下,解析器模块可以指明该错误和/或停止配置命令的执行。解析器模块可以包括在容器模块530中。
可以采用任何形式的XML表示。下面给出了具体配置命令的一些示例形式,不应将其理解为限制可能使用的形式。
配置命令544可以包括实例化命令,其可执行以将标识符映射到指定镜像文件532或者533的副本。标识符可以是唯一标识虚拟机(其可被引导或者不可引导)的任何文本(包括数字或者符号)。在一个示例中,实例化命令可以表示为如下XML命令:
<VM id=“dbserver”image=“c:\ubuntu.vmx”/>
该XML元素的“image”(镜像)属性指明了将要使用的基本虚拟机镜像的位置。“id”属性指明了虚拟机标识符的名称,随后执行的配置命令可以参考该名称来访问该虚拟机的配置属性。在一个示例中,实例化命令可以制作镜像属性中指定的基本虚拟机镜像文件的副本,并且参考该虚拟机的所有后续配置命令可以访问该副本。为了效率原因,可能只需要复制镜像文件的一部分。备选地,参考该虚拟机标识符的后续配置命令可以访问镜像属性中所指定的镜像文件而不是该镜像文件的副本。
可执行以得到第一镜像文件532或者533的操作系统的第一属性的第一配置命令可以表示为如下XML命令:
<property-path id=“dbserverip”path=“dbserver.ipaddr”/>
<property-path/>XML元素的“path”(路径)属性的值可以指明第一属性,并且可以遵循以下形式:“虚拟机标识符.属性名称”。“id”属性可以指明可被随后执行的配置命令参考的变量名称,其中随后执行的配置命令可以获取第一属性的值。“id”属性可以是可选的。在一个示例中,在上述XML命令的执行期间,容器模块430可以利用第一属性的值来替换<property-path/>XML元素。
一个配置命令可以通过表示为子XML元素来将值传递给另一配置命令,其中该另一配置命令表示为父XML元素。例如,可执行以将第二镜像文件533的应用535的文件之一的文件中的第二属性534设置为第一配置命令获得的第一属性的第二配置命令可以表示为以下XML命令:
<VM id=“webserver”>
   <property name=“databaseIpAddress”>
        <variable id=“dbserverip”/>
   </property>
</VM>
具有“id”属性的<VM>XML元素可以指定将要配置的虚拟机的标识符。在此示例中,一些之前的实例化命令可能已经将“webserver”标识符映射到了特定的镜像文件。<property>XML元素指明:其后跟随的命令对“name”(名称)属性所标识的属性进行操作。在此示例中,属性名称是“databaseIpAddress”。因为<property>XML元素是<VM>元素的子元素,因此所标识的属性是<VM>元素中标识的虚拟机的属性。因此,上面的示例XML表示利用标识符“webserver”来设置虚拟机的“databaseIpAddress”属性的命令。<variable>元素赋值为“id”属性所指明的变量的值。因为<variable>XML元素是<property>XML元素的子元素,因此该XML表示将该属性设置为变量值的命令。在此示例中,XML表示利用“webserver”标识符将虚拟机的“databaseIpAddress”属性设置为“dbserverip”变量。
取代使用变量,上面讨论的第一配置命令和第二配置命令可以表示为如下XML命令:
<VM id=“webserver”>
    <property name=“databaseIpAddress”>
        <property-path path=“dbserver.ipaddr”/>
    </property>
</VM>
   <property-path>XML元素得到具有“dbserver”标识符的虚拟机的“ipaddr”属性的值。<property>XML元素将具有“webserver”标识符的虚拟机的属性“databaseIpAddress”设置为从得到“ipaddr”属性获得的值。取代使用<property-path>XML元素,可以将property-path属性用于相同的效果,但是具有更简练的表示:
<VM id=“webserver”>
    <property name=“databaseIpAddress”property-path=”dbserver.ipaddr”/>
</VM>
配置命令还可以指定常量值。例如,下面的命令将“webserver”所标识的虚拟机的“databaseIpAdderss”属性设置为值“192.168.33.190”。
<VM id=“webserver”>
    <property name=“databaseIpAddress”>
         <value>192.168.33.190<value/>
    </property>
</VM>
备选地,可以使用<property>XML元素上的“value”属性来取代子<“value”>XML元素。在另一示例中,下面的配置命令是设置变量命令,其可以将存储器201中的变量设置为指定值,以便随后执行的配置命令通过参考该变量来使用:
<variable id=“dbserverip”value=“192.168.33.190”/>
属性“value”包含特定的值。可以对“id”属性的值进行参考。例如,随后执行的配置命令可以利用上面示例之一中指出的XML元素<variable id=“dbserverip”/>来对示例变量进行参考。
配置命令还可以包括连接命令,其可执行以连接两个或者更多值。在其他示例中,可以支持更为精细的字符串操作。例如,下面以XML表示的连接命令将两个变量的值“firstValue”和“secondValue”连接为存储在称为“1argerstring”中的字符串。
<concatenate id=“largerstring”>
    <variable id=“firstValue”/>
    <variable id=“secondValue”/>
</concatenate>
配置命令还可以包括引导虚拟机命令,其可执行以从镜像文件532或者533引导指定的虚拟机552。例如,引导虚拟机命令可以表示为:
<VM id=“webserver”action=poweron/>
“id”属性可以指明实例化命令中先前指定的虚拟机的标识符。“action”属性可以指明对指定虚拟机的执行的动作。在此示例中,“poweron”指明,应当从实例化命令中先前指定的镜像文件532或者533引导虚拟机552。备选地,可以在<VM>XML元素上的“image”属性中指定镜像文件,以用于实例化和引导虚拟机552。“action”属性可以指定其他动作,诸如虚拟机552关闭。
容器模块430可以按照容器模块430获取配置命令444的顺序所指明的顺序来指引配置命令444的执行。备选地,配置命令444可以包括改变执行顺序的逻辑命令。
容器模块430可以串行地执行配置命令444。在不同示例中,容器模块430可以并行执行配置命令444。如果在配置命令444中没有指明两个虚拟机之间存在依赖关系,则在两个虚拟机之一上进行操作的配置命令444可以与在两个虚拟机中另一个上执行的配置命令444并行执行。指明两个虚拟机之间的依赖关系的一个示例可以是显式地这样做,配置命令444:
<VM id=“webserver”image=“c:\webserver.vmx”depends-on=“dbserver”/>
在一些示例中,容器模块501可以处理<include>XML元素或者XML处理器指令,以包括XML文件。在这些示例中,仅对某些应用或者虚拟机进行操作的配置命令可以包含在专用文件中。单个XML文件继而可以包括多个专用文件。
图5所示的示例计算设备500包括已引导的虚拟机552,其包含在存储器502中,并且由处理器501来执行。可以从镜像文件532或者533之一来引导已引导虚拟机552。已引导虚拟机552可以包括已引导虚拟机(BVM)操作系统556以及一个或多个BVM应用550。已引导虚拟机552还可以包括代理模块554。
已引导虚拟机552可以访问BVM操作系统560的文件以及一个或多个BVM应用562的文件。BVM操作系统560的文件可以不是操作系统536或者538的文件的相同副本,并且一个或多个BVM应用562的文件可以不是镜像文件532或者533中存储的一个或多个应用535或者540的文件的相同副本。例如,如果BVM操作系统560的文件与一个或多个BVM应用562的文件是不同的,则访问第二属性534的任何配置命令544将不需要访问一个或多个BVM应用562的文件中所包括的第三属性564的值,即使第二属性和第三属性的名称是相同的,并且虚拟机552是从第二镜像文件533引导的。
为了防止该问题,应用命令模块508可以与虚拟机552中执行的代理模块554通信。代理模块554可被配置用于访问在已引导虚拟机552中执行的应用550之一的第三属性564。代理模块554可被配置用于得到或者设置第三属性564。
如果配置命令544包括动态配置命令,该命令可以执行应用命令模块508,其中应用命令模块508可以与代理模块554通信以访问第三属性564。在一些示例中,动态配置命令还可以修改第二镜像文件533中的第二属性534。
图6是示出了使用配置命令来配置虚拟机的示例操作的流程图。如前所述,虚拟机可以包括:硬件仿真软件;操作系统,其被配置用于执行硬件仿真软件;和至少一个应用,其被配置用于在操作系统内执行。此外,虚拟机具有与操作系统以及至少一个应用的配置设置相对应的属性。
例如,操作系统的配置属性可以是网络地址配置设置。在该示例中,具有该操作系统的虚拟机的属性是网络地址,其对应于网络地址配置设置。类似于操作系统,诸如web服务器的应用可以具有配置设置,诸如监听地址。在该示例中,具有该web服务器应用的虚拟机的属性是web服务器监听地址,其对应于web服务器应用的监听地址配置设置。
在块601处,操作开始,接收诸如XML配置命令的配置命令。可以从网络接收配置命令。可以使用诸如TCP/IP、HTTP、SOAP、专利技术等协议来接收命令。备选地,接收配置命令可以包括从文件读取配置命令。配置命令可被配置用于访问虚拟机的静态属性。在一些示例中,配置命令还可被配置用于访问虚拟机的动态属性。
一些示例中的操作可以包括:对在特定虚拟机上进行操作的所有配置命令存储到该虚拟机的镜像文件中所包括的文件中。继而,当在块601接收到配置命令时,从镜像文件中读取在特定虚拟机上操作的配置命令。
在此示例中,执行配置命令至少可以发生在块602、604、606和608。操作可以包括在块602检查任何未执行的剩余配置命令。如果没有未执行的剩余配置命令,则操作完成。
然而,如果在块602检测到了剩余的未执行配置命令,则操作可以包括在块604处检查将要执行的下一命令是否访问了虚拟机(VM)的属性。如果下一命令访问了虚拟机的属性,操作可以进行到在块606处执行虚拟机模块。
然而,如果下一命令没有访问虚拟机的属性,操作可以进行到在块608处检查内置命令模块以执行下一命令。内置命令模块可以独立于虚拟机的内容而实现。例如,可以将引导虚拟机实现为内置命令模块。
如果针对下一命令的内置命令模块存在,操作可以进行到在块610处执行该内置命令模块,并且返回块602。如果针对下一命令不存在内置命令,可以在块612指出错误,并且操作返回块602以检查任何剩余的未执行命令。在块604处的检查和在块612处的检查可以反序执行。
如上所述,操作可以进行到在块606处执行虚拟机模块。在块606处,操作可以包括确认虚拟机模块支持访问下一命令中指定的属性。操作可以包括执行支持访问下一命令中指定的属性的虚拟机模块上的方法。操作还可以包括使得该方法返回的属性值对后续执行的命令可用。
执行虚拟机模块上的方法可以包括在块614访问存储在镜像文件中的配置文件中的属性。例如,当下一命令是读取第一虚拟机的第一属性、并且第一属性是静态属性的情况下,操作可以包括从存储在第一虚拟机的第一镜像文件中的操作系统配置文件读取第一属性。第一属性可以是第一虚拟机的属性,因为操作系统具有存储在操作系统配置文件中的第一对应配置设置。
在另一示例中,当下一命令是可执行以写入第二虚拟机的第二属性的命令、并且第二属性是静态的情况下,操作可以包括将第二属性写入到存储在第二虚拟机的第二镜像文件中的应用配置文件。第二属性可以是第二虚拟机的属性,因为第二虚拟机的应用具有存储在应用配置文件中的对应配置设置。
在其他示例中,在块606处在虚拟机模块上执行方法可以不包括直接访问在块614中指明的配置文件中的虚拟机属性。例如,访问与操作系统设置相对应的虚拟机的属性可以包括:使用虚拟机管理系统(VMMS)来获取该属性。VMMS可以能够从镜像文件读取特定的操作系统属性,诸如媒体访问控制地址(MAC地址)或者以太网硬件地址(EHA)或者硬件地址或者适配器地址。
在又一示例中,在块606处在虚拟机模块上执行方法可以包括访问网络服务。例如,如果上面提到的第一属性是第一虚拟机的网络地址,可以在第一虚拟机引导时动态地获取该网络地址。然而,可能期望的是:在引导第一虚拟机之前访问网络地址属性。例如,如果在引导第一虚拟机之前要使用网络地址来设置第一虚拟机的其他属性,则可能期望的是:在引导之前访问网络地址。
在该示例中,访问网络地址属性可以包括访问网络服务。在块606处在虚拟机上执行方法可以包括:首先从第一虚拟机的第一镜像文件获取第一虚拟机的唯一标识符。该唯一标识符可以是MAC地址、主机名、或者能够从第一镜像文件获取的任何其他唯一标识符。操作继而可以包括与诸如动态主机配置协议(DHCP)的网络服务进行通信,以根据该唯一标识符来动态获取网络地址。
通过使用虚拟机配置系统,可以在很少或者没有人工配置的情况下快速配置虚拟机。只要编写了配置命令,便可以按照多种不同方式来配置虚拟机,而只需对配置命令进行很小的修改或者无需修改,并且需要很少的或者不需要其他人工配置。
尽管已经参考具体的示例性实施方式描述了本发明,但是显而易见,可以对这些实施方式进行各种修改和改变,而不脱离权利要求所记载的本发明的较宽泛的精神和范围。因此,应当将说明书和附图认为是示例性而非限制性意义的。

Claims (25)

1.一种用于配置虚拟机的计算设备,所述计算设备包括计算机可读存储器和处理器,其中所述计算机可读存储器包括计算机代码和多个镜像文件,所述计算机代码包括:
多个虚拟机模块,至少一个所述虚拟机模块可以通过所述处理器来执行,以修改与镜像文件相关联的至少一个软件程序的配置属性,其中:
每个所述镜像文件包括多个文件集,每个文件集与计算机系统的软件程序唯一地关联;
所述镜像文件中包括的文件集与所述至少一个软件程序唯一地关联,并且包括所述配置属性;
每个所述镜像文件可引导为虚拟机,其被配置用于仿真所述计算机系统的硬件;以及
所述至少一个所述虚拟机模块可执行以修改所述镜像文件,以修改包括在所述文件集中的所述配置属性。
2.根据权利要求1所述的计算设备,其中,所述至少一个软件程序是应用,并且所述镜像文件中包括的另一文件集与另一软件程序唯一地关联,所述另一软件程序包括操作系统。
3.根据权利要求1所述的计算设备,其中,所述计算机代码进一步包括:
容器模块,其可以通过所述处理器来执行,用以指引存储在所述计算机可读存储器中的多个配置命令的执行,其中,至少一个所述配置命令可以通过所述至少一个所述虚拟机模块来执行,以访问所述镜像文件,以访问所述至少一个软件程序的所述配置属性。
4.根据权利要求3所述的计算设备,其中,所述至少一个所述配置命令所访问的所述配置属性可由随后执行的配置命令访问。
5.根据权利要求1所述的计算设备,其中,每个所述虚拟机模块包括在所述镜像文件中一个不同的镜像文件中。
6.根据权利要求5所述的计算设备,其中,每个所述镜像文件包括声明文件,所述声明文件被配置用于指定每个所述镜像文件中所包括的所述虚拟机模块可访问的所述配置属性的集合。
7.根据权利要求3所述的计算设备,其中,所述配置命令包括移除命令,并且所述至少一个所述虚拟机模块可以执行以:响应于所述至少一个所述虚拟机模块从所述移除命令接收到预定值,而从所述镜像文件删除所述文件集。
8.根据权利要求3所述的计算设备,其中,所述至少一个所述虚拟机模块包括获得器子模块,并且所述至少一个所述虚拟机模块可执行以利用所述获得器子模块来从所述镜像文件读取所述配置属性。
9.根据权利要求3所述的计算设备,其中,所述至少一个所述虚拟机模块包括设置器子模块,并且所述至少一个所述虚拟机模块可执行以利用所述设置器子模块来设置所述镜像文件中的所述配置属性。
10.根据权利要求9所述的计算设备,其中,所述至少一个所述虚拟机模块包括通知子模块,并且所述至少一个所述虚拟机模块可执行以:利用所述通知子模块来设置在已引导虚拟机中执行的所述软件程序的所述配置属性。
11.根据权利要求3所述的计算设备,其中,所述容器模块可通过处理器来执行以:指引所述配置命令的第一子集与所述配置命令的第二子集并行执行。
12.一种用于配置虚拟机的计算设备,所述计算设备包括:
存储器;
与所述存储器通信的处理器;
存储在所述存储器中的多个镜像文件,其包括第一镜像文件和第二镜像文件,其中:
所述第一镜像文件和所述第二镜像文件的每一个都包括多个软件程序,所述软件程序包括操作系统和至少一个应用;
所述处理器可执行以从至少一个所述镜像文件引导虚拟机;以及
所述虚拟机被配置用于仿真计算机系统的硬件,以便在所述
虚拟机中执行所述至少一个所述镜像文件的所述软件程序;以及
多个配置命令,其包括第一配置命令和第二配置命令,每个所述配置命令存储在所述存储器中,并且可以通过所述处理器来执行,其中,所述第一配置命令可执行以从所述第一镜像文件读取第一软件程序的第一属性,并且所述第二配置命令可执行以向所述第二镜像文件写入以便将第二软件程序的第二属性设置为利用所述第一配置命令获取的所述第一属性。
13.根据权利要求12所述的计算设备,其中,所述第一软件程序是所述第一镜像文件的所述操作系统,所述第二软件程序是所述第二镜像文件中包括的所述至少一个应用,并且所述第二配置命令可执行以将所述第二属性写入到所述第二镜像文件中包括的所述至少一个应用的文件。
14.根据权利要求12所述的计算设备,进一步包括:
多个命令模块,其包括应用命令模块,每个所述命令模块存储在所述存储器中,并且可通过所述处理器来执行以实现至少一个所述配置命令,其中,所述应用命令模块被配置用于实现一个或多个所述配置命令,以访问所述第二软件程序的属性。
15.根据权利要求14所述的计算设备,进一步包括:
容器模块,其存储在存储器中,并且可通过所述处理器来执行以:获取所述配置命令、将所述应用命令模块装载到所述存储器中,以及指引所述应用命令模块来执行所述一个或多个所述配置命令。
16.根据权利要求12所述的计算设备,进一步包括解析器模块,其存储在所述存储器中,并且可通过所述处理器来执行以:解析所述配置命令的表示以识别每个所述配置命令、将所述配置命令编组为所确定的顺序,以及识别所述表示中的语法错误和语义错误。
17.根据权利要求12所述的计算设备,其中,所述配置命令进一步包括实例化命令,其可执行以将标识符映射至所述第一镜像文件的副本;以及被配置用于参考所述标识符的任意一个或多个所述配置命令可执行以访问所述副本中包括的、而不是所述第一镜像文件中包括的、所述软件程序的文件。
18.根据权利要求12所述的计算设备,其中,所述配置命令进一步包括引导虚拟机命令,其可执行以从所述至少一个所述镜像文件来引导所述虚拟机。
19.根据权利要求15所述的计算设备,其中,所述配置命令进一步包括设置变量命令,其可执行以将所述存储器中的变量设置为预定的值;以及所述容器模块可执行以使得所述预定的值对于后续执行的配置命令可用。
20.根据权利要求12所述的计算设备,进一步包括已引导虚拟机,其包含在所述存储器中并可由所述处理器来执行,其中,所述已引导虚拟机是从所述第二镜像文件被引导的;在所述已引导虚拟机中,代理模块存储在所述存储器中,并且可通过所述处理器执行,所述代理模块被配置用于设置在所述已引导虚拟机中执行的所述第二软件程序的第三属性;以及所述配置命令进一步包括动态配置命令,所述动态配置命令可执行以与所述代理模块通信,并且进一步可执行以通过与所述代理模块通信来设置所述第三属性。
21.一种用于配置多个虚拟机的方法,虚拟机包括:硬件仿真软件;操作系统,其被配置用于在所述硬件仿真软件上执行;以及至少一个应用,其被配置用于在所述操作系统内执行,所述方法包括:
接收多个配置命令,所述配置命令包括:第一命令,其可执行以读取第一虚拟机的第一属性;以及第二命令,其可执行以写入第二虚拟机的第二属性,其中,每个所述虚拟机包括与每个所述虚拟机的所述操作系统的以及所述至少一个应用的配置设置相对应的属性;
执行所述第一命令,以读取所述第一属性;
使得由所述第一命令的执行而读取的所述第一属性对于随后执行的命令可用;以及
执行所述第二命令,其中,所述第二命令的执行包括:将所述第一属性写入到所述第二虚拟机的镜像文件中存储的配置文件;以及其中,所述第二虚拟机的应用从所述配置文件读取相应配置设置。
22.根据权利要求21所述的方法,其中,所述镜像文件是第一镜像文件,所述相应配置设置是第一相应配置设置,并且执行所述第一命令包括:从所述第一虚拟机的第二镜像文件中存储的操作系统配置文件读取所述第一属性,并且所述第一虚拟机的已配置操作系统从所述操作系统配置文件读取第二相应配置设置。
23.根据权利要求21所述的方法,其中,所述镜像文件是第一镜像文件,所述相应配置设置是第一相应配置设置,并且执行所述第一命令包括:使用虚拟机管理系统来读取所述第一属性,并且所述虚拟机管理系统从所述第一虚拟机的第二镜像文件读取所述第一虚拟机的已配置操作系统的第二相应配置设置。
24.根据权利要求21所述的方法,其中,所述镜像文件是第一镜像文件,所述第一属性是所述第一虚拟机的网络地址,并且执行所述第一命令包括:
从所述第一虚拟机的第二镜像文件获取所述第一虚拟机的唯一标识符;以及
与服务器通信,以根据所述唯一标识符来获取所述第一虚拟机的所述网络地址。
25.根据权利要求22所述的方法,所述方法进一步包括:
将在所述第一虚拟机上操作的全部所述配置命令存储到包括在所述第一虚拟机的所述第二镜像文件中的文件中。
CN2008101849034A 2007-12-28 2008-12-19 虚拟机配置系统 Active CN101470621B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/966,719 2007-12-28
US11/966,719 US8181174B2 (en) 2007-12-28 2007-12-28 Virtual machine configuration system

Publications (2)

Publication Number Publication Date
CN101470621A true CN101470621A (zh) 2009-07-01
CN101470621B CN101470621B (zh) 2012-09-26

Family

ID=40541347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101849034A Active CN101470621B (zh) 2007-12-28 2008-12-19 虚拟机配置系统

Country Status (5)

Country Link
US (2) US8181174B2 (zh)
EP (1) EP2075694B1 (zh)
CN (1) CN101470621B (zh)
BR (1) BRPI0805676A2 (zh)
CA (1) CA2645708C (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102122274A (zh) * 2010-01-10 2011-07-13 微软公司 虚拟化解决方案的自动化配置和安装
CN102214118A (zh) * 2010-04-08 2011-10-12 中国移动通信集团公司 一种虚拟机控制方法、系统及装置
CN102214128A (zh) * 2010-04-01 2011-10-12 埃森哲环球服务有限公司 多用途恢复环境
CN102238208A (zh) * 2010-04-29 2011-11-09 国际商业机器公司 用于激活虚拟方案中的虚拟机的方法和装置
CN102419753A (zh) * 2010-09-28 2012-04-18 联想(北京)有限公司 信息处理设备、信息处理方法和信息处理系统
CN102479096A (zh) * 2010-11-30 2012-05-30 国际商业机器公司 虚拟机部署规划方法及相关设备
CN102487380A (zh) * 2010-12-01 2012-06-06 中兴通讯股份有限公司 桌面虚拟化终端托管方法及系统
CN102567075A (zh) * 2011-12-05 2012-07-11 中标软件有限公司 一种云计算环境中虚拟机上下文设置方法
CN102597962A (zh) * 2009-10-30 2012-07-18 国际商业机器公司 用于虚拟计算环境中的故障管理的方法和系统
CN102713825A (zh) * 2009-12-16 2012-10-03 赛门铁克公司 在虚拟环境中的存储可视化
CN103229142A (zh) * 2010-11-23 2013-07-31 国际商业机器公司 管理软件产品虚拟镜像的先决条件的方法、计算机程序和系统
CN103460168A (zh) * 2011-01-27 2013-12-18 韦斯技术有限公司 利用可扩展标记语言(XML)配置对具有基于windows的嵌入图像的特定目的客户机进行配置和定制
CN104885058A (zh) * 2013-03-15 2015-09-02 甲骨文国际公司 在虚拟组件生成器环境中进行通用产品连线的系统和方法
CN105162667A (zh) * 2015-09-10 2015-12-16 华为技术有限公司 虚拟机配置方法和装置
CN105677444A (zh) * 2015-12-31 2016-06-15 联想(北京)有限公司 一种启动虚拟机的方法和装置
CN106528269A (zh) * 2016-11-08 2017-03-22 西安电子科技大学 轻量级的虚拟机访问控制系统及控制方法
CN107357637A (zh) * 2017-07-27 2017-11-17 郑州云海信息技术有限公司 一种配置vcp插件环境的方法
CN107463427A (zh) * 2017-06-29 2017-12-12 北京北信源软件股份有限公司 一种虚拟机操作系统类型与版本的获取方法与装置
CN107783814A (zh) * 2016-08-29 2018-03-09 中国石油化工股份有限公司 软件资产集中保护方法及系统
CN108369622A (zh) * 2015-12-18 2018-08-03 亚马逊技术股份有限公司 软件容器注册表服务
CN109284168A (zh) * 2018-09-10 2019-01-29 福建星瑞格软件有限公司 一种大数据平台环境配置与业务数据分离管理方法及系统
CN109933411A (zh) * 2019-03-31 2019-06-25 山东超越数控电子股份有限公司 一种在线修改虚拟机内部配置系统及方法
CN110489209A (zh) * 2019-07-24 2019-11-22 联想(北京)有限公司 一种信息处理方法及设备
CN113168353A (zh) * 2018-11-30 2021-07-23 微软技术许可有限责任公司 具有共享的基本操作系统的相同类型子系统的并行执行
CN113985819A (zh) * 2020-07-09 2022-01-28 Abb瑞士股份有限公司 模块化装置的配置
WO2023051357A1 (zh) * 2021-09-28 2023-04-06 华为技术有限公司 一种虚拟设备运行方法

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856782B2 (en) 2007-03-01 2014-10-07 George Mason Research Foundation, Inc. On-demand disposable virtual work system
US8374929B1 (en) 2007-08-06 2013-02-12 Gogrid, LLC System and method for billing for hosted services
US8935687B2 (en) * 2008-02-29 2015-01-13 Red Hat, Inc. Incrementally updating a software appliance
US9092243B2 (en) 2008-05-28 2015-07-28 Red Hat, Inc. Managing a software appliance
US10657466B2 (en) 2008-05-29 2020-05-19 Red Hat, Inc. Building custom appliances in a cloud-based network
US8868721B2 (en) 2008-05-29 2014-10-21 Red Hat, Inc. Software appliance management using broadcast data
US8943496B2 (en) * 2008-05-30 2015-01-27 Red Hat, Inc. Providing a hosted appliance and migrating the appliance to an on-premise environment
US9032367B2 (en) 2008-05-30 2015-05-12 Red Hat, Inc. Providing a demo appliance and migrating the demo appliance to a production appliance
US20100024031A1 (en) * 2008-07-24 2010-01-28 Sap Portals Israel Ltd System and method for transforming hierarchical objects
US9477570B2 (en) 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US9098698B2 (en) * 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US8656018B1 (en) 2008-09-23 2014-02-18 Gogrid, LLC System and method for automated allocation of hosting resources controlled by different hypervisors
JP5166318B2 (ja) * 2009-02-24 2013-03-21 株式会社東芝 情報を処理する装置、方法およびプログラム
US8413141B2 (en) * 2009-04-23 2013-04-02 International Business Machines Corporation Copying segments of virtual resource definition to create and deploy a virtual resource on a physical resource
US8639787B2 (en) 2009-06-01 2014-01-28 Oracle International Corporation System and method for creating or reconfiguring a virtual server image for cloud deployment
US8856294B2 (en) * 2009-06-01 2014-10-07 Oracle International Corporation System and method for converting a Java application into a virtual server image for cloud deployment
US8776053B2 (en) * 2009-09-25 2014-07-08 Oracle International Corporation System and method to reconfigure a virtual machine image suitable for cloud deployment
US8839422B2 (en) 2009-06-30 2014-09-16 George Mason Research Foundation, Inc. Virtual browsing environment
US8769529B2 (en) 2009-07-24 2014-07-01 Novell, Inc. Generating and automatically loading reduced operating system based on usage pattern of applications
JP5427504B2 (ja) * 2009-08-03 2014-02-26 株式会社エヌ・ティ・ティ・データ サービス実行装置、サービス実行方法
US8938524B2 (en) 2011-01-27 2015-01-20 Wyse Technology L.L.C. Comparing and provisioning configurations for a client having a windows-based embedded image
US9274851B2 (en) * 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
US8683465B2 (en) 2009-12-18 2014-03-25 International Business Machines Corporation Virtual image deployment with a warm cache
US8140735B2 (en) * 2010-02-17 2012-03-20 Novell, Inc. Techniques for dynamic disk personalization
US8631405B2 (en) * 2010-02-26 2014-01-14 Red Hat Israel, Ltd. Identification and placement of new virtual machines based on similarity of software configurations with hosted virtual machines
US8650563B2 (en) * 2010-02-26 2014-02-11 Red Hat Israel, Ltd. Identification and placement of new virtual machines to reduce memory consumption based on shared images with hosted virtual machines
US8503289B2 (en) 2010-03-19 2013-08-06 Brocade Communications Systems, Inc. Synchronizing multicast information for linecards
US8769155B2 (en) 2010-03-19 2014-07-01 Brocade Communications Systems, Inc. Techniques for synchronizing application object instances
US9465601B2 (en) 2010-04-20 2016-10-11 International Business Machines Corporation Pluggable activation engine extensions via virtual disks
US8601226B1 (en) 2010-05-20 2013-12-03 Gogrid, LLC System and method for storing server images in a hosting system
US10715457B2 (en) * 2010-06-15 2020-07-14 Oracle International Corporation Coordination of processes in cloud computing environments
WO2011159842A2 (en) 2010-06-15 2011-12-22 Nimbula, Inc. Virtual computing infrastructure
US8352415B2 (en) * 2010-06-15 2013-01-08 International Business Machines Corporation Converting images in virtual environments
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
US8495418B2 (en) 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
US20120054742A1 (en) * 2010-09-01 2012-03-01 Microsoft Corporation State Separation Of User Data From Operating System In A Pooled VM Environment
US8707301B2 (en) 2010-11-08 2014-04-22 Microsoft Corporation Insertion of management agents during machine deployment
US8495352B2 (en) 2010-12-08 2013-07-23 International Business Machines Corporation System and method for instantiation of distributed applications from disk snapshots
US9037633B2 (en) 2011-01-27 2015-05-19 Wyse Technology L.L.C. Transferring configuration data from a public cloud server and applying onto a mobile client
US8700888B2 (en) 2011-01-27 2014-04-15 Wyse Technology L.L.C. Specific-purpose client with configuration history for self-provisioning of configuration and obviating reinstallation of embedded image
US8751778B2 (en) 2011-01-27 2014-06-10 Wyse Technology L.L.C. Generating, validating and applying custom extensible markup language (XML) configuration on a client having a windows-based embedded image
US8495183B2 (en) 2011-01-27 2013-07-23 Wyse Technology Inc. State-based provisioning of a client having a windows-based embedded image
US8560818B2 (en) 2011-01-27 2013-10-15 Wyse Technolgoy Inc. Automatic retrieval, parsing and application of configuration for a specific-purpose client having a windows-based embedded image with a write-filter
US8725997B2 (en) 2011-01-27 2014-05-13 Wyse Technology L.L.C. Self-provisioning of configuration for a specific-purpose client having a windows-based embedded image with a write-filter
US9288117B1 (en) 2011-02-08 2016-03-15 Gogrid, LLC System and method for managing virtual and dedicated servers
US20120227098A1 (en) * 2011-03-03 2012-09-06 Microsoft Corporation Sharing user id between operating system and application
US8972979B2 (en) 2011-03-24 2015-03-03 International Business Machines Corporation Configuration of virtual appliances
JP5772127B2 (ja) * 2011-03-25 2015-09-02 富士通株式会社 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム
US8806483B2 (en) * 2011-04-13 2014-08-12 International Business Machines Corporation Determining starting values for virtual machine attributes in a networked computing environment
FR2977116A1 (fr) * 2011-06-27 2012-12-28 France Telecom Procede de fourniture de service d'execution de logiciel a la demande
US8880657B1 (en) 2011-06-28 2014-11-04 Gogrid, LLC System and method for configuring and managing virtual grids
US8812830B2 (en) 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
US9712599B2 (en) * 2011-10-03 2017-07-18 International Business Machines Corporation Application peak load processing
US8631423B1 (en) 2011-10-04 2014-01-14 Symantec Corporation Translating input/output calls in a mixed virtualization environment
WO2013082437A1 (en) 2011-12-02 2013-06-06 Invincia, Inc. Methods and apparatus for control and detection of malicious content using a sandbox environment
EP2812809A4 (en) 2012-02-10 2016-05-25 Oracle Int Corp FRAMEWORK FOR CLOUD COMPUTING SERVICES
US10013269B2 (en) * 2012-02-22 2018-07-03 Vmware, Inc. Component framework for deploying virtual machines using service provisioning information
US9292319B2 (en) 2012-03-28 2016-03-22 Google Inc. Global computing interface
US9304800B1 (en) * 2012-06-28 2016-04-05 Amazon Technologies, Inc. Using virtual provisioning machines to provision devices
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
CN103716347B (zh) * 2012-09-29 2017-06-23 国际商业机器公司 建立虚拟机的方法、装置和云服务器
US9208041B2 (en) * 2012-10-05 2015-12-08 International Business Machines Corporation Dynamic protection of a master operating system image
US9286051B2 (en) 2012-10-05 2016-03-15 International Business Machines Corporation Dynamic protection of one or more deployed copies of a master operating system image
US9311070B2 (en) 2012-10-05 2016-04-12 International Business Machines Corporation Dynamically recommending configuration changes to an operating system image
US8990772B2 (en) 2012-10-16 2015-03-24 International Business Machines Corporation Dynamically recommending changes to an association between an operating system image and an update group
US9183062B2 (en) 2013-02-25 2015-11-10 International Business Machines Corporation Automated application reconfiguration
GB2516842A (en) * 2013-07-31 2015-02-11 Ibm Deployment of software images with distinct configuration logic
WO2015030731A1 (en) * 2013-08-27 2015-03-05 Empire Technology Development Llc Speculative allocation of instances
US9851993B2 (en) * 2013-09-24 2017-12-26 International Business Machines Corporation Virtual machine template optimization
GB2518894A (en) 2013-10-07 2015-04-08 Ibm A method and a system for operating programs on a computer cluster
US9354894B2 (en) 2013-10-11 2016-05-31 International Business Machines Corporation Pluggable cloud enablement boot device and method that determines hardware resources via firmware
US10031761B2 (en) 2013-10-11 2018-07-24 International Business Machines Corporation Pluggable cloud enablement boot device and method
US9384006B2 (en) * 2013-10-11 2016-07-05 Globalfoundries Inc. Apparatus and methods for automatically reflecting changes to a computing solution into an image for the computing solution
US9628335B2 (en) * 2013-11-01 2017-04-18 Sap Se Building and transporting centrally modified software systems
US9959106B2 (en) * 2013-11-14 2018-05-01 International Business Machines Corporation Sharing of portable initialized objects between computing platforms
US10503531B2 (en) * 2013-12-24 2019-12-10 Red Hat, Inc. Loading runtime configuration files into virtual machine instances which when executed transform a stored virtual machine image into a customized configuration
US9529628B2 (en) * 2014-03-21 2016-12-27 Vmware, Inc. Binary editing of applications executed by virtual machines
US9569192B2 (en) * 2014-03-31 2017-02-14 Red Hat Israel, Ltd. Configuring dependent services associated with a software package on a host system
US9454439B2 (en) 2014-05-28 2016-09-27 Unitrends, Inc. Disaster recovery validation
US9448834B2 (en) * 2014-06-27 2016-09-20 Unitrends, Inc. Automated testing of physical servers using a virtual machine
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
US9507623B2 (en) * 2014-12-15 2016-11-29 Vmware, Inc. Handling disk state inheritance for forked virtual machines
WO2016111700A1 (en) * 2015-01-09 2016-07-14 Hewlett Packard Enterprise Development Lp Obtaining a network address based on an identifier
US9087001B1 (en) * 2015-01-16 2015-07-21 Storagecraft Technology Corporation Virtualizing multiple networked machines using a predetermined network recovery policy
US9898272B1 (en) * 2015-12-15 2018-02-20 Symantec Corporation Virtual layer rollback
US11132450B2 (en) * 2016-02-26 2021-09-28 Red Hat, Inc. Accessing file systems in a virtual environment
US10152386B1 (en) 2016-07-29 2018-12-11 Nutanix, Inc. Efficient disaster rollback across heterogeneous storage systems
US10783046B2 (en) 2016-11-22 2020-09-22 Nutanix, Inc. Executing resource management operations in distributed computing systems
US10346189B2 (en) * 2016-12-05 2019-07-09 Red Hat, Inc. Co-locating containers based on source to improve compute density
US20180239628A1 (en) * 2017-02-22 2018-08-23 Nutanix, Inc. Hypervisor agnostic customization of virtual machines
US11036422B2 (en) * 2017-08-07 2021-06-15 Datto, Inc. Prioritization and source-nonspecific based virtual machine recovery apparatuses, methods and systems
JP6781126B2 (ja) * 2017-09-22 2020-11-04 日本電信電話株式会社 仮想マシン設定投入システム、仮想マシン設定投入方法、及びプログラム
DE102018112364A1 (de) * 2018-05-23 2019-11-28 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum Bereitstellen anwendungsorientierter Software sowie Computersystem
US11334364B2 (en) * 2019-12-16 2022-05-17 Microsoft Technology Licensing, Llc Layered composite boot device and file system for operating system booting in file system virtualization environments
US11838221B2 (en) * 2022-01-13 2023-12-05 Verizon Patent And Licensing Inc. Systems and methods for multi-cloud virtualized instance deployment and execution
JP2023111470A (ja) * 2022-01-31 2023-08-10 ブラザー工業株式会社 印刷装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606681A (en) * 1994-03-02 1997-02-25 Eec Systems, Inc. Method and device implementing software virtual disk in computer RAM that uses a cache of IRPs to increase system performance
US6802062B1 (en) * 1997-04-01 2004-10-05 Hitachi, Ltd. System with virtual machine movable between virtual machine systems and control method
US8020176B2 (en) * 2000-04-06 2011-09-13 Infineon Technologies Ag Virtual machine interface for hardware reconfigurable and software programmable processors
US20030154284A1 (en) * 2000-05-31 2003-08-14 James Bernardin Distributed data propagator
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US7577951B2 (en) * 2002-05-30 2009-08-18 Hewlett-Packard Development Company, L.P. Performance of computer programs while they are running
US6912617B2 (en) 2002-07-17 2005-06-28 Sun Microsystems, Inc. Altering virtual machine execution parameters at runtime
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US7680957B1 (en) * 2003-05-09 2010-03-16 Symantec Operating Corporation Computer system configuration representation and transfer
US20050289538A1 (en) * 2004-06-23 2005-12-29 International Business Machines Corporation Deploying an application software on a virtual deployment target
GB2419702A (en) * 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures which can be suspended and later reactivated
US20060184936A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method using virtual machines for decoupling software from management and control systems
US20070006225A1 (en) 2005-06-23 2007-01-04 Microsoft Corporation System and method for converting a target computing device to a virtual machine
US7483757B2 (en) * 2005-07-22 2009-01-27 Honeywell International, Inc. Control system migration
US8327353B2 (en) * 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US20070101323A1 (en) 2005-10-28 2007-05-03 Microsoft Corporation Automatic virtual machine adjustments to network changes
US7870538B2 (en) * 2005-12-30 2011-01-11 Sap Ag Configuration inheritance in system configuration
US7779389B2 (en) * 2005-12-30 2010-08-17 Sap Ag System and method for dynamic VM settings
US8417796B2 (en) 2006-01-17 2013-04-09 Leostream Corporation System and method for transferring a computing environment between computers of dissimilar configurations
US8225314B2 (en) 2006-03-31 2012-07-17 Intel Corporation Support for personal computing in a public computing infrastructure by using a single VM delta image for each VM base image utilized by a user
US7653794B2 (en) 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
US20080098309A1 (en) * 2006-10-24 2008-04-24 Microsoft Corporation Managing virtual machines and hosts by property
US8336046B2 (en) * 2006-12-29 2012-12-18 Intel Corporation Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources
US8108855B2 (en) * 2007-01-02 2012-01-31 International Business Machines Corporation Method and apparatus for deploying a set of virtual software resource templates to a set of nodes
US8365166B2 (en) * 2007-02-20 2013-01-29 Novell, Inc. System and method for automated provisioning of VMware image instances
US8011010B2 (en) * 2007-04-17 2011-08-30 Microsoft Corporation Using antimalware technologies to perform offline scanning of virtual machine images
US8806479B2 (en) * 2007-06-05 2014-08-12 International Business Machines Corporation Creating an application virtual machine image by isolating installation artifacts in shadow area
US8205194B2 (en) * 2007-06-29 2012-06-19 Microsoft Corporation Updating offline virtual machines or VM images

Cited By (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102597962B (zh) * 2009-10-30 2015-07-22 国际商业机器公司 用于虚拟计算环境中的故障管理的方法和系统
CN102597962A (zh) * 2009-10-30 2012-07-18 国际商业机器公司 用于虚拟计算环境中的故障管理的方法和系统
US8898663B2 (en) 2009-12-16 2014-11-25 Symantec Corporation Storage visibility in virtual environments
CN102713825B (zh) * 2009-12-16 2016-03-30 赛门铁克公司 提供存储信息的方法和系统
CN102713825A (zh) * 2009-12-16 2012-10-03 赛门铁克公司 在虚拟环境中的存储可视化
US9760360B2 (en) 2010-01-10 2017-09-12 Microsoft Technology Licensing, Llc Automated configuration and installation of virtualized solutions
US10599411B2 (en) 2010-01-10 2020-03-24 Microsoft Technology Licensing, Llc Automated configuration and installation of virtualized solutions
CN102122274A (zh) * 2010-01-10 2011-07-13 微软公司 虚拟化解决方案的自动化配置和安装
CN102122274B (zh) * 2010-01-10 2015-11-25 微软技术许可有限责任公司 虚拟化解决方案的自动化配置和安装
US9134982B2 (en) 2010-01-10 2015-09-15 Microsoft Technology Licensing, Llc Automated configuration and installation of virtualized solutions
CN102214128B (zh) * 2010-04-01 2014-07-30 埃森哲环球服务有限公司 多用途恢复环境
CN102214128A (zh) * 2010-04-01 2011-10-12 埃森哲环球服务有限公司 多用途恢复环境
CN102214118A (zh) * 2010-04-08 2011-10-12 中国移动通信集团公司 一种虚拟机控制方法、系统及装置
US8555277B2 (en) 2010-04-29 2013-10-08 International Business Machines Corporation Method and apparatus for activating a virtual machine in a virtual solution
CN102238208A (zh) * 2010-04-29 2011-11-09 国际商业机器公司 用于激活虚拟方案中的虚拟机的方法和装置
CN102419753A (zh) * 2010-09-28 2012-04-18 联想(北京)有限公司 信息处理设备、信息处理方法和信息处理系统
CN102419753B (zh) * 2010-09-28 2014-02-12 联想(北京)有限公司 信息处理设备、信息处理方法和信息处理系统
CN103229142B (zh) * 2010-11-23 2017-02-22 国际商业机器公司 管理软件产品虚拟镜像的先决条件的方法、计算机程序和系统
CN103229142A (zh) * 2010-11-23 2013-07-31 国际商业机器公司 管理软件产品虚拟镜像的先决条件的方法、计算机程序和系统
CN102479096B (zh) * 2010-11-30 2014-08-27 国际商业机器公司 虚拟机部署规划方法及相关设备
CN102479096A (zh) * 2010-11-30 2012-05-30 国际商业机器公司 虚拟机部署规划方法及相关设备
CN102487380A (zh) * 2010-12-01 2012-06-06 中兴通讯股份有限公司 桌面虚拟化终端托管方法及系统
CN103460168B (zh) * 2011-01-27 2017-12-22 韦斯技术有限公司 配置和定制具有基于windows的嵌入图像的特定目的客户机
CN103460168A (zh) * 2011-01-27 2013-12-18 韦斯技术有限公司 利用可扩展标记语言(XML)配置对具有基于windows的嵌入图像的特定目的客户机进行配置和定制
CN102567075A (zh) * 2011-12-05 2012-07-11 中标软件有限公司 一种云计算环境中虚拟机上下文设置方法
CN102567075B (zh) * 2011-12-05 2015-01-21 中标软件有限公司 一种云计算环境中虚拟机上下文设置方法
CN104885058A (zh) * 2013-03-15 2015-09-02 甲骨文国际公司 在虚拟组件生成器环境中进行通用产品连线的系统和方法
CN104885058B (zh) * 2013-03-15 2018-06-26 甲骨文国际公司 在虚拟组件生成器环境中进行通用产品连线的系统和方法
CN105162667A (zh) * 2015-09-10 2015-12-16 华为技术有限公司 虚拟机配置方法和装置
CN105162667B (zh) * 2015-09-10 2018-08-14 华为技术有限公司 虚拟机配置方法和装置
CN108369622B (zh) * 2015-12-18 2021-11-05 亚马逊技术股份有限公司 软件容器注册表服务
CN108369622A (zh) * 2015-12-18 2018-08-03 亚马逊技术股份有限公司 软件容器注册表服务
CN105677444B (zh) * 2015-12-31 2019-02-05 联想(北京)有限公司 一种启动虚拟机的方法和装置
CN105677444A (zh) * 2015-12-31 2016-06-15 联想(北京)有限公司 一种启动虚拟机的方法和装置
CN107783814A (zh) * 2016-08-29 2018-03-09 中国石油化工股份有限公司 软件资产集中保护方法及系统
CN106528269B (zh) * 2016-11-08 2019-05-21 西安电子科技大学 轻量级的虚拟机访问控制系统及控制方法
CN106528269A (zh) * 2016-11-08 2017-03-22 西安电子科技大学 轻量级的虚拟机访问控制系统及控制方法
CN107463427A (zh) * 2017-06-29 2017-12-12 北京北信源软件股份有限公司 一种虚拟机操作系统类型与版本的获取方法与装置
CN107357637A (zh) * 2017-07-27 2017-11-17 郑州云海信息技术有限公司 一种配置vcp插件环境的方法
CN109284168A (zh) * 2018-09-10 2019-01-29 福建星瑞格软件有限公司 一种大数据平台环境配置与业务数据分离管理方法及系统
CN113168353A (zh) * 2018-11-30 2021-07-23 微软技术许可有限责任公司 具有共享的基本操作系统的相同类型子系统的并行执行
CN109933411A (zh) * 2019-03-31 2019-06-25 山东超越数控电子股份有限公司 一种在线修改虚拟机内部配置系统及方法
CN109933411B (zh) * 2019-03-31 2021-03-30 山东超越数控电子股份有限公司 一种在线修改虚拟机内部配置系统及方法
CN110489209A (zh) * 2019-07-24 2019-11-22 联想(北京)有限公司 一种信息处理方法及设备
CN113985819A (zh) * 2020-07-09 2022-01-28 Abb瑞士股份有限公司 模块化装置的配置
WO2023051357A1 (zh) * 2021-09-28 2023-04-06 华为技术有限公司 一种虚拟设备运行方法

Also Published As

Publication number Publication date
BRPI0805676A2 (pt) 2009-08-25
CA2645708C (en) 2013-01-29
US8181174B2 (en) 2012-05-15
US20090172662A1 (en) 2009-07-02
EP2075694B1 (en) 2016-10-12
CN101470621B (zh) 2012-09-26
CA2645708A1 (en) 2009-06-28
US20120204173A1 (en) 2012-08-09
EP2075694A1 (en) 2009-07-01

Similar Documents

Publication Publication Date Title
CN101470621B (zh) 虚拟机配置系统
US9811360B2 (en) Dynamic determination of application server runtime classloading
US6871345B1 (en) Self managing software agents with introspection
US20070074191A1 (en) Software executables having virtual hardware, operating systems, and networks
US20070074192A1 (en) Computing platform having transparent access to resources of a host platform
US20070283324A1 (en) System and method for creating programs that comprise several execution layers
US20070067769A1 (en) Method and apparatus for providing cross-platform hardware support for computer platforms
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
US20070050765A1 (en) Programming language abstractions for creating and controlling virtual computers, operating systems and networks
US10684846B2 (en) Using semantic annotations to control compatibility behaviors
US20070282801A1 (en) Dynamically creating and executing an application lifecycle management operation
CN111857801B (zh) 一种移动应用的构建方法
CN105516154A (zh) 应用于SEAndroid系统的安全策略配置方法及装置
CN104731622A (zh) 一种应用程序的加载方法、装置和移动终端
CN113312046A (zh) 子应用页面处理方法、装置和计算机设备
CN108228266B (zh) 一种Android插件框架下不同插件间启动Fragment组件的方法和装置
CN115390846A (zh) 编译构建方法、装置、电子设备和存储介质
Haja et al. Location, proximity, affinity–the key factors in FaaS
WO2022097020A1 (en) Updated shared library reloading without stopping execution of an application
Tucker et al. Applying module system research to package management
RU2521265C2 (ru) Система и способ автоматической обработки системных ошибок программного обеспечения
CN115640005A (zh) 混合应用的生成方法及装置
CN116991405A (zh) 一种渐进迁移遗留项目的微前端方法
CN117667157A (zh) 热更新方法和系统、客户端应用的更新方法、介质及设备
CN117539495A (zh) 一种基于js解析引擎的通用嵌入式控制系统和控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: ACCENTURE INTERNATIONAL CO., LTD.

Free format text: FORMER OWNER: ACCENTURE GLOBAL SERVICES GMBH

Effective date: 20101206

Owner name: ACCENTURE GLOBAL SERVICES GMBH

Free format text: FORMER OWNER: ACCENTURE INTERNATIONAL CO., LTD.

Effective date: 20101206

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: SCHAFFHAUSEN, SWITZERLAND TO: LUXEMBOURG

Free format text: CORRECT: ADDRESS; FROM: LUXEMBOURG TO: DUBLIN, IRELAND

TA01 Transfer of patent application right

Effective date of registration: 20101206

Address after: Dublin, Ireland

Applicant after: ACCENTURE GLOBAL SERVICES Ltd.

Address before: Luxemburg Luxemburg

Applicant before: Accenture international LLC

Effective date of registration: 20101206

Address after: Luxemburg Luxemburg

Applicant after: Accenture international LLC

Address before: Schaffhausen

Applicant before: ACCENTURE GLOBAL SERVICES Ltd.

C14 Grant of patent or utility model
GR01 Patent grant