CN104160376B - 虚拟机的离线准备 - Google Patents

虚拟机的离线准备 Download PDF

Info

Publication number
CN104160376B
CN104160376B CN201380012857.9A CN201380012857A CN104160376B CN 104160376 B CN104160376 B CN 104160376B CN 201380012857 A CN201380012857 A CN 201380012857A CN 104160376 B CN104160376 B CN 104160376B
Authority
CN
China
Prior art keywords
virtual machine
preparation
data
configuration
configuration data
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.)
Active
Application number
CN201380012857.9A
Other languages
English (en)
Other versions
CN104160376A (zh
Inventor
K·斯里尼瓦桑
S·扎科斯
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN104160376A publication Critical patent/CN104160376A/zh
Application granted granted Critical
Publication of CN104160376B publication Critical patent/CN104160376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/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
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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

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

虚拟机的离线准备
背景
虚拟机是软件概念,其提供了位于操作系统和应用和物理计算资源之间的层。该软件仿真目标物理硬件平台的特性,使得运行在虚拟机上的操作系统和应用如同它们正执行在具有所仿真的特性的物理机器上那样运作。实际的物理计算资源在相同时间可被用于执行许多虚拟机。在许多情况下,系统管理程序被用来管理物理机器的资源并启动运行在物理机器上的一个或多个虚拟机。虚拟机常常可被暂停,移到另一个物理机器,以及恢复,这些都很少或不影响运行在虚拟机上的操作系统和应用。因此,虚拟机已经变成了一种很好的用于数据中心的工具,特别是那些主存多个承租人的(例如,应用服务提供者等等)的数据中心。数据中心的管理者只需要确保每个虚拟机具有它需要的资源,而不是管理运行在虚拟机上的实际软件。
应用(特别是其中特定应用和必须的操作环境被打包成单个可部署镜像的虚拟应用)已经变成软件准备商的流行的分发格式。在这个应用镜像可被部署之前,该镜像需要被定制且这个操作通常被称为准备。该应用的几个方面通常将需要被定制:1)要被分配给虚拟机的硬件资源,以及2)将状态注入虚拟机来准备该虚拟机。状态可包括诸如用户帐户/口令、安全外壳(SSH)密钥、网络配置(例如互联网协议IP地址、域名等)等等的信息。因为每个虚拟机将使用不同的IP地址、主机名等,简单地克隆虚拟机镜像不足以准备虚拟机并使其准备好使用。
虽然硬件定制无需启动虚拟机就可完成,但现用的大部分方案需要虚拟机运行以将状态注入虚拟机。例如,微软TM视窗TM使用称为sysprep(系统预备)的工具来自动化该定制。sysprep只能在虚拟机运行时运行,并且因此管理员首先设立硬件定制,并启动该虚拟机,随后对每一个虚拟机运行sysprep来完成准备。如果管理员正在准备许多(例如几百或几千)虚拟机,那么准备很快地变成乏味和耗时的任务。其它现用的机制包括“第一次引导配置”。在所有这些方案中,虚拟机需要被执行以执行最终的准备/定制。
概述
在此描述了离线准备系统,它为准备虚拟机提供了便捷,无需虚拟机仅为准备而启动。如之前所述,目前所有的硬件准备可完成而无需启动虚拟机,因为硬件准备信息是描述虚拟机的配置文件的一部分。离线准备系统扩展该配置文件或用于存储虚拟硬件配置的其它机制,来存储软件状态的准备信息。随着客虚拟机被启动来执行客机准备,离线准备系统使用配置信息来将配置信息的选择性的内容(属于客机准备的那些)推送到客虚拟机中。通过这些适当的改变,客虚拟机可在虚拟机镜像离线和不运行时被准备。由于准备信息被添加到虚拟机配置文件,系统甚至可在合适的主机被标识来启动客虚拟机之前执行准备。这允许对虚拟机快速得多的部署和准备并将管理资源释放给其它任务。因此,离线准备系统通过允许在虚拟机已经被运行之前收集并存储准备所需的信息,并随后在无需对虚拟机的使用进行管理监督的情况下被应用,简化了虚拟机的准备。
提供本概述是为了以简化的形式介绍将在以下具体实施方式中进一步描述的概念选择。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图说明
图1是示出在一个实施例中的离线准备系统的各组件的框图。
图2是示出在一个实施例中离线准备系统在虚拟机离线时捕捉准备信息的处理的流程图。
图3是示出在一个实施例中离线准备系统将先前接收到的准备信息应用到虚拟机的处理的流程图。
图4是示出在一个实施例中使用离线准备系统将准备信息应用到虚拟机的概念级的框图。
详细描述
在此描述了离线准备系统,它提供了一种用于在无需虚拟机仅为准备而启动的情况下准备虚拟机的设备。如之前所述,目前所有的硬件准备可完成而无需启动虚拟机,因为硬件准备信息是描述虚拟机的配置文件的一部分。离线准备系统扩展配置文件或其它机制来存储准备信息。通常,配置信息的内容将被虚拟化平台消费来启动虚拟机。随着客虚拟机被启动来执行所需的客机准备,离线准备系统还使用配置信息来将配置信息的选择性的内容(属于客机准备的那些)推送到客虚拟机中。通过这些适当的改变,客虚拟机可在虚拟机镜像离线和不运行时被准备。由于准备信息被添加到虚拟机配置文件,系统甚至可在合适的主机被标识来启动客虚拟机之前执行准备。这允许对虚拟机快速得多的部署和准备并将管理资源释放给其它任务。
离线准备系统可结合运行在客虚拟机上的任何操作系统来被使用。在视窗TM的情况下,微软TM的虚拟化平台已经实现了用于将键/值元组与主存在该平台上的客虚拟机进行交换的通用机制。如果客机当前没有在执行,键/值元组将被添加到与该虚拟机相关联的配置文件,并且当该虚拟机被启动时,这些高速缓存了的键/值元组将被注入客机。对于当前不具有用于准备的类似sysprep工具的Linux虚拟机,离线准备系统使用键/值元组机制提供类似注册表的配置数据存储体系结构。运行在客机中并被提供作为客机镜像的一部分的监控程序(daemon)在客机启动时可提取这些键/值元组并执行客虚拟机的任意定制。通过这个体系结构,系统可执行虚拟机准备而不必启动Linux和其它平台上的虚拟机。键/值元组方案允许对任何类型的数据的各种定制和交换以准备客虚拟机。因此,离线准备系统通过允许在虚拟机已经被运行之前收集并存储准备所需的信息,并随后在无需对虚拟机的使用进行管理监督的情况下被应用,简化了虚拟机的准备。
由微软TMHyper-V提供的键/值元组机制允许客操作系统从在虚拟机中运行该客机的主操作系统获得信息。该信息可包括视窗TM版本、真实IP地址、处理器信息、存储器配置、硬件资源等等。运行在客机上的服务使用通信信道(例如,套接字、命名管道,或其它机制)将键/值元组来回传递。在视窗TM中,这些键/值元组作为条目显示在系统注册表中,其中应用或其它软件可访问它们。离线准备系统通过提供核心驱动或运行在Linux客机内打开类似通信信道的用户级daemon将这个机制扩展到诸如Linux之类的其它操作系统,接收存储在配置文件或其它设备中的准备信息,并应用该准备信息以影响虚拟机和客机的状态。从而,通过单个机制,管理员可指定准备信息无需虚拟机运行,并且该准备信息将被应用于该虚拟机,而不考虑该虚拟机被配置来运行的特定操作系统。
图1是示出在一个实施例中的离线准备系统的各组件的框图。系统100包括状态捕捉组件110、状态存储组件120、配置数据存储130、准备监控程序组件140、状态访问组件150,以及状态应用组件160。这些组件中的每一个都在此处进一步详细讨论。
状态捕捉组件110从管理员接收与虚拟机的操作相关的状态信息以准备特定角色的虚拟机。状态信息可包括网络配置、用户姓名、域信息,或与准备虚拟机以在特定能力中运行相关的任何其它类型数据。状态信息可包括专用于特定虚拟机的信息,使得该信息不能被提供在用于设置多个虚拟机的克隆虚拟机镜像中。在一些情况中,状态捕捉组件110可捕捉多个虚拟机的通用配置信息和每个虚拟机的专用配置信息。系统100可提供用于收集状态信息的用户界面或工具,诸如桌面或移动应用、基于web的界面、程序性接口等等。通过提供扩展模块(例如cmdlets)或用于与现存配置设备(诸如微软TM视窗TM POWERSHELLTM)集成的其它软件,状态捕捉组件110可利用设备现存配置设备来捕捉机器状态信息。
状态存储组件120将所接收到的状态信息存储在配置数据存储130中。状态存储组件120可包括一个或多个文件系统应用编程接口(API)、数据库API、网络通信信道等等。在一些情况中,系统100可将配置数据存储130维护为在数据中心内或网络上的可集中访问的储存库。状态存储组件120接着将所捕捉的状态信息通过合适的通信信道发送到储存库(例如传输控制协议TCP、文件的远程存储、将状态信息写入数据库等)。
配置数据存储130为一个或多个虚拟机持久存储状态信息。配置数据存储130可包括一个或多个文件、文件系统、硬盘驱动器、数据库、存储区域网络(SAN)、基于云的存储服务或其它用于随时间存储数据的设备。在一些情况中,系统100可被用在多承租人数据中心或云计算环境来准备新虚拟机或应用。在这样的情况中,配置数据存储130可包括可集中访问的数据库,虚拟机与该可集中访问的数据库进行通信以访问先前捕捉到并存储的准备信息。由配置数据存储130存储的配置信息可被存储在客虚拟机将运行的主机上、提供客机准备信息的储存库的中央服务器上,或在客机将访问到准备信息的任何其它位置上。
准备监控程序组件140在客虚拟机中运行,以检索在客虚拟机不运行时捕捉到并存储的状态信息。组件140可继续监视或监听在客虚拟机运行之后提供的新状态信息。该组件可操作为服务、监控程序,或客虚拟机上运行的操作系统的引导过程中早期运行的其它软件应用,并具有合适的访问以将状态信息应用到客虚拟机。组件140可打开通信信道或传输以接收与准备相关的配置信息,并可调用由主平台提供的一个或多个API以访问客虚拟机之外的信息。系统管理程序或其它软件可提供客虚拟机可执行的专用指令以“刺穿虚拟机的面纱”以抵达存储在主机上的数据,诸如准备数据。因为准备数据可被管理员更早地存储,甚至在虚拟机被部署到主机之前,因此准备监控程序组件140可操作以应用准备数据而无需管理员的直接监督。
状态访问组件150访问先前从客虚拟机存储在配置数据存储130中的状态信息。准备监控程序组件140调用状态访问组件150来建立适用于访问所接收的状态信息的通信信道。通信信道可访问存储在主机上的文件、存储在远程服务器上的文件、数据库、诸如用于接收准备信息的套接字的实况信道,或准备数据可通过它被提供给客虚拟机的任何其它传输。只要在客虚拟机处在运行状态中,状态访问组件150就可继续监听或试图访问新配置数据。
状态应用组件160应用所访问的状态信息以准备客虚拟机以由状态信息指定的特定角色操作。状态信息的应用用于将虚拟机从其它类似虚拟机中区分出来。例如,状态信息向虚拟机分配基本上唯一的IP地址、主机名、密码密钥,或允许虚拟机操作为能被区分的计算设备的其它信息。应用状态可包括调用操作系统的API,这些API与设置配置设置、将文件存储在客虚拟机、修改配置数据库(例如视窗TM注册表),或用于执行状态信息的目的而对客虚拟机的的其它改变相关。状态应用组件160可将状态信息作为一个或多个键/值元组接收,并可查找特定键名来应用与那些名字相关联的值。例如,键/值元组可包括指定用于命名网络上的客虚拟机的值的键名“主机名”。
其上实现离线准备系统的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和定点设备)、输出设备(例如,显示设备)和存储设备(例如,盘驱动器或其他非易失性存储介质)。存储器和存储设备是可以用实现或启用该系统的计算机可执行指令(如软件)来编码的计算机可读存储介质。此外,数据结构和消息结构可被存储在计算机可读存储介质上。本文所要求的任何计算机可读介质包括仅那些落在法定可受专利保护的类别中的介质。该系统还可包括一个或多个通信链路,通过通信链路可传送数据。可以使用各种通信链路,诸如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等。
该系统的实施例可以在各种操作环境中实现,这些操作环境包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、数码照相机、网络PC、小型计算机、大型计算机、包括任何上述系统或设备、机顶盒、片上系统(SOC)等中任一种的分布式计算环境等。计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子设备、数码相机等。
该系统可以在由一个或多个计算机或其他设备执行的诸如程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。
图2是示出在一个实施例中,当虚拟机离线时,离线准备系统捕捉准备信息的处理的流程图。在框210开始,系统显示界面用以接收配置特定虚拟机的操作的准备数据,其中准备数据包括对于虚拟机的特定实例唯一的至少一些信息。界面可包括显示的软件应用的用户界面,诸如图形用户界面(GUI)或控制台用户界面(CUI),由脚本访问的程序接口等等。系统可提供多个界面,通过它们管理员可提供准备信息。
在框220中继续,系统经由所显示的界面接收准备数据。系统可通过以下方式接收准备数据:由管理员将数据存储到文件、本地地或通过联网连接(例如套接字)远程地接收数据、由管理员调用系统的程序API等等。准备数据可以是特定预先确定的格式,诸如键/值元组、分层格式(例如可扩展标记语言XML),或提供准备数据的其它格式。
在框230中继续,系统打开配置数据存储以持久地存储所接收到的准备数据。打开配置数据存储可包括打开和/或创建一个或多个配置数据文件、访问配置数据库、打开到本地或远程服务器的网络连接、访问基于云的存储服务等等。在一些情况中,基于准备数据和与配置数据相关联的虚拟机相关的信息,系统可为配置数据存储选择文件名或其它标识符。
在框240中继续,系统将所接收到的准备数据存储在打开的配置数据存储中。如果配置数据存储是文件,那么系统将所接收到的准备数据写到该文件。系统可以以各种不同格式的任何格式来写数据,诸如键/值元组、分层标记等等。如果配置数据存储是数据库,那么系统将所接收的准备数据写到数据库的特定表格和行。只要将访问准备数据的组件和存储准备数据的组件对配置数据存储的特定格式和位置达成一致,准备数据可被存储在任何特定位置处并以任何适合系统的特定实现的特定格式存储。在一些情况中,格式和/或位置被选择以很好地适合于特定客操作系统。
在框250中继续,系统将所存储的准备数据与特定客虚拟机相关联。将准备数据相关联包括根据特定惯例来命名配置数据文件、在数据库中设置信息等等。此时,虚拟机可能还没有初次运行,并且可能仅仅作为配置文件存在,该配置文件指定该虚拟机将模拟的特定硬件和其它资源。相关联的准备数据指定虚拟机的附加的配置信息,可包括硬件、软件或其它状态信息,该配置信息准备虚拟机以特定角色运作并具有与其它虚拟机相区别的身份。一旦虚拟机执行,系统将所接收的准备信息应用在参考图3描述的方法中。在框250之后,这些步骤结束。
图3是示出在一个实施例中,离线准备系统将先前接收到的准备信息应用到虚拟机的处理的流程图。在框310开始,系统启动客虚拟机来在主操作系统和相关联的硬件资源上执行。启动可以是客虚拟机的第一次启动或后续启动。在很多情况中,客虚拟机将在系统执行大量准备活动时第一次运行,尽管可以由管理员通过系统随着时间来作出并应用额外的改变。管理员可通过虚拟机管理用户界面、经由脚本,或通过用于启动虚拟机的另一个设备来启动客虚拟机。
在框320继续,系统启动运行在客虚拟机内的准备监控程序,该监控程序在配置数据存储和客虚拟机之间通信。准备监控程序可运行为操作系统服务或具有对操作系统配置API低级别访问的监控程序,使得所接收到的准备数据可被应用到客虚拟机。准备监控程序可被提供为虚拟机图像的预配置组件,使得该监控程序被配置以在客虚拟机和它的相关联的客操作系统初始化期间自动开始。
在框330继续,系统监听由准备监控程序打开的通信信道上的准备数据。通信信道可包括打开主机上的文件、打开远程配置数据存储、打开网络套接字或用于访问配置信息的命名的管道等等。当虚拟机正在运行时,系统可立刻通过配置信道接收配置数据并持续性地监听以接收任何经修改的准备数据。准备数据配置客虚拟机来以特定角色操作,并(例如通过给予客虚拟机唯一的主机名、IP地址,或其它配置)将该客虚拟机与其它虚拟机区分开。
在框340继续,系统经由通信信道接收用于指定配置客虚拟机的信息的准备数据以及将该客虚拟机与其它虚拟机区分开的至少一个信息项。该系统可通过访问一个或多个文件、数据库、基于云的存储服务,或用于存储数据的其它设备来接收准备数据。准备数据可以准备监控程序理解的特定格式(诸如分层或作为一组键/值元组)存储。
在框350继续,系统应用所接收到的准备数据以修改客虚拟机的软件状态。应用准备数据可包括调用客操作系统的一个或多个配置API、将准备数据存储在配置数据库中,其中数据可被应用或操作系统组件等检索。该系统还可停止并重新开始受被修改的软件状态影响的服务,以完成准备数据的应用。
在判定框360继续,如果虚拟机还在运行,那么系统循环到框330来继续监听准备数据。管理员可随时间重新配置各种虚拟机,并且该系统提供简单地应用这样的修改的机制。一旦虚拟机终止,准备监控程序随着客虚拟机停止,且过程结束。在框360之后,这些步骤结束。
图4是示出在一个实施例中使用离线准备系统向虚拟机应用准备信息的概念级框图。管理员将用于准备客虚拟机430的配置信息放置到配置文档410中。这可以在虚拟机已被初次运行或甚至被分配到主机之前进行,或之后在虚拟机已经在运行时进行,以修改配置信息。系统经由通信信道420将配置文档410中的信息传送到客虚拟机430。客虚拟机430包括准备监控程序440,准备监控程序440监听准备数据并通过修改客虚拟机430的配置来应用该准备数据。
在一些实施例中,离线准备系统被用来管理云数据中心。系统允许表示一公共虚拟机镜像的单个“最终测试版”连同多个特定配置文件的存储,以将该最终测试版配置为当作具有特定准备信息的任何特定实例来运行。管理工具允许管理者通过选择并将特定配置文件绑定到金色主来启动虚拟机的新实例。
在一些实施例中,离线准备系统允许准备数据的远程应用。由于系统的特性和在远离将要运行虚拟机的主机的位置配置虚拟机的能力,管理员在一个位置配置并管理另一个位置的虚拟机是可能的。管理员可以在他们自己的工作站上执行准备并随后将他们产生的准备数据发送到一个或多个数据中心以将准备数据应用到特定虚拟机实例。管理员还可以建立与正在运行的虚拟机的通信信道以便随后远程修改虚拟机的配置参数。
在一些实施例中,离线准备系统可通过视窗TM管理接口(WMI)、POWERSHELLTM、协调器以及非视窗TM操作系统上的其它工具或其等效工具来编写脚本以允许准备信息通过程序指定。例如,如果管理员希望创建50个虚拟机,每个具有特定范围的一个IP地址,管理员可写一个存储了每个虚拟机的准备数据的脚本,从每个虚拟机的指定范围选择一个IP地址,并将每个虚拟机的该唯一IP地址存储在它自己的准备数据文件中。
以下是XML格式的示例配置文档,该文档适合经由微软TM Hyper-V发送给客虚拟机。键/值元组在它们被发送到服务器之前被高速缓存在Hyper-V主机侧。
以下是POWERSHELLTM脚本的示例,它将特定键/值元组推送到客虚拟机,并随后由运行在该客虚拟机上的代理消费。
从前面的描述中可以看出,可以理解,此处描述的离线准备系统的特定实施例只是为了说明,但是,在不偏离本发明的精神和范围的情况下,可以进行各种修改。因此,本发明只受所附权利要求限制。

