CN101211272A - 动态虚拟机生成 - Google Patents

动态虚拟机生成 Download PDF

Info

Publication number
CN101211272A
CN101211272A CNA2007103072285A CN200710307228A CN101211272A CN 101211272 A CN101211272 A CN 101211272A CN A2007103072285 A CNA2007103072285 A CN A2007103072285A CN 200710307228 A CN200710307228 A CN 200710307228A CN 101211272 A CN101211272 A CN 101211272A
Authority
CN
China
Prior art keywords
clone
resource
hardware
maker
hardware resource
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
CNA2007103072285A
Other languages
English (en)
Other versions
CN101211272B (zh
Inventor
M·鲍曼
R·C·克瑙尔哈泽
P·布雷特
R·亚当斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101211272A publication Critical patent/CN101211272A/zh
Application granted granted Critical
Publication of CN101211272B publication Critical patent/CN101211272B/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Abstract

方法和装置实现通过应用或服务逻辑发起的虚拟机(VM)克隆的创建。应用程序从应用程序的运行时的运行中请求生成VM克隆。由VM生成器服务于该请求,VM生成器识别要克隆的VM的状态,并且识别在其上创建VM克隆的硬件资源。根据在哪些资源上生成VM克隆的确定,VM生成器在所确定的资源上创建VM克隆,其中具有已识别的状态。在一个实施例中,为各资源选择资源拷贝或引用拷贝的使用情况。在一个实施例中,VM生成器在确定实例化VM克隆的位置时考虑多个因素。参数可包括由应用程序发送的提示或优选项参数和/或资源负荷或性能。

Description

动态虚拟机生成
技术领域
本发明的实施例涉及虚拟机技术,更具体来说,涉及虚拟机的动态创建。
背景技术
随着虚拟机用于使多个独立操作环境能够在可用硬件上运行,虚拟化的使用不断增加。按照传统方式,虚拟机创建通过通常涉及人类管理员配置和实现各虚拟机的管理动作来进行。在一些情况中,一个或多个操作是可描述的,它们允许代表可配置和实现虚拟机(例如可调用的服务)的管理员运行脚本。传统的虚拟机创建所需的用户输入减少了在工作环境中使用虚拟化的机会;特别是在虚拟机用于专门目的(例如测试、运行隔离的进程)的方面,其中建立虚拟机所涉及的工作对于虚拟机的预计使用可能看来并不合理。在虚拟机的存在时间预计比较短(例如大约数秒钟)时,情况可能更是如此。缺少使用虚拟化的机会可能导致因无法在隔离环境(例如虚拟化所提供的隔离环境)中运行特定进程或者执行特定任务所涉及的更高安全风险和开发成本。
发明内容
根据本发明的一方面,本发明涉及一种用于生成虚拟机的方法,包括:
响应在程序运行时从所述程序接收的克隆请求而识别要克隆的虚拟机(VM)状态;
确定在哪些硬件资源上生成所述VM克隆;以及
在所确定的硬件资源上生成所述VM克隆。
根据本发明的另一方面,本发明涉及一种包括其上存储了内容的机器可读存储媒体的制造产品,所述内容提供使装置执行包括以下步骤的操作的指令:
从虚拟机(VM)上运行的应用程序接收克隆请求、即克隆所述VM的请求;
确定所述VM的操作状态;
识别在其上生成所述克隆的可用资源;以及
在所识别的资源上生成具有所确定的操作状态的克隆。
根据本发明的又一方面,本发明涉及一种虚拟机(VM)生成器,包括:
克隆引擎,用于识别具有要克隆的VM的VM状态和虚拟硬件映射的VM,并确定哪些硬件资源可用于在其上克隆所识别的VM,包括克隆所述VM状态和所述虚拟硬件映射;
与所述克隆引擎耦合的布置引擎,用于确定在哪些可用硬件资源上克隆所识别的VM;以及
VM实例化模块,用于在由所述布置引擎确定的所述硬件资源上实例化具有所述VM状态的克隆。
根据本发明的再一方面,本发明涉及一种虚拟机(VM)管理器,包括:
管理VM资源的VM控制器;以及
与所述VM控制器耦合的VM生成器,所述VM生成器具有:克隆引擎,用于识别具有要克隆的VM的VM状态和虚拟硬件映射的VM,并确定哪些硬件资源可用于在其上克隆所识别的VM,包括克隆所述VM状态和所述虚拟硬件映射;与所述克隆引擎耦合的布置引擎,用于确定在哪些可用硬件资源上克隆所识别的VM;以及VM实例化模块,用于在由所述布置引擎确定的所述硬件资源上实例化具有所述VM状态的克隆。
附图说明
以下描述包括对各个附图的论述,通过本发明的实施例的实现的实例对附图进行了说明。附图应当理解为举例说明,而不应当理解为限制。
图1是具有动态创建虚拟机(VM)的VM生成器的系统的一个实施例的框图。
图2是具有带分析引擎和布置引擎的虚拟机(VM)生成器的系统的一个实施例的框图。
图3是虚拟机(VM)生成器的一个实施例的框图。
图4是具有随可能的不同资源使用情况而动态创建虚拟机(VM)的VM生成器的系统的一个实施例的框图。
图5是用于利用虚拟机(VM)生成器派生VM的进程的一个实施例的流程图。
具体实施方式
本文采用的对一个或多个“实施例”的提法将被理解为描述本发明的至少一个实现中包含的具体特征、结构或特性。本文中出现的例如“在一个实施例中”或“在一个备选实施例中”等短语描述本发明的各种实施例和实现,但不一定都表示同一个实施例。但是,它们也不一定相互排斥。下面进行某些细节和实现的描述,其中先简要描述本发明的实施例,然后参照附图进行更详细描述。
系统包括在运行时动态创建虚拟机(VM)的VM生成器。与要求管理活动的传统VM创建相比,应用程序或服务可将虚拟机创建结合到其基本应用逻辑中。本文所使用的“应用程序”在此用来描述VM生成的调用,它仅为了简洁起见而用于描述;实际上,应用程序或服务或者其它软件实体可包括可调用如本文所述的VM生成的逻辑。因此,在提到“应用程序”提供请求或者提供VM创建的参数的情况下,应当理解同样也完全适用于服务或其它软件实体。应用程序可向VM生成器请求生成VM(例如经由“VMfork”编程语言构造)。VM生成器接收该操作请求,并克隆运行VM。
本文所述的VM生成器可利用克隆运行虚拟机的“VMfork”操作。VM生成器可看作具有两个主要部分:VM克隆机构以及新VM位置机构。在一个实施例中,由应用程序进行的VM克隆操作的调用启动VM生成器中的两种机构。因此,应用程序可请求生成VM克隆,以及VM生成器确定需要分配哪些资源以便产生该克隆,确定生成克隆的位置,并在所确定位置中创建克隆。
在一个实施例中,调用VMfork操作引起执行逻辑动作,其中包括创建虚拟资源、拷贝克隆的VM的状态或软件环境以及向请求应用程序返回新VM的标识符。创建虚拟资源可包括提供多个系统配置的任一个。下面更全面地进行说明,资源可被复制、共享,或者最初被共享并在产生配置改变时被复制。注意,不同的资源使用情况可能存在于VM克隆中,这意味着,不同使用情况可存在于单个VM的不同资源之间。因此,例如,可能在VM克隆中复制一个资源(例如存储资源),而在该克隆中共享另一个资源(例如网络接口)。VM克隆的资源配置的选择取决于任何数量的因素,包括克隆的目的、克隆的预计使用寿命、用以克隆的可用资源等。
拷贝克隆的VM的状态包括复制待克隆的VM正在其中运行的操作系统和软件环境。拷贝状态可包括设置配置等。拷贝VM的状态可包括复制或共享磁盘内容、过程、存储器内容、外设状态等。
向请求应用程序返回新VM的标识符包括返回句柄(handle)、IP(因特网协议)地址或者成功克隆的VM的其它标识符。在克隆不成功的情况中,可将出错返回给请求应用程序。
除了可支持克隆机构的操作/动作之外,VM生成器还可执行多个操作/动作的任一个,以便支持确定克隆的VM的位置。克隆VM的位置可根据许多因素来确定,这些因素的实例可包括克隆的(新)VM的属性(例如从原始VM继承的属性、调用克隆的进程所指定的属性等)、当前计算环境的属性(例如机器上的负荷、功率要求等)和/或其它因素。要由VM生成器考虑的因素可包括资源分配和/或可用性(例如存储器、磁盘/存储装置(包括网络连接存储装置NAS)、处理器/核心的可用性、可用I/O(输入/输出)、对网络的访问、到其它计算机的连接、资源等待时间、对装置的等待时间、对网络位置的等待时间、可靠性等)、来自请求应用程序的提示和/或优选项(优选单个硬件装置上的新VM、VM将存在x秒/分钟、所需可用性等)或者其它任何考虑因素。
一些当前操作系统包括标准“派生(fork)”操作(支持uniX(POSIX)的便携操作系统接口的操作系统),它在独立地址空间中克隆运行进程。通过由软件应用程序和服务在支持相关进程创建操作(或“派生”操作)的环境中执行这种操作的频率来说明这种操作的有用性。类似地,提供“VMfork”操作使应用程序和/或服务产生相关VM。此外,如本文所述地,通过应用逻辑对VM创建的调用精简了关于提出新VM的位置的确定(部分或完全)。这种确定的精简减轻了程序设计人员编写代码以便在运行时动态确定分发代码的位置和方式的负担。这种确定而是可由VM生成器来处理。
在一个实施例中,作为对处理VM创建的VM生成器子例程的函数调用来执行VM创建的调用(例如“VMfork”)。或者,可经由例如向VM生成器发送消息或信号、调用启动VM生成器的中断或者其它方式等的其它机制,来调用VM创建。
图1是具有动态创建虚拟机(VM)的VM生成器的系统的一个实施例的框图。系统100包括作为要克隆的VM的VM110。为了清楚起见而不是作为限制,将VM110称作“原始VM110”,它表示以下事实:VM110存在,并且在发起如本文所述的克隆操作时正在运行。系统100的VM120表示原始VM110的克隆,并且为了简洁起见而不是限制,称作“新VM 120”,它表示新VM 120源于原始VM110这一事实。
原始VM110包括操作系统(OS)112,操作系统(OS)112不仅具体表示操作系统,而且还表示原始VM110的软件环境或软件状态。原始VM110还包括虚拟硬件114,虚拟硬件114表示原始VM110的硬件状态。虚拟硬件114表示分配给原始VM110的所有硬件资源。将虚拟硬件114映射到物理硬件140,物理硬件140表示系统100中的实际装置,例如存储器、处理器、网络接口、存储装置、磁盘驱动器等。注意,物理硬件140可存在于系统100的一个或多个不同的物理装置或机器中。也就是说,物理硬件140可全部存在于单个框中,或者可作为多个独立框的资源的虚拟集合体而存在。物理硬件140可包括作为网络资源(例如网络连接存储装置(NAS)、机架安装资源等)可用的物理装置和/或从多个连网装置可得到的资源。
VMM130表示虚拟机管理器或管理程序,它管理物理硬件140的物理资源以及虚拟硬件114到物理资源的分配或映射。在一个实施例中,VMM130与VM生成器150耦合,VM生成器150包括VM克隆机构和新VM位置机构。本文所使用的“耦合”表示无论是电气、机械和/或通信的任何类型的连通性。一个硬件组件与另一个的耦合可通过其它硬件进行。软件组件可通过函数调用或者例程/子例程的其它调用相互耦合。硬件和软件可通过使软件模块能够向硬件组件提供控制命令的驱动程序和其它软件进行耦合。在一个实施例中,VM生成器150是VMM130的组成部分,或者VM生成器150提供VMM130的扩展。注意,VM生成器150可能独立于MM130。VMM130可驻留在运行VM的多平台环境(例如多核机器)中,或者可能是管理运行VM的平台的网络实体。
VMM130包括VM控制器132,VM控制器132表示管理VM的一个或多个组件。VM控制器132使VMM130能够管理VM的资源,并执行被中断的VM的诊断和恢复。在一个实施例中,VM生成器经由VM控制器132创建VM克隆。
VM生成器150从应用程序接收克隆原始VM110的请求。为了克隆原始VM110,VM生成器150确定克隆该VM所必需的资源。VM生成器150根据VMM130确定哪些物理资源被使用(例如识别虚拟硬件114),并确定原始VM110的操作环境(例如OS112的状态)。例如通过请求配置信息以及读取这种信息,VM生成器150可识别原始VM110的状态。
VM生成器150根据物理硬件140、已识别物理资源以及原始VM110的操作状态来确定可生成克隆的位置。新VM120包括虚拟硬件124,虚拟硬件124具有对相当于原始VM110的硬件资源的硬件资源的映射。同样,OS122相当于OS112的状态。在一个实施例中,在生成新VM120之后,VM生成器150向请求应用程序返回新VM120的标识符。
图2是具有带分析引擎和布置引擎的虚拟机(VM)生成器的系统的一个实施例的框图。系统200包括VM202,VM202包括应用程序(app)222。应用程序222包括表示应用程序的操作流程的各种指令行(instr)。在应用程序的操作流程中的一个点上,应用程序222包括指令v=VMfork(a,b,c),该指令表示生成VM 202的克隆的请求,其中带有某些参数‘a’、‘b’和‘c’。参数可表示与作为VM202的克隆的VM 204的创建有关的优选项或提示。例如,调用应用程序222可能表示要在与VM202相同的物理装置中生成的VM204的优选项、或者要利用采用单个硬件装置上的所有资源生成的VM204的优选项。应用程序222还可表明关于克隆的目的、克隆的预计使用寿命等的提示。在一个实施例中,参数允许应用程序222向VM生成器210传递有关它的软件环境的信息。
VM生成器210接收传递了任何参数的VMfork指令,并确定克隆VM202所需的资源以及生成克隆的VM204的位置。在一个实施例中,VM生成器210包括分析引擎212,分析引擎212使VM生成器210能够识别所需的各种硬件资源以及将要克隆的VM202的软件状态。在一个实施例中,VM生成器210包括布置引擎214,布置引擎214使VM生成器210能够识别映射到虚拟硬件、在VM204中将克隆其软件状态的物理资源。VM204示出为具有应用程序224,应用程序224表示应用程序222的克隆。在处理和运行VMfork指令(它生成VM 204)之后,应用程序的运行在它之前停止的位置上采用VMfork指令之后的指令继续进行。注意,应用程序的运行将在VM202以及在VM 204中继续进行。因此,可利用需要虚拟机、创建虚拟机的一段或多段对应用程序222编程,以及需要虚拟机的代码将在独立环境中运行。
图3是虚拟机(VM)生成器的一个实施例的框图。VM生成器300包括实现指导VM生成器300的操作的逻辑功能控制的控制逻辑302和/或与指导VM生成器300的操作关联的硬件。VM生成器300中表示的组件的每一个是可采用硬件、软件或者组合来实现的部件。逻辑302可能是硬件逻辑电路和/或软件例程。在一个实施例中,逻辑可能是在计算装置的处理器中运行的指令。因此,在软件实现中,逻辑302提供用于控制运行VM生成器300的处理器的操作的指令。在硬件实现中,逻辑302表示提供功能控制(例如信号线上的输出)的电路。逻辑302还可能是指例如控制采用组合的软件和硬件的实现中的嵌入式处理器的操作指令和电路。
在一个实施例中,在部分或全部作为软件的实现中,VM生成器300包括一个或多个应用程序304,应用程序304表示向控制逻辑302提供指令的代码序列和/或程序。应用程序304可能是在运行VM生成器300的公共处理器中运行的代码。
在一个实施例中,VM生成器300包括存储器306和/或对用于存储数据和/或指令的存储器资源306的访问。在硬件实现中,表示VM生成器300的硬件电路可包括存储装置。在软件实现中,存储器306可理解为是指软件模块在存储器中存储数据以及访问寄存器以便运行代码的能力。因此,存储器306可包括VM生成器300本地的存储器,以及作为补充或替代还包括VM生成器300所在的装置的存储器。
VM生成器300还包括一个或多个接口308,接口308表示相对于VM生成器300外部的实体、至/来自VM生成器300的访问接口(作为输入/输出接口)。在一个实施例中,作为可由用户通过用户界面在外部操纵的系统的组件,VM生成器300是可访问的。因此,在VM生成器300是人类用户可访问的实现中,接口308可包括图形用户界面、键盘、指针装置等。在一个备选实施例中,VM生成器300对于人类用户“在后台”运行,表示模块在人类用户不可见的情况下执行其功能。但是,即使作为独立组件是人类用户不可见的,但VM生成器300可能是外部电子组件或者外部软件应用程序可访问的。因此,在一个实施例中,接口308包括外部程序可通过其来访问模块的机构(例如VM生成器300的硬件实现中的驱动器、软件实现中的应用程序接口(API)等)。
VM生成器300还包括克隆引擎310,克隆引擎310表示使VM生成器300能够提供VM克隆的资源分配的一个或多个功能组件。VM生成器300还包括布置引擎320,布置引擎320表示使VM生成器300能够提供克隆的VM的布置的一个或多个功能组件。克隆引擎310和布置引擎320可实现为硬件和/或软件,并且提供VM生成器300的功能性。组件的功能或特征包括一个或多个部件或者由一个或多个部件来提供,这些部件可包括用于克隆引擎324的状态确定器312、输入参数模块314、资源确定器316和资源使用选择器318以及用于布置引擎320的资源输入模块322、物理硬件(hw)识别器324和提示/优选项(pref)确定器326。各组件还可包括提供特定功能性的其它模块。本文所使用的“模块”表示无论以硬件、软件还是某种组合来实现的例程、子系统等。
状态确定器312使克隆引擎310能够确定要克隆的VM的操作状态。操作状态可包括在VM中运行的操作系统、在操作系统中运行的应用程序以及系统配置。操作状态中包含的可能是安全信息、许可、密码等。注意,克隆的VM中的等效操作状态不一定表示完全相同的配置。例如,在使用独立的物理资源的情况中,IP地址或其它网络标识符可能是不同的,数字证书可能是不同的,等等。因此,“等效”在本文中不应当理解为表示完全相同,而是表示除了某些变量之外基本上相同的状态。在一个实施例中,状态确定器312访问配置表和/或文件,以便确定要克隆的VM的状态。
输入参数模块314使克隆引擎310能够接收来自请求应用程序的提示和/或优选项参数。在一个实施例中,还将状态信息作为参数来传递。输入参数还可包括系统和网络信息。输入参数模块314解析并处理各种输入参数。输入参数为克隆引擎310提供可用于确定哪些资源可用于克隆所选/已识别的VM的信息。
资源确定器316使克隆引擎310能够识别待克隆的VM的虚拟硬件配置/简档中的资源。资源确定器316还确定请求了克隆的应用程序正在其中运行的装置中的可用资源、以及可用的网络资源。在一个实施例中,资源确定器316还确定应用程序正在其中运行的装置中已识别的资源上和/或网络资源上的负荷。在一个实施例中,VM生成器300配置成一般采用具有最小负荷的资源来创建VM。在一个实施例中,资源确定器316编译列表或数据结构,列表或数据结构包括与所需资源、可用资源以及可能的可用资源的状态有关的信息。这种数据结构可由资源确定器316传递给另一个功能或模块、例如布置引擎320的某个组件。
资源使用选择器318使克隆引擎310能够确定每个待克隆的已识别资源的使用情况。使用情况选择的具体情况将参照图4更全面地描述,在此仅作简要论述。可以共享资源,其中原始VM以及新VM均经由其虚拟硬件配置映射到单个物理组件。还可拷贝资源,这是指由原始VM映射的物理组件被新VM复制和映射的使用情况。资源的复制包括拷贝内容。资源也可能最初被共享,然后在改变时被拷贝(例如供存储的写入时拷贝)。因此,为了读取或访问的目的,两种VM可映射到相同的物理装置上。但是,如果在新VM中生成配置改变或者内容的改变,则为新VM复制物理装置的至少那个部分。因此,可完整或部分复制资源。
资源输入模块322使布置引擎320能够接收克隆引擎、或者可能提供关于产生VM克隆所需资源的确定的另一个实体的资源确定。例如,资源输入模块322可与资源确定器316耦合,并接收资源确定器的确定的输出。布置引擎320参照哪些资源已知是可用的、以及可能参照那些资源的状态来考虑资源需求。注意,本文所使用的“可用的”一般表示资源是可识别的并且一般对VM是可访问的。对于可用的资源,可考虑诸如资源负荷、许可、安全性等的其它考虑因素,以便确定是否可经由VM的虚拟硬件来映射已识别资源。
物理硬件识别器324使布置引擎320能够识别可考虑用于创建克隆VM的可用物理硬件资源。在一个实施例中,在启动VMM时向VMM指示所有系统资源,并且可使信息对于VM生成器300是可用的。还可当资源在系统中变为可用时向VM生成器指示资源(例如,新添加的资源可向系统表明自己的身份)。物理硬件识别器324一般可识别可用硬件,并且明确地使布置引擎320能够识别用于VM克隆的具体硬件资源。因此,由物理硬件识别器324或者等效模块来确定将用于VM克隆的具体硬件。注意,虽然用于VM的硬件可能没有驻留在单个物理位置(例如在单个装置或者单个机架)中,但是,硬件识别VM的“位置”或者识别将要创建VM的“位置”。因此,当提到在一个位置或者另一个位置中创建VM时,对位置的引用是指将要分配给VM的硬件资源,它们在VM的虚拟硬件配置中被映射。
提示/优选项确定器326使布置引擎320能够按照请求应用程序所提供的优选项或提示来调节关于创建克隆VM的位置的确定。以上提供了提示或建议的实例,并且在此不再赘述。这类提示或优选项可能影响实际上可为VM分配的可识别硬件资源。例如,如果指示了某个负荷优选项,则布置引擎320可确定某个处理器对于VM的虚拟硬件配置不是适当选择,因为该处理器具有高于所指示优选项的负荷。
VM生成器300还包括VM实例化器330。又可称作VM实例化模块的VM实例化器330表示VM生成器300采用已识别资源在所确定位置中创建克隆VM的能力。在一个实施例中,创建克隆VM是指向VMM请求创建VM,或者触发VMM以创建克隆VM。按照在其中生成VM的系统以及VMM的配置和能力,用于生成VM的具体算法是实现特定的。因此,具体算法的论述超出了本文论述的范围,并且认为本领域的技术人员熟悉实例化过程。
本文中对模块的说明描述了可包括硬件、软件和/或它们的组合的组件。在执行本文所述操作的组件包括软件的情况中,可由机器/电子装置/硬件经由制造产品来提供软件数据、指令和/或配置。制造产品可包括具有提供指令、数据等的内容的机器可读媒体。内容可产生本文所述的电子装置,从而执行所述的各种操作或运行。机器可读媒体包括提供(即存储和/或传送)以机器(如计算装置、电子装置、电子系统/子系统等)可读的形式的信息/内容的任何机构。例如,机器可读媒体包括可记录/不可记录媒体(例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光存储媒体、以及闪速存储装置等)。机器可读媒体还可包括在存储装置中加载了代码的电子装置,其中的代码可在电子装置工作时被运行。因此,交付具有这种代码的电子装置可理解为提供具有本文所述的这种内容的制造产品。此外,在数据库或其它存储位置上存储代码以及通过通信媒体提供代码供下载的步骤可理解为提供具有本文所述的这种内容的制造产品。
图4是具有随可能的不同资源使用情况而动态创建虚拟机(VM)的VM生成器的系统的一个实施例的框图。系统400表示根据本文所述的任何实施例的系统,其中具有根据本文所述的任何实施例的VM生成器。如图所示,VM生成器420接收输入410,输入410表示由应用程序生成的对VM克隆的任何类型的请求。因此,由应用程序在其代码运行的过程中生成输入410,并将输入提供给VM生成器,以便提供所请求VM创建。在一个实施例中,输入410包括VM标识符(ID)412、网络信息(info)414和提示/优选项(pref)416。其它项也可包含在输入410中。
VM标识符412标识将要克隆的VM。标识的部分可包括VM的配置,其中包括硬件和软件状态。网络信息414指示网络资源是否可用,以及在网络资源可用时可指示哪些资源是可用的或者表明获得关于哪些是可用的指示的位置。提示/优选项416是指应用程序对克隆VM的请求中指示的提示或优选项。
输入410由VM生成器420接收,VM生成器420确定克隆VM所需的资源,并识别将用于克隆VM的资源。在进行确定之后,VM生成器420产生输出,或者作出将用于实际上克隆已识别的VM的决定。“输出”可能只是为新VM产生物理资源到虚拟硬件配置的映射、以及表示可在创建克隆之前或之后发生的报告或数据结构或列表的生成的过程。VM派生输出430表示由VM生成器420作出的输出或决定/确定。作为整体可为VM作出关于哪些资源可使用以及如何克隆VM的确定,或者在一个实施例中分别为各资源作出该决定。因此,在一个实施例中,对所有资源应用相同的使用情况(例如复制所有资源)。或者,可对不同的资源应用不同的使用情况(例如,共享网络接口,写入时拷贝存储装置,以及复制存储器)。
一种可能的输出包括拷贝的资源442(在本文中又称作复制的资源)。如果原始VM“A”、即待克隆的VM包括资源F,则克隆的VM“B”包括F的复制,表示为F’。各VM则具有它自己的要使用和管理的资源。资源的配置和状态对于各VM可能不同。
另一种可能的输出包括共享的资源444。如果原始VM“A”在其虚拟硬件映射中包括资源F,则克隆的VM“B”也在其虚拟硬件映射中指向F。F的“拷贝”可能只是对在VM B的虚拟硬件中映射的F的引用。因此,两个VM均访问相同的资源,并且在对于两个VM可访问的资源的配置、内容和状态之间存在一致性。由VM A对资源F的改变对VM B是可见的,并且VM B需要以改变的状态来访问F。
另一种可能的输出包括改变时拷贝446。如果原始VM“A”在其虚拟硬件映射中包括资源F,则克隆的VM“B”最初指向F,并且VMA以及VM B均访问相同的资源。如果由VM B或VM A进行配置改变,则生成F’,其中的改变作为新(拷贝的)资源被写入。因此,在F和F’相同的情况下,F’是实际的F(共享的),并且在图4中示为“指向”F;但是,对于改变,F和F’将不同,并且B将指向作为其资源的改变F’。
图5是利用虚拟机(VM)生成器派生VM的进程的一个实施例的流程图。本文所述的流程图提供各种操作的序列的一个实例。虽然以特定序列或顺序来表示,但是如果没有另外说明,操作顺序可修改。因此,所述实现应当仅理解为一个实例,并且操作可通过不同顺序来执行,并且部分操作可并行执行。另外,在本发明的各种实施例中,可省略一个或多个操作;因此,并非在每一个实现中都需要全部操作。其它操作流程也是可能的。
VM生成器从应用程序接收派生VM的请求,502。从应用逻辑中产生该请求。VM生成器识别要克隆的VM,504。可根据从产生该请求的应用程序所接收的输入参数来识别待克隆的VM。VM生成器识别要克隆的VM的状态,506,这可包括读取配置文件、或者只是从待克隆的VM中拷贝易失性存储器。VM生成器还识别VM克隆所需的硬件资源,508。可根据读取硬件系统配置或者其它相似文件或设定存储装置来识别硬件资源。还由VM生成器来识别可用硬件资源,510。可将系统中可用的资源编程到VMM中,并使其对VM生成器是可用的,可查询网络或系统管理实体以获得可用硬件资源的标识,或者可采用另一种技术。
VM生成器确定是否为VM克隆过程指定了优选项参数,512。请求克隆的应用程序指定优选项(如果有的话)。如果已经指示了优选项,则VM生成器将优选项分解为关于在哪里克隆VM的确定。VM生成器还可确定VM克隆的各资源的使用情况方案,514。如上所述,资源的使用情况可能对于待克隆的所有资源均相同,或者可对于每个不同的资源应用不同的使用情况,或者一部分可共同来处理,而其它的则分别处理。注意,并非所有可能类型的资源是每个克隆实现所需的。VM可能仅有权访问特定任务所需的某些资源,并且VM克隆仅具有那些资源。所需资源可能是确定硬件资源的克隆的使用方案时的重要考虑因素。
VM生成器根据已识别的环境以及可能接收的任何优选项参数来确定实例化VM克隆的位置,516。与需要哪些资源以及哪些资源可用有关的信息、以及强调首先应当考虑什么资源的可能的优选项在由VM生成器确定决定时一起考虑。这种确定决定可称作确定算法。注意,算法的类型的数量以及每一个的形式是一个实现问题,并且可能性也许是无限的。
通过对资源以及实例化VM的位置的确定决定,VM生成器在所确定的位置中采用已识别的环境来实例化克隆,518。在创建VM克隆之后,VM生成器向请求应用程序返回表明克隆成功的句柄,520。在克隆操作失败的情况中,可向请求应用程序表明这种情况,并执行差错处理。
除了本文所描述的内容之外,可对本发明的公开实施例和实现进行各种修改,而没有背离其范围。因此,本文中的说明和实例应当认为是说明性而不是限制性的。本发明的范围应当仅参照以下权利要求书来限定。

Claims (20)

1.一种用于生成虚拟机的方法,包括:
响应在程序运行时从所述程序接收的克隆请求而识别要克隆的虚拟机(VM)状态;
确定在哪些硬件资源上生成所述VM克隆;以及
在所确定的硬件资源上生成所述VM克隆。
2.如权利要求1所述的方法,其特征在于,确定在哪些硬件资源上生成所述VM克隆包括:
选择所述硬件资源的每一个硬件资源的资源使用情况。
3.如权利要求2所述的方法,其特征在于,选择所述资源使用情况包括:
选择复制使用情况,其中把要克隆的所述VM的等效资源的所有配置拷贝到所述硬件资源中。
4.如权利要求2所述的方法,其特征在于,选择所述资源使用情况包括:
选择共享的使用情况,其中将对要克隆的所述VM的等效资源的引用拷贝为所述硬件资源。
5.如权利要求2所述的方法,其特征在于,选择所述资源使用情况包括:
选择改变时拷贝的使用情况,其中将对要克隆的所述VM的等效资源的引用拷贝为硬件资源,以及在对所述硬件资源的配置进行改变时,将所述改变复制到另一个硬件资源。
6.如权利要求1所述的方法,其特征在于,确定在哪些硬件资源上生成所述VM克隆还包括:
识别一个或多个处理器、存储器和/或存储资源。
7.如权利要求1所述的方法,其特征在于,确定在哪些硬件资源上生成所述VM克隆还包括:
识别一个或多个输入/输出(I/O)和/或网络访问资源。
8.如权利要求1所述的方法,其特征在于,确定在哪些硬件资源上生成所述VM克隆还包括:
识别资源;以及
确定所述资源的容量、对所述资源的等待时间或者所述资源的可靠性其中的一个或多个。
9.一种包括其上存储了内容的机器可读存储媒体的制造产品,所述内容提供使装置执行包括以下步骤的操作的指令:
从虚拟机(VM)上运行的应用程序接收克隆请求、即克隆所述VM的请求;
确定所述VM的操作状态;
识别在其上生成所述克隆的可用资源;以及
在所识别的资源上生成具有所确定的操作状态的克隆。
10.如权利要求9所述的制造产品,其特征在于,提供用于接收所述克隆请求的指令的内容包括提供用于进行以下步骤的指令的内容:
接收对生成所述克隆的函数的函数调用。
11.如权利要求9所述的制造产品,其特征在于,提供用于接收所述克隆请求的指令的内容还包括提供用于进行以下步骤的指令的内容:
接收关于所述请求克隆的提示。
12.如权利要求11所述的制造产品,其特征在于,提供用于接收所述提示的指令的内容包括提供用于进行以下步骤的指令的内容:
接收所述请求克隆的预计使用寿命的指示。
13.如权利要求9所述的制造产品,其特征在于,提供用于接收所述克隆请求的指令的内容还包括提供用于进行以下步骤的指令的内容:
接收与生成所述克隆相关的优选项。
14.如权利要求13所述的制造产品,其特征在于,提供用于接收所述优选项的指令的内容包括提供用于进行以下步骤的指令的内容:
接收将识别所述可用资源限制到全部驻留在单个硬件装置上的资源的指示。
15.一种虚拟机(VM)生成器,包括:
克隆引擎,用于识别具有要克隆的VM的VM状态和虚拟硬件映射的VM,并确定哪些硬件资源可用于在其上克隆所识别的VM,包括克隆所述VM状态和所述虚拟硬件映射;
与所述克隆引擎耦合的布置引擎,用于确定在哪些可用硬件资源上克隆所识别的VM;以及
VM实例化模块,用于在由所述布置引擎确定的所述硬件资源上实例化具有所述VM状态的克隆。
16.如权利要求15所述的VM生成器,其特征在于,确定哪些硬件资源可用于在其上克隆所识别的VM的所述克隆引擎包括进行以下步骤的克隆引擎:
识别所述可用硬件资源;以及
确定所述可用硬件资源的每一个的负荷。
17.如权利要求16所述的VM生成器,其特征在于,确定在哪些可用硬件资源上克隆所识别的VM的所述布置引擎包括进行以下步骤的布置引擎:
选择具有最小负荷的硬件资源作为缺省在其上克隆所识别的VM的硬件资源。
18.一种虚拟机(VM)管理器,包括:
管理VM资源的VM控制器;以及
与所述VM控制器耦合的VM生成器,所述VM生成器具有:克隆引擎,用于识别具有要克隆的VM的VM状态和虚拟硬件映射的VM,并确定哪些硬件资源可用于在其上克隆所识别的VM,包括克隆所述VM状态和所述虚拟硬件映射;与所述克隆引擎耦合的布置引擎,用于确定在哪些可用硬件资源上克隆所识别的VM;以及VM实例化模块,用于在由所述布置引擎确定的所述硬件资源上实例化具有所述VM状态的克隆。
19.如权利要求18所述的VM管理器,其特征在于,所述VM生成器的所述克隆引擎选择每一个单独资源的资源使用情况,以及其中所述VM生成器的所述布置引擎至少部分根据每一个单独资源的资源使用情况来确定在其上克隆所识别的VM的可用硬件资源。
20.如权利要求18所述的VM,其特征在于,所述实例化模块经由所述VM控制器来实例化所述克隆。
CN2007103072285A 2006-12-29 2007-12-29 虚拟机生成器、虚拟机生成方法和虚拟机管理器 Active CN101211272B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/648,251 US8336046B2 (en) 2006-12-29 2006-12-29 Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources
US11/648251 2006-12-29

Publications (2)

Publication Number Publication Date
CN101211272A true CN101211272A (zh) 2008-07-02
CN101211272B CN101211272B (zh) 2012-03-21

Family

ID=39313234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007103072285A Active CN101211272B (zh) 2006-12-29 2007-12-29 虚拟机生成器、虚拟机生成方法和虚拟机管理器

Country Status (5)

Country Link
US (1) US8336046B2 (zh)
EP (1) EP1939742A3 (zh)
JP (1) JP2008165795A (zh)
KR (2) KR101031409B1 (zh)
CN (1) CN101211272B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009149588A1 (zh) * 2008-10-14 2009-12-17 Cai Guangxian 基于虚拟化技术的计算机系统及虚拟机创建方法
CN101826028A (zh) * 2009-02-02 2010-09-08 三星电子株式会社 电子设备、虚拟机提供设备和使用虚拟机服务的方法
CN102609296A (zh) * 2010-12-17 2012-07-25 微软公司 虚拟机分支和并行执行
CN102656562A (zh) * 2009-06-30 2012-09-05 思杰系统有限公司 用于选择桌面执行位置的方法和系统
CN102741814A (zh) * 2010-02-04 2012-10-17 微软公司 可扩展应用虚拟化子系统
CN103259813A (zh) * 2012-02-17 2013-08-21 鸿富锦精密工业(深圳)有限公司 自动扩充虚拟机的方法
CN103810426A (zh) * 2012-11-09 2014-05-21 国际商业机器公司 用于检测克隆的虚拟机实例的方法和系统
CN103995728A (zh) * 2013-02-14 2014-08-20 国际商业机器公司 用于确定何时需要更新云虚拟机的系统和方法
CN104021027A (zh) * 2013-02-28 2014-09-03 国际商业机器公司 提供虚拟装置的方法和设备
WO2015090195A1 (zh) * 2013-12-17 2015-06-25 华为技术有限公司 操作系统实例创建方法及装置
CN105653348A (zh) * 2015-12-30 2016-06-08 深圳市创想天空科技股份有限公司 一种虚拟机的克隆方法及系统
CN107102889A (zh) * 2017-05-31 2017-08-29 郑州云海信息技术有限公司 一种虚拟机资源调整方法及装置
CN107346253A (zh) * 2016-05-06 2017-11-14 中兴通讯股份有限公司 应用同步方法及装置

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US8539063B1 (en) 2003-08-29 2013-09-17 Mcafee, Inc. Method and system for containment of networked application client software by explicit human input
US7840968B1 (en) 2003-12-17 2010-11-23 Mcafee, Inc. Method and system for containment of usage of language interfaces
US7783735B1 (en) * 2004-03-22 2010-08-24 Mcafee, Inc. Containment of network communication
US7873955B1 (en) 2004-09-07 2011-01-18 Mcafee, Inc. Solidifying the executable software set of a computer
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US7603552B1 (en) 2005-05-04 2009-10-13 Mcafee, Inc. Piracy prevention using unique module translation
US7856661B1 (en) * 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US7895573B1 (en) 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US7870387B1 (en) * 2006-04-07 2011-01-11 Mcafee, Inc. Program-based authorization
US8352930B1 (en) 2006-04-24 2013-01-08 Mcafee, Inc. Software modification by group to minimize breakage
US8555404B1 (en) 2006-05-18 2013-10-08 Mcafee, Inc. Connectivity-based authorization
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US9424154B2 (en) * 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US8365166B2 (en) * 2007-02-20 2013-01-29 Novell, Inc. System and method for automated provisioning of VMware image instances
US8074218B2 (en) * 2007-03-29 2011-12-06 International Business Machines Corporation Method and system for constructing virtual resources
US8453142B2 (en) * 2007-04-26 2013-05-28 Hewlett-Packard Development Company, L.P. Virtual machine control
US8875266B2 (en) * 2007-05-16 2014-10-28 Vmware, Inc. System and methods for enforcing software license compliance with virtual machines
US8949827B2 (en) * 2007-06-22 2015-02-03 Red Hat, Inc. Tracking a virtual machine
US9354960B2 (en) 2010-12-27 2016-05-31 Red Hat, Inc. Assigning virtual machines to business application service groups based on ranking of the virtual machines
US8374929B1 (en) 2007-08-06 2013-02-12 Gogrid, LLC System and method for billing for hosted services
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8407518B2 (en) * 2007-10-26 2013-03-26 Vmware, Inc. Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
US8195931B1 (en) 2007-10-31 2012-06-05 Mcafee, Inc. Application change control
US8181174B2 (en) * 2007-12-28 2012-05-15 Accenture Global Services Limited Virtual machine configuration system
US8515075B1 (en) 2008-01-31 2013-08-20 Mcafee, Inc. Method of and system for malicious software detection using critical address space protection
US8615502B2 (en) 2008-04-18 2013-12-24 Mcafee, Inc. Method of and system for reverse mapping vnode pointers
US8375387B2 (en) * 2008-05-30 2013-02-12 Red Hat, Inc. Product independent orchestration tool
US8615758B2 (en) * 2008-05-30 2013-12-24 Red Hat, Inc. Combining system blueprints, functional layer, and software bits in parallel development of machines
US8561062B2 (en) * 2008-05-30 2013-10-15 Red Hat, Inc. Synchronizing changes made on self-replicated machines to the corresponding parent machines
US8527679B2 (en) 2008-06-16 2013-09-03 Samsung Electronics Co., Ltd. Apparatus and method for adaptation of input/output interface in virtualization environment
US20100017801A1 (en) * 2008-07-18 2010-01-21 Vmware, Inc. Profile based creation of virtual machines in a virtualization environment
JP5446157B2 (ja) * 2008-07-28 2014-03-19 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US8458717B1 (en) 2008-09-23 2013-06-04 Gogrid, LLC System and method for automated criteria based deployment of virtual machines across a grid of hosting resources
WO2010038307A1 (ja) * 2008-10-03 2010-04-08 富士通株式会社 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム
US8572608B2 (en) * 2008-10-22 2013-10-29 Vmware, Inc. Methods and systems for converting a related group of physical machines to virtual machines
KR20100048263A (ko) * 2008-10-30 2010-05-11 한국전자통신연구원 주문형 시스템 서비스의 가상 머신 개인화 제공 시스템 및 방법
US8544003B1 (en) 2008-12-11 2013-09-24 Mcafee, Inc. System and method for managing virtual machine configurations
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
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8234469B2 (en) * 2009-07-09 2012-07-31 Microsoft Corporation Backup of virtual machines using cloned virtual machines
US9740533B2 (en) 2009-08-03 2017-08-22 Oracle International Corporation Altruistic dependable memory overcommit for virtual machines
US8381284B2 (en) 2009-08-21 2013-02-19 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US8341627B2 (en) 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US11132237B2 (en) 2009-09-24 2021-09-28 Oracle International Corporation System and method for usage-based application licensing in a hypervisor virtual execution environment
US9552497B2 (en) 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
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
US8726275B2 (en) * 2009-12-18 2014-05-13 International Business Machines Corporation Selective partial cloning of virtual machines in a virtual computing environment
US9959147B2 (en) * 2010-01-13 2018-05-01 Vmware, Inc. Cluster configuration through host ranking
US8429449B2 (en) 2010-03-01 2013-04-23 International Business Machines Corporation Optimized placement of virtual machines in a network environment
US8533701B2 (en) * 2010-03-15 2013-09-10 Microsoft Corporation Virtual machine image update service
US9081596B2 (en) * 2010-03-16 2015-07-14 Panasonic Intellectual Property Management Co., Ltd. Information processing device, virtual machine creation method, and application distribution system
US8406125B2 (en) 2010-03-19 2013-03-26 Brocade Communications Systems, Inc. Synchronization of multicast information using incremental updates
US8601226B1 (en) 2010-05-20 2013-12-03 Gogrid, LLC System and method for storing server images in a hosting system
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
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
CN101937360B (zh) * 2010-09-01 2013-05-15 浪潮(北京)电子信息产业有限公司 一种创建虚拟机的方法和装置
JP5417287B2 (ja) * 2010-09-06 2014-02-12 株式会社日立製作所 計算機システム、及び、計算機システムの制御方法
US8549003B1 (en) 2010-09-12 2013-10-01 Mcafee, Inc. System and method for clustering host inventories
US8407804B2 (en) * 2010-09-13 2013-03-26 Sophos Plc System and method of whitelisting parent virtual images
CN102307208B (zh) * 2010-09-25 2014-08-06 广东电子工业研究院有限公司 基于云计算的虚拟机运行控制装置及其运行控制方法
US8706947B1 (en) * 2010-09-30 2014-04-22 Amazon Technologies, Inc. Virtual machine memory page sharing system
US8499114B1 (en) 2010-09-30 2013-07-30 Amazon Technologies, Inc. Virtual machine memory page sharing system
US8443365B2 (en) 2010-11-03 2013-05-14 Hewlett-Packard Development Company, L.P. Methods and systems to clone a virtual machine instance
US9075993B2 (en) 2011-01-24 2015-07-07 Mcafee, Inc. System and method for selectively grouping and managing program files
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
WO2012117465A1 (ja) * 2011-03-02 2012-09-07 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路
US8938643B1 (en) * 2011-04-22 2015-01-20 Symantec Corporation Cloning using streaming restore
KR101493827B1 (ko) * 2011-07-04 2015-02-17 주식회사 케이티 물리서버를 가상 서버로 마이그레이션하는 장치 및 그 방법
US9176781B2 (en) 2011-07-14 2015-11-03 Panasonic Intellectual Property Corporation Of America Virtual machine system, memory management method, memory management program, recording medium, and integrated circuit
WO2013028636A1 (en) * 2011-08-19 2013-02-28 Panavisor, Inc Systems and methods for managing a virtual infrastructure
US9250969B2 (en) 2011-08-30 2016-02-02 At&T Intellectual Property I, L.P. Tagging a copy of memory of a virtual machine with information for fetching of relevant portions of the memory
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
US8694738B2 (en) 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8800024B2 (en) 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
KR101867960B1 (ko) 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
US8701109B1 (en) * 2012-02-06 2014-04-15 Amazon Technologies, Inc. Immortal instance type
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
US9053603B2 (en) * 2012-04-17 2015-06-09 Igt Cloud based virtual environment authentication
US8843935B2 (en) 2012-05-03 2014-09-23 Vmware, Inc. Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine
US9811371B2 (en) 2012-06-29 2017-11-07 International Business Machines Corporation Concurrent execution of a computer software application along multiple decision paths
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
JP6003590B2 (ja) * 2012-11-30 2016-10-05 富士通株式会社 データセンタ,仮想システムの複写サービスの提供方法,データセンタの管理サーバ及び仮想システムの複写プログラム
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
US9727274B2 (en) * 2013-02-26 2017-08-08 Red Hat Israel, Ltd. Cloning live virtual machines
US9069608B2 (en) * 2013-03-06 2015-06-30 Vmware, Inc. Method and system for providing a roaming remote desktop
US9098322B2 (en) * 2013-03-15 2015-08-04 Bmc Software, Inc. Managing a server template
US20140310488A1 (en) * 2013-04-11 2014-10-16 Transparent Io, Inc. Logical Unit Management using Differencing
WO2015060857A1 (en) 2013-10-24 2015-04-30 Mcafee, Inc. Agent assisted malicious application blocking in a network environment
US10977063B2 (en) 2013-12-20 2021-04-13 Vmware, Inc. Elastic compute fabric using virtual machine templates
US9323565B2 (en) 2013-12-20 2016-04-26 Vmware, Inc. Provisioning customized virtual machines without rebooting
US10176005B2 (en) * 2014-03-31 2019-01-08 Cypherpath, Inc. Environment virtualization
US9547514B2 (en) * 2014-05-23 2017-01-17 Vmware, Inc. Maintaining virtual hardware device ID in a virtual machine
US9740509B2 (en) 2014-05-30 2017-08-22 International Business Machines Corporation Generic physical location codes for virtual system and partition cloning
US9578032B2 (en) * 2014-08-23 2017-02-21 Vmware, Inc. Application publishing using memory state sharing
US9513949B2 (en) 2014-08-23 2016-12-06 Vmware, Inc. Machine identity persistence for users of non-persistent virtual desktops
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
CN104394011A (zh) * 2014-11-11 2015-03-04 浪潮电子信息产业股份有限公司 一种通过告警信息支持服务器虚拟化运维的方法
US9697034B2 (en) * 2015-08-07 2017-07-04 Futurewei Technologies, Inc. Offloading probabilistic computations in data analytics applications
US10284643B2 (en) 2015-09-24 2019-05-07 Ebay Inc. System and method for cloud deployment optimization
GB2550904B (en) * 2016-05-27 2020-07-15 Arm Ip Ltd Methods and Apparatus for Creating Module Instances
KR101707552B1 (ko) * 2016-07-27 2017-02-16 주식회사 티맥스 소프트 클라우드 환경에서 사용자로 하여금 애플리케이션을 체험할 수 있도록 체험 환경을 제공하는 방법 및 이를 이용한 서버
CN106775956B (zh) * 2017-01-14 2019-09-06 中国人民解放军国防科学技术大学 Xen虚拟机Fork机制建立方法
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US11263035B2 (en) * 2018-04-13 2022-03-01 Microsoft Technology Licensing, Llc Longevity based computer resource provisioning
US10965521B2 (en) * 2018-09-14 2021-03-30 Rapid7, Inc. Honeypot asset cloning
US11914877B2 (en) * 2021-10-28 2024-02-27 Red Hat, Inc. Managing access to block storage in cloud computing environments

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3241214B2 (ja) * 1994-09-07 2001-12-25 株式会社東芝 分散処理装置及びプロセス実行方法
US6970902B1 (en) * 2001-05-24 2005-11-29 Cisco Technology, Inc. Method and apparatus for providing a distributed service in a network
US7073059B2 (en) 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
GB2378535A (en) 2001-08-06 2003-02-12 Ibm Method and apparatus for suspending a software virtual machine
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US7136800B1 (en) * 2002-10-18 2006-11-14 Microsoft Corporation Allocation of processor resources in an emulated computing environment
US7962545B2 (en) * 2002-12-27 2011-06-14 Intel Corporation Dynamic service registry for virtual machines
US7299468B2 (en) * 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US20050060704A1 (en) * 2003-09-17 2005-03-17 International Business Machines Corporation Managing processing within computing environments including initiation of virtual machines
US20050132362A1 (en) * 2003-12-10 2005-06-16 Knauerhase Robert C. Virtual machine management using activity information
US20050132363A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for optimizing context switching between virtual machines
US7421698B2 (en) * 2003-12-22 2008-09-02 Sun Microsystems, Inc. System and method for dynamically and persistently tracking incremental profiling data in a process cloning application environment
US20050198303A1 (en) * 2004-01-02 2005-09-08 Robert Knauerhase Dynamic virtual machine service provider allocation
US20050160424A1 (en) * 2004-01-21 2005-07-21 International Business Machines Corporation Method and system for grid-enabled virtual machines with distributed management of applications
US8156490B2 (en) 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
JP2006072591A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd 仮想計算機制御方法
US7290112B2 (en) * 2004-09-30 2007-10-30 International Business Machines Corporation System and method for virtualization of processor resources
US7536525B2 (en) * 2004-11-09 2009-05-19 Dell Products L.P. Virtual machine hot cloning including freezing and unfreezing memory in a distributed network
US20060143617A1 (en) * 2004-12-29 2006-06-29 Knauerhase Robert C Method, apparatus and system for dynamic allocation of virtual platform resources
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US20060184935A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method using virtual machines for decoupling software from users and services
US20060184937A1 (en) 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US7730486B2 (en) * 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
WO2007036072A1 (en) * 2005-09-29 2007-04-05 Intel Corporation Apparatus and method for expedited virtual machine (vm) launch in vm cluster environment
US7761573B2 (en) * 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
US9547485B2 (en) * 2006-03-31 2017-01-17 Prowess Consulting, Llc System and method for deploying a virtual machine
US20070271560A1 (en) * 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102177503A (zh) * 2008-10-14 2011-09-07 蔡光贤 基于虚拟化技术的计算机系统及虚拟机创建方法
WO2009149588A1 (zh) * 2008-10-14 2009-12-17 Cai Guangxian 基于虚拟化技术的计算机系统及虚拟机创建方法
CN102177503B (zh) * 2008-10-14 2014-07-02 蔡光贤 基于虚拟化技术的计算机系统及虚拟机创建方法
CN101826028A (zh) * 2009-02-02 2010-09-08 三星电子株式会社 电子设备、虚拟机提供设备和使用虚拟机服务的方法
US8639814B2 (en) 2009-02-02 2014-01-28 Samsung Electronics Co., Ltd. Electronic apparatus, virtual machine providing apparatus, and method of using virtual machine service
CN101826028B (zh) * 2009-02-02 2015-08-19 三星电子株式会社 电子设备、虚拟机提供设备和使用虚拟机服务的方法
CN102656562A (zh) * 2009-06-30 2012-09-05 思杰系统有限公司 用于选择桌面执行位置的方法和系统
CN102656562B (zh) * 2009-06-30 2015-12-09 思杰系统有限公司 用于选择桌面执行位置的方法和系统
CN102741814A (zh) * 2010-02-04 2012-10-17 微软公司 可扩展应用虚拟化子系统
CN102741814B (zh) * 2010-02-04 2015-11-25 微软技术许可有限责任公司 可扩展应用虚拟化子系统
CN102609296B (zh) * 2010-12-17 2015-04-01 微软公司 虚拟机分支和并行执行
CN102609296A (zh) * 2010-12-17 2012-07-25 微软公司 虚拟机分支和并行执行
CN103259813A (zh) * 2012-02-17 2013-08-21 鸿富锦精密工业(深圳)有限公司 自动扩充虚拟机的方法
CN103810426A (zh) * 2012-11-09 2014-05-21 国际商业机器公司 用于检测克隆的虚拟机实例的方法和系统
CN103810426B (zh) * 2012-11-09 2017-04-05 国际商业机器公司 用于检测克隆的虚拟机实例的方法和系统
CN103995728A (zh) * 2013-02-14 2014-08-20 国际商业机器公司 用于确定何时需要更新云虚拟机的系统和方法
CN103995728B (zh) * 2013-02-14 2017-09-29 国际商业机器公司 用于确定何时需要更新云虚拟机的系统和方法
CN104021027A (zh) * 2013-02-28 2014-09-03 国际商业机器公司 提供虚拟装置的方法和设备
CN104021027B (zh) * 2013-02-28 2017-04-12 国际商业机器公司 提供虚拟装置的方法和设备
WO2015090195A1 (zh) * 2013-12-17 2015-06-25 华为技术有限公司 操作系统实例创建方法及装置
CN105653348A (zh) * 2015-12-30 2016-06-08 深圳市创想天空科技股份有限公司 一种虚拟机的克隆方法及系统
CN107346253A (zh) * 2016-05-06 2017-11-14 中兴通讯股份有限公司 应用同步方法及装置
CN107102889A (zh) * 2017-05-31 2017-08-29 郑州云海信息技术有限公司 一种虚拟机资源调整方法及装置
CN107102889B (zh) * 2017-05-31 2021-02-02 苏州浪潮智能科技有限公司 一种虚拟机资源调整方法及装置

Also Published As

Publication number Publication date
KR101031409B1 (ko) 2011-04-26
KR20080063172A (ko) 2008-07-03
EP1939742A2 (en) 2008-07-02
KR20110015495A (ko) 2011-02-16
US20080163210A1 (en) 2008-07-03
US8336046B2 (en) 2012-12-18
EP1939742A3 (en) 2009-09-23
CN101211272B (zh) 2012-03-21
JP2008165795A (ja) 2008-07-17

Similar Documents

Publication Publication Date Title
CN101211272B (zh) 虚拟机生成器、虚拟机生成方法和虚拟机管理器
CN102834822B (zh) 由虚拟机共享的群集的快速-完整备份
CN112099918A (zh) 容器化环境中的集群的实时迁移
CN110088733A (zh) 虚拟机迁移的基于存储层的编排
US20080140857A1 (en) Service-oriented architecture and methods for direct invocation of services utilizing a service requestor invocation framework
US20080140760A1 (en) Service-oriented architecture system and methods supporting dynamic service provider versioning
WO2011115842A2 (en) Virtual machine image update service
CN101764703B (zh) 一种基于虚拟技术的网元管理系统的实现方法
KR101489158B1 (ko) 마스터 부트 레코드가 저장되어 있는 저장매체, 이를포함하는 컴퓨터 시스템 및 그 부팅방법
CN102792270A (zh) 经由bios配置概要文件的bios参数虚拟化
CN105324750A (zh) 开发环境系统、开发环境装置、开发环境提供方法及程序
US10728169B1 (en) Instance upgrade migration
JP2001134454A (ja) コンピューティング環境において構成要素を更新する方法、システムおよび製造品
CN114168255A (zh) 容器云平台中异构指令集容器的运行方法和装置
CN114756290B (zh) 一种操作系统安装方法、设备及可读存储介质
JP2007527562A (ja) 埋め込みシステムの中に統合されるソフトウェアコンポーネントを管理する方法
CN105100180A (zh) 集群节点动态加载的方法、装置及系统
CN112631994A (zh) 数据迁移方法及系统
EP3316518B1 (en) Method and device for upgrading virtual network element, and computer storage medium
CN114816665B (zh) 混合编排系统及超融合架构下虚拟机容器资源混合编排方法
CN107621946B (zh) 一种软件开发方法、装置及系统
CN116049000A (zh) 环境参数配置方法、装置、设备、存储介质及产品
CN103617077A (zh) 智能型云端化移转的方法与系统
CN113821219A (zh) 一种实现应用程序容器化的方法及系统
JP7417462B2 (ja) パッケージ生成装置、パッケージ管理システム及びパッケージ生成方法

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