Claims (15)

1.一种在虚拟机不工作时捕捉准备信息的计算机实现的方法,所述方法包括:
显示界面用以接收配置所述虚拟机的操作的准备数据,其中所述准备数据包括对于所述虚拟机的特定实例而言唯一的至少一些信息;
经由所显示的界面接收准备数据;
打开配置数据存储以持久存储所接收到的准备数据;
将所接收到的准备数据存储在所打开的配置数据存储中,其中所述准备数据位于所述虚拟机的所述实例之外;
将所存储的准备数据与所述虚拟机的所述实例相关联,其中所述虚拟机的所述实例包括在所述虚拟机的所述实例内运行的准备监控程序;
将所接收到的准备数据提供给所述虚拟机的所述实例内运行的所述准备监控程序;以及
由所述准备监控程序应用所接收到的准备信息以配置所述虚拟机的所述实例,
其中前述步骤在所述虚拟机的所述实例不工作时执行。
2.如权利要求1所述的方法,其特征在于,显示所述界面包括提供图形用户界面GUI、控制台用户界面CUI,或程序接口的至少一个。
3.如权利要求1所述的方法,其特征在于,接收准备数据包括通过管理员将所述数据存储到配置文件来接收准备数据。
4.如权利要求1所述的方法,其特征在于,接收准备数据包括从远离所述虚拟机的计算机系统接收准备数据。
5.如权利要求1所述的方法,其特征在于,接收所述准备数据包括以包括键/值元组的特定预定格式接收准备数据。
6.如权利要求1所述的方法,其特征在于,打开所述配置数据存储包括打开或创建一个或多个配置数据文件。
7.如权利要求1所述的方法,其特征在于,打开所述配置数据存储包括访问配置数据库。
8.如权利要求1所述的方法,其特征在于,打开所述配置数据存储包括基于所述准备数据和与所述配置数据相关联的所述虚拟机相关的信息来选择所述配置数据存储的标识符。
9.如权利要求1所述的方法,其特征在于,存储所述准备数据包括所述配置数据存储的特定格式和位置,所述特定格式和位置与由配置来运行在所述虚拟机上的准备监控程序所消费的格式和位置相匹配。
10.如权利要求1所述的方法,其特征在于,存储所述准备数据包括在所述虚拟机离线时和在所述虚拟机初次运行前存储所述准备数据。
11.如权利要求1所述的方法,其特征在于,关联所述准备数据包括根据标识所述特定虚拟机的特定惯例来命名配置数据文件。
12.如权利要求1所述的方法,其特征在于,所述相关联的准备数据指定所述虚拟机的配置信息,所述配置信息可包括硬件、软件或其它状态信息,所述配置信息准备所述虚拟机以特定角色运作并具有与其它虚拟机相区别的身份。
13.如权利要求1所述的方法,其特征在于,还包括,在所述虚拟机执行时,应用所接收到的准备信息以配置所述虚拟机。
14.一种用于虚拟机的离线准备的计算机系统,所述系统包括:
被配置成执行包含在以下组件内的软件指令的处理器和存储器;
状态捕捉组件,所述状态捕捉组件从管理员接收与虚拟机的操作相关的状态信息以准备特定角色的虚拟机;
配置数据存储,所述配置数据存储在一个或多个虚拟机之外为所述一个或多个虚拟机持久存储状态信息;
状态存储组件,所述状态存储组件将所接收到的状态信息存储在所述配置数据存储中;
准备监控程序组件,所述准备监控程序组件在所述虚拟机中运行,以检索捕捉到并存储在所述配置数据存储中的状态信息;
状态访问组件,所述状态访问组件访问先前从所述虚拟机存储在所述配置数据存储中的状态信息;
状态应用组件,所述状态应用组件应用所访问的状态信息以准备所述虚拟机以由所述状态信息指定的所述特定角色操作,其中前述各组件在所述虚拟机不工作时执行对应的步骤。
15.如权利要求14所述的系统,其特征在于,所述配置数据存储是通过网络集中能访问的储存库,且所述状态存储组件将捕捉到的状态信息通过通信信道传送到所述库。
CN201380012857.9A 2012-03-07 2013-02-20 虚拟机的离线准备 Active CN104160376B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/414,246 US9116735B2 (en) 2012-03-07 2012-03-07 Offline provisioning of virtual machines
US13/414,246 2012-03-07
PCT/US2013/026960 WO2013133975A1 (en) 2012-03-07 2013-02-20 Offline provisioning of virtual machines

Publications (2)

Publication Number Publication Date
CN104160376A CN104160376A (zh) 2014-11-19
CN104160376B true CN104160376B (zh) 2017-07-28

Family

ID=49115236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380012857.9A Active CN104160376B (zh) 2012-03-07 2013-02-20 虚拟机的离线准备

Country Status (4)

Country Link
US (1) US9116735B2 (zh)
EP (1) EP2823393B1 (zh)
CN (1) CN104160376B (zh)
WO (1) WO2013133975A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10003672B2 (en) * 2011-02-09 2018-06-19 Cisco Technology, Inc. Apparatus, systems and methods for deployment of interactive desktop applications on distributed infrastructures
US9195726B2 (en) 2012-04-17 2015-11-24 Salesforce.Com, Inc. Mechanism for facilitating dynamic integration of disparate database architectures for efficient management of resources in an on-demand services environment
CN103716347B (zh) * 2012-09-29 2017-06-23 国际商业机器公司 建立虚拟机的方法、装置和云服务器
US9479563B2 (en) * 2012-12-13 2016-10-25 Salesforce.Com, Inc. Adaptive configuration management databases
WO2014201177A1 (en) * 2013-06-11 2014-12-18 Seven Networks, Inc. Offloading application traffic to a shared communication channel for signal optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9798489B2 (en) * 2014-07-02 2017-10-24 Hedvig, Inc. Cloning a virtual disk in a storage platform
US9864530B2 (en) 2014-07-02 2018-01-09 Hedvig, Inc. Method for writing data to virtual disk using a controller virtual machine and different storage and communication protocols on a single storage platform
US10067722B2 (en) * 2014-07-02 2018-09-04 Hedvig, Inc Storage system for provisioning and storing data to a virtual disk
US9961059B2 (en) * 2014-07-10 2018-05-01 Red Hat Israel, Ltd. Authenticator plugin interface
US9444685B2 (en) * 2014-09-16 2016-09-13 Zscaler, Inc. Systems and methods for detecting and managing cloud configurations
US11455181B1 (en) * 2014-09-19 2022-09-27 Amazon Technologies, Inc. Cross-network connector appliances
US9971621B1 (en) * 2015-02-02 2018-05-15 Amazon Technologies, Inc. Hotpooling virtual machines
CN105045663B (zh) * 2015-08-24 2018-12-04 马金栋 快速部署虚拟机的方法与系统
US10055242B2 (en) 2015-10-16 2018-08-21 Microsoft Technology Licensing, Llc Virtualizing audio decoding hardware
US9898325B2 (en) * 2015-10-20 2018-02-20 Vmware, Inc. Configuration settings for configurable virtual components
US9959133B2 (en) * 2015-11-24 2018-05-01 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Identification and removal of zombie virtual machines
CN105630632B (zh) * 2015-12-25 2018-04-10 华为技术有限公司 一种虚拟机恢复的方法及虚拟机管理设备
US10248174B2 (en) 2016-05-24 2019-04-02 Hedvig, Inc. Persistent reservations for virtual disk using multiple targets
US11153224B2 (en) 2017-02-09 2021-10-19 Radcom Ltd. Method of providing cloud computing infrastructure
US10423791B2 (en) 2017-04-27 2019-09-24 Microsoft Technology Licensing, Llc Enabling offline restart of shielded virtual machines using key caching
WO2018230061A1 (ja) * 2017-06-12 2018-12-20 株式会社オーディオテクニカ 信号処理装置
US10848468B1 (en) 2018-03-05 2020-11-24 Commvault Systems, Inc. In-flight data encryption/decryption for a distributed storage platform
CN108595316B (zh) * 2018-04-20 2020-02-21 星环信息科技(上海)有限公司 分布式应用的生命周期管理方法、管理器、设备和介质
US10503543B1 (en) * 2019-02-04 2019-12-10 Cohesity, Inc. Hosting virtual machines on a secondary storage system
EP3953809A4 (en) * 2019-04-12 2023-01-11 Servicenow Canada Inc. SOFTWARE MODULE DEVELOPMENT SYSTEM
CN113453077A (zh) * 2020-03-26 2021-09-28 北京邦天信息技术有限公司 一种带屏电子设备及其播放方法
US11954513B2 (en) 2021-07-29 2024-04-09 Commvault Systems, Inc. Scalable recovery and/or migration to cloud- based custom-made virtual machines without using failed machines' credentials

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012835A (zh) * 2010-12-22 2011-04-13 北京航空航天大学 一种支持软实时应用的虚拟cpu调度方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054952A1 (en) * 2002-09-13 2004-03-18 Morrow James W. Device verification system and method
US7409719B2 (en) * 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
US9392078B2 (en) 2006-06-23 2016-07-12 Microsoft Technology Licensing, Llc Remote network access via virtual machine
US8327350B2 (en) * 2007-01-02 2012-12-04 International Business Machines Corporation Virtual resource templates
US9262366B2 (en) * 2007-09-21 2016-02-16 Microsoft Technology Licensing, Llc Software deployment in large-scale networked systems
US8191063B2 (en) * 2007-09-30 2012-05-29 Symantex Corporation Method for migrating a plurality of virtual machines by associating files and state information with a single logical container
US8615758B2 (en) 2008-05-30 2013-12-24 Red Hat, Inc. Combining system blueprints, functional layer, and software bits in parallel development of machines
US8375387B2 (en) * 2008-05-30 2013-02-12 Red Hat, Inc. Product independent orchestration tool
US8924960B2 (en) * 2008-08-28 2014-12-30 Intel Corporation Assignment, at least in part, of at least one virtual machine to at least one packet
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US8370835B2 (en) * 2009-03-12 2013-02-05 Arend Erich Dittmer Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device
US8959510B2 (en) 2009-03-19 2015-02-17 Red Hat, Inc. Providing a trusted environment for provisioning a virtual machine
US9003411B2 (en) 2009-05-13 2015-04-07 Verizon Patent And Licensing Inc. Automated provisioning and configuration of virtual and physical servers
US8219990B2 (en) * 2009-05-28 2012-07-10 Novell, Inc. Techniques for managing virtual machine (VM) states
US9086928B2 (en) 2009-08-31 2015-07-21 Accenture Global Services Limited Provisioner within cloud console—defining images of an enterprise to be operable on different cloud computing providers
US20110093847A1 (en) * 2009-10-15 2011-04-21 Shah Dharmesh R Application Hosting Service for Cloud Environments Using Dynamic Machine Images
US8352953B2 (en) 2009-12-03 2013-01-08 International Business Machines Corporation Dynamically provisioning virtual machines
US9021046B2 (en) 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
US8250638B2 (en) * 2010-02-01 2012-08-21 Vmware, Inc. Maintaining the domain access of a virtual machine
CN102169484B (zh) * 2010-02-26 2014-08-13 威睿公司 虚拟化环境中综合的、相关的和动态的数据搜索
US8365985B1 (en) * 2010-04-12 2013-02-05 Diebold Self-Service Systems Division Of Diebold, Incorporated Banking system controlled responsive to data bearing records
US8839228B2 (en) * 2010-04-21 2014-09-16 Ca, Inc. System and method for updating an offline virtual machine
US8495512B1 (en) * 2010-05-20 2013-07-23 Gogrid, LLC System and method for storing a configuration of virtual servers in a hosting system
US20120005672A1 (en) * 2010-07-02 2012-01-05 International Business Machines Corporation Image management for virtual machine instances and associated virtual storage
US8584121B2 (en) * 2010-11-19 2013-11-12 International Business Machines Corporation Using a score-based template to provide a virtual machine
US8959511B2 (en) * 2010-12-14 2015-02-17 Microsoft Corporation Template virtual machines
US10102018B2 (en) * 2011-05-27 2018-10-16 Red Hat, Inc. Introspective application reporting to facilitate virtual machine movement between cloud hosts
US9176766B2 (en) * 2011-07-06 2015-11-03 Microsoft Technology Licensing, Llc Configurable planned virtual machines
US9075643B2 (en) * 2012-01-23 2015-07-07 International Business Machines Corporation Automatically selecting optimal transport protocol in a cloud computing environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012835A (zh) * 2010-12-22 2011-04-13 北京航空航天大学 一种支持软实时应用的虚拟cpu调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Rapid application configuration in Amazon cloud using configurable virtual appliances;Huan Liu;《Proceedings of The 2011 ACM Symposium On Applied Computing》;20110321;第147-154页 *

Also Published As

Publication number Publication date
US20130239106A1 (en) 2013-09-12
EP2823393B1 (en) 2020-07-22
US9116735B2 (en) 2015-08-25
CN104160376A (zh) 2014-11-19
EP2823393A1 (en) 2015-01-14
EP2823393A4 (en) 2016-01-06
WO2013133975A1 (en) 2013-09-12

Similar Documents

Publication Publication Date Title
CN104160376B (zh) 虚拟机的离线准备
CN109194506B (zh) 区块链网络部署方法、平台及计算机存储介质
US10013491B2 (en) Methods and systems of workload mobility across divergent platforms
US9805322B2 (en) Application blueprint and deployment model for dynamic business service management (BSM)
CN110178357A (zh) 远程设备可接入的云中基于云的手机服务
CN105144093B (zh) 使用基础设施管理代理供应的工作负荷部署
CN107003906A (zh) 云计算技术部件的类型到类型分析
CN106487869A (zh) 用于对标签化数据进行控制和标准化的多云网络代理
US20070088630A1 (en) Assessment and/or deployment of computer network component(s)
US8627274B2 (en) Software tool and method for generating a virtual appliance
CN102684970B (zh) 瘦客户端环境提供系统、服务器和瘦客户端环境管理方法
US10979248B1 (en) Onboarding a VNF which includes a VNFC composed of manageable software elements
US20150046425A1 (en) Methods and systems for searching software applications
CN107577496A (zh) 一种基于Docker部署桌面云管理平台的系统及其工作方法与应用
CN108429768A (zh) 云数据分析服务管理系统、方法和云端服务器
CN105827428A (zh) 资产信息的管理方法及装置
CN107783816A (zh) 虚拟机的创建方法及装置、大数据集群创建的方法及装置
CN107370796A (zh) 一种基于Hyper TF的智能学习系统
Saito et al. DevOps with Kubernetes: accelerating software delivery with container orchestrators
Diaz et al. Abstract image management and universal image registration for cloud and hpc infrastructures
Chithaluru et al. Simulation on SDN and NFV models through mininet
CN107741874B (zh) 一种gis云虚拟机自动创建方法及系统
CN113778442A (zh) 一种系统菜单生成方法、装置、设备及存储介质
US11095511B2 (en) Virtual network operations center for cross-cloud hybrid services upgradability
CN108112268A (zh) 管理与自动扩展组相关的负载平衡器

Legal Events

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

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150720

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150720

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant