用于优化虚拟机的部署的方法和系统的制作方法

文档序号:6508984阅读:223来源:国知局
用于优化虚拟机的部署的方法和系统的制作方法
【专利摘要】一种用于优化虚拟机部署的方法、系统和计算机程序产品。云控制器在虚拟机的部署之前预先产生并存储虚拟机的第一启动元数据(例如,RSA密钥),以使得虚拟机在部署时无需产生这样的元数据,从而缩短虚拟机的部署时间。实际上,在部署和激活虚拟机之后,在虚拟机上运行的激活代理向云控制器请求预先产生的第一启动元数据。云控制器检索被请求的预先产生的第一启动元数据以将该第一启动元数据发送给发出请求的虚拟机,并且执行公钥密码术,以使得发出请求的虚拟机可验证所发送的第一启动元数据的真实性。通过缩短用于虚拟机的部署时间,云资源可用于其他活动。
【专利说明】用于优化虚拟机的部署的方法和系统
【技术领域】
[0001]本发明大体上涉及云计算,并且更特别地,涉及通过云控制器预先产生虚拟机的第一启动(first-boot)元数据(例如,RSA密钥、全局唯一标识符(⑶ID))来优化虚拟机的部署。
【背景技术】
[0002]在云计算环境下,计算被作为服务而不是产品递送,由此共享的资源、软件和信息通过网络(比如,互联网)被作为计量服务提供给计算机和其他装置。在这样的环境下,计算、软件、数据访问和存储服务被提供给不需要了解递送这些服务的系统的物理位置和配置的用户。
[0003]在比如可在云计算环境的物理云计算节点中实现的虚拟化计算机环境下,该虚拟化计算机环境包括虚拟操作系统。虚拟操作系统包括公共基础部分和单独的用户部分,这些部分全都在物理计算机上运行。物理计算机被称为主机。公共基础部分可被称为管理程序,每个用户部分可被称为访客。每个访客是计算机的物理资源的逻辑分区。访客操作系统在每个访客上运行,并且访客对于访客操作系统表现为实计算机。每个访客操作系统可托管一个或多个虚拟机。
[0004]虚拟操作系统的映像包含通常在第一次启动时产生的、确保随机性和安全性的许多条唯一元数据(比如,RSA密钥、全局唯一标识符(⑶ID)、安全套接字层(SSL)证书和轻量第三方认证(LTPA)密钥)。目前,虚拟机在部署时产生这些元数据。因为这些元数据中的一些元数据需要大量时间来产生,所以虚拟机的实例的部署时间可能过长。然而,如果虚拟机可被免除产生这样的元数据,则可缩短部署时间。结果,代替于云的有限资源用在第一启动活动(比如,产生这些第一启动元数据)上,这样的资源可被用于其他活动。

【发明内容】

[0005]在本发明的一个实施例中,一种用于优化虚拟机部署的方法包括在虚拟机的部署之前预先产生虚拟机的第一启动元数据。该方法还包括存储预先产生的第一启动元数据。此外,该方法包括部署虚拟机。另外,该方法包括从虚拟机的代理接收请求预先产生的第一启动元数据的请求。该方法另外包括检索被请求的预先产生的第一启动元数据。此外,该方法包括用私钥对检索的预先产生的第一启动元数据进行签名以产生签名。另外,该方法包括由处理器将公钥、签名和检索的预先产生的第一启动元数据发送给虚拟机的代理。
[0006]上述方法的实施例的其他形式在系统中以及在计算机程序产品中。
[0007]为了以下对本发明的详细描述可被更好地理解,前文相当概括地概述了本发明的一个或多个实施例的特征和技术优点。在下文中将描述本发明的另外的特征和优点,其可形成本发明的权利要求的主题。
【专利附图】

【附图说明】[0008]当结合附图考虑以下详细描述时,可获得本发明的更好的理解,其中:
[0009]图1示出根据本发明的实施例配置的网络系统;
[0010]图2示出根据本发明的实施例的云计算环境;
[0011]图3示出根据本发明的实施例的虚拟化计算机环境下的示例性云计算节点的示意图;
[0012]图4示出根据本发明的实施例配置的云控制器的硬件配置;和
[0013]图5是根据本发明的实施例的用于优化虚拟机部署的方法的流程图。
【具体实施方式】
[0014]本发明包括用于优化虚拟机部署的方法、系统和计算机程序产品。在本发明的一个实施例中,云控制器在虚拟机的部署之前预先产生并存储虚拟机的第一启动元数据(例如,RSA密钥、⑶ID标识符、SSL证书和LTPA密钥),以使得虚拟机不需要在部署时产生这样的元数据,从而缩短虚拟机的部署时间。事实上,在部署并激活虚拟机之后,在虚拟机上运行的激活代理向云控制器请求预先产生的第一启动元数据。云控制器检索被请求的预先产生的第一启动元数据,并用私钥对检索的预先产生的第一启动元数据进行签名以产生签名。云控制器将被请求的预先产生的第一启动元数据、签名以及与用于产生签名的私钥对应的公钥发送给虚拟机的发出请求的激活代理,从而允许虚拟机验证预先产生的第一启动元数据的真实性和完整性。通过缩短用于虚拟机的部署时间,云资源可用于其他活动。
[0015]在以下描述中,对许多特定细节进行阐述,以提供本发明的透彻理解。然而,本领域技术人员将明白,没有这些特定细节也可能实施本发明。在其他情况下,为了不以不必要的细节模糊本发明,以框图形式示出了公知的电路。对于大部分,省略了考虑定时考虑因素等的细节,因为这样的细节对于获得本发明的完整理解不是必要的,并且在相关领域的普通技术人员的技能内。
[0016]提前理解的是,尽管本公开内容包括关于云计算的详细描述,但是本文叙述的教导的实现不限于云计算环境。相反,本发明的实施例能够与现在已知的或后来开发的任何类型的集群式计算环境结合实现。
[0017]不管怎样,以下定义来源于Peter Mell和Timothy Grance的日期为2011年
9月的“The NIST Definition of Cloud Computing”,该文献被引用在与其一起提交的Information Disclosure Statement (信息公开声明)上,并且该文献的副本被提供给美国专利商标局。
[0018]云计算是一种模型,该模型用于使得能够以最少的管理努力或服务提供商交互来对可被快速地预配置(provision)和释放的可配置计算资源(例如,网络、服务器、储存器、应用程序和服务)的共享池实现无所不在的、方便的、按需的网络访问。这个云模型由五个基本特性、三个服务模型和四个部署模型组成。
[0019]特性如下:
[0020]按需自助服务:消费者可单方面根据需要自动地预配置计算能力(比如,服务器时间和网络储存器),而无需与每个服务的提供商进行人机交互。
[0021]广泛的网络访问:能力可通过网络获得,并且通过推广被异构的瘦客户端平台或富客户端平台(例如,移动电话、平板电脑、膝上型电脑和工作站)使用的标准机制访问。[0022]资源池:提供商的计算资源聚集成池以使用多租户模型为多个消费者服务,不同的物理资源和虚拟资源根据消费者需求被动态地分配和重新分配。有一种位置独立的感觉,因为消费者通常对所提供的资源的精确位置没有控制或了解,但是可以能够在更高的抽象层次上指定位置(例如,国家、州或数据中心)。资源的例子包括储存器、处理、存储器和网络带宽。
[0023]快速的弹性:能力可被弹性地预配置和释放(在一些情况下自动地)以快速地向外和向内缩放以与需求相称。对于消费者,可用于进行预配置的能力通常似乎是无限的,并且可在任何时间被购买任何数量。
[0024]被测量的服务:云系统通过在适合于服务的类型(例如,储存器、处理、带宽和活动用户账户)的某一抽象层次上权衡利用计量能力来自动地控制和优化资源使用。资源使用可被监视、控制和报告,对被利用的服务的提供商和消费者两者都提供透明性。
[0025]服务模型如下:
[0026]软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供商的应用程序。这些应用程序可通过瘦客户端接口(例如,web浏览器(例如,基于web的电子邮件))或编程接口从各种客户端装置访问。消费者不管理或控制底层的云基础设施(包括网络、服务器、操作系统、储存器或者甚至单个应用程序能力),可能除了有限的用户特定应用程序配置设定之外。
[0027]平台即服务(PaaS):提供给消费者的能力是将通过使用提供商支持的编程语言、库、服务和工具而创建的消费者创建的或获取的应用程序部署到云基础设施上。消费者不管理或控制底层的云基础设施(包括网络、服务器、操作系统或储存器),但是对部署的应用程序具有控制,并且可能还对用于应用程序托管环境的配置设定具有控制。
[0028]基础设施即服务(IaaS):提供给消费者的能力是对在其下消费者能够部署并运行任意软件的处理、储存器、网络和其他基础计算资源进行预配置,所述任意软件可包括操作系统和应用程序。消费者不管理或控制底层的云基础设施,但是对操作系统、储存器和部署的应用程序具有控制;并且还可能对选定联网组件(例如,主机防火墙)具有有限控制。
[0029]部署模型如下:
[0030]私有云:云基础设施被预配置为供包括多个消费者(例如,企业单位)的单个组织独占使用。它可被组织、第三方或者它们的某种组合拥有、管理和操作,并且它可存在于处所内或外。
[0031]社区云:云基础设施被预配置为供来自具有共同关注(例如,使命、安全要求、政策和符合性考虑因素)的组织的特定消费者社区独占使用。它可被社区中的一个或多个组织、第三方或者它们的某种组合拥有、管理和操作,并且它可存在于处所内或外。
[0032]公共云:云基础设施被预配置为供一般公众开放使用。它可被企业、学术或政府组织或者它们的某种组合拥有、管理和操作。它存在于云提供商的处所内。
[0033]混合云:云基础设施是保持独特实体的两种或更多种完全不同的云基础设施(私有的、社区的或公共的)的组成,但是通过使得能够实现数据和应用程序可移植性的标准化技术或专有技术(例如,用于云之间的负荷平衡的云爆发)被绑定在一起。
[0034]现在详细参照附图,图1示出根据本发明的实施例配置的网络系统100。网络系统100包括经由网络103与云计算环境102连接的客户端装置101。客户端装置101可以是被配置有经由网络102与云计算环境102连接的能力的任何类型的计算装置(例如,便携式计算单元、个人数字助理(PDA)、智能电话、膝上型计算机、移动电话、导航装置、游戏机、台式计算机系统、工作站、互联网电器等)。
[0035]网络103可以是例如局域网、广域网、无线广域网、电路切换的电话网络、全球移动通信系统(GSM)网络、无线应用协议(WAP)网络、WiFi网络、IEEE802.11标准网络、这些网络的各种组合等。在不脱离本发明的范围的情况下,这里为简洁起见省略其描述的其他网络也可与图1的系统100结合使用。
[0036]云计算环境102用于将计算作为服务递送给客户端装置101以实现以上讨论的模型。以下结合图2讨论云计算环境102的实施例。
[0037]图2示出根据本发明的实施例的云计算环境102。如所示,云计算环境102包括一个或多个云计算节点201 (也被称为“群集”),云消费者使用的本地计算装置(比如,举例来说,个人数字助理(PDA)或蜂窝电话202、台式计算机203、膝上型计算机204和/或汽车计算机系统205)可与这些云计算节点201进行通信。节点201可彼此进行通信。它们可被物理地或虚拟地分组(未示出)在一个或多个网络(比如,如上所述的私有云、社区云、公共云或混合云或者这些云的组合)中。这允许云计算环境102将基础设施、平台和/或软件作为服务提供,对于这些服务,云消费者不需要在本地计算装置上维护资源。以下结合图3提供示例性云计算节点201的示意图的描述。要理解,图2中所示的计算装置202、203、204、205 (可代表图1的客户端装置101)的类型旨在是说明性的,并且云计算节点201和云计算环境102可通过任何类型的网络和/或网络可寻址连接(例如,通过使用web浏览器)与任何类型的计算机化装置进行通信。被安置在节点201之一上的程序代码可被存储在节点201之一中的计算机可记录存储介质上,并且通过这些计算装置中使用的网络被下载到计算装置202、203、204、205。例如,计算节点201中的服务器计算机可将程序代码存储在服务器计算机上的计算机可读存储介质上。服务器计算机可将该程序代码下载到计算装置202、203,204,205以供在该计算装置上使用。
[0038]现在参照图3,图3示出根据本发明的实施例的虚拟化计算机环境下的云计算节点201A-201N。云计算节点201A-201N可被统称为云计算节点201,或者可分别被单个地称为云计算节点201。如以下结合图5进一步讨论的,云计算节点201A-201N均与云控制器301耦合,云控制器301被配置为提供与云计算节点201上的管理程序进行通信的数据中心层次的功能,安装虚拟机、终止/挂起虚拟机、将虚拟机从一个云计算节点201重新安置到数据中心内的另一个云计算节点201,以及预先产生虚拟机的第一启动元数据(例如,RSA密钥),从而缩短虚拟机的部署时间。
[0039]现在参照云计算节点201A,云计算节点201A包括虚拟操作系统302A。操作系统302A在实计算机或物理计算机303A上执行。实计算机303A包括一个或多个处理器304A、存储器305A (在本文中也被称为主机物理存储器)、一个或多个盘驱动器306A等。为了简洁起见,本文不对实计算机303A的其他组件进行讨论。
[0040]虚拟操作系统302A还包括在本文中被称为“访客”的用户部分307A-307B (在图3中分别被标识为“访客I和访客2”)。每个访客307A、307B能够作为单独的系统运作。也就是说,每个访客307A-307B可被独立地重置,分别托管访客操作系统308A-308B (在图3中分别被标识为“访客10/S”和“访客20/S”),并且用不同的程序操作。在访客307A、307B中运行的操作系统或应用程序表现为可以访问整套系统,但是实际上,仅它的一部分可供使用。
[0041]每个访客操作系统308A、308B可托管一个或多个虚拟机应用程序309A-309C (在图3中分别被标识为“VM1”、“VM2”和“VM3”),比如,Java?虚拟机。例如,访客操作系统308A托管虚拟机应用程序309A-309B。访客操作系统308B托管虚拟机应用程序309C。
[0042]在一个实施例中,在本文中被称为“激活代理”的代理310A在虚拟机(比如,虚拟机309A)上运行。如以下结合图5进一步讨论的,激活代理310A被配置为向云控制器301请求特定元数据(比如,在部署虚拟机(例如,虚拟机309A)之前由云控制器301产生的虚拟机的第一启动元数据),而不是使虚拟机(例如,虚拟机309A)在部署时产生这样的元数据。以这种方式,可缩短虚拟机(例如,虚拟机309A)的部署时间。
[0043]虚拟操作系统302A还包括在本文中被称为管理程序的公共基础部分311A。管理程序311A可用在处理器304A上运行的微代码实现,或者它可用软件实现为虚拟操作系统302A的一部分。管理程序311A被配置为管理并启用访客307A、308B以在单个主机上运行。
[0044]如以上所讨论的,虚拟操作系统302A及其组件在物理计算机或实计算机303A上执行。这些软件组件可被加载到存储器305A中以供处理器304A执行。
[0045]如以上还讨论的,云计算环境102 (图2)可包括如图3所示的多个云计算节点201A-201N。在一个实施例中,每个云计算节点201A-201N类似于前面讨论的云计算节点201A那样被配置。例如,云计算节点201N类似于云计算节点201A那样被配置。云计算节点201N包括与云计算节点201A相同的元件。例如,访客307C-307D (在图3中分别被标识为“访客3和访客4”)在功能上与访客307A-307B相同。类似地,访客操作系统308C-308D(在图3中分别被标识为“访客30/S”和“访客40/S”)在功能上与访客操作系统308A-308B相同。虚拟机309D-309E (在图3中分别被标识为“VM4”和“VM5”)在功能上与虚拟机309A-309C相同。另外,激活代理310B在功能上与激活代理310A相同。此外,管理程序311B在功能上与管理程序311A相同。因此,云计算节点201A的讨论适用于每个云计算节点201 (包括云计算节点201N)。在一个实施例中,每个云计算节点201可被不同地配置,并且物理硬件、管理程序和其他组件也可以不同。
[0046]访客307A-307D可被统称为访客307,或者可分别被单个地称为访客307。访客操作系统308A-308D可被统称为访客操作系统308,或者可分别被单个地称为访客操作系统
308。虚拟机309A-309E可被统称为虚拟机309,或者可分别被单个地称为虚拟机309。激活代理310A-310B可被统称为激活代理310,或者可分别被单个地称为激活代理310。管理程序311A-311B可被统称为管理程序311,或者可分别被单个地称为管理程序311。
[0047]图3的范围不限于特定数量的云计算节点201,并且每个云计算节点201可包括任何数量的访客307、访客操作系统308、虚拟机309等。此外,云计算节点201包括本文中为了简洁起见而没有进行讨论的其他组件。另外,激活代理310可在任何虚拟机309上运行,并且在虚拟机309A上运行的激活代理3IOA和在虚拟机309D上运行的激活代理3IOB的描绘是说明性的。因此,云计算节点201的范围不限于图3中描绘的元件。
[0048]再次参考图3,在一些实施例中,云控制器301支持在本文中被称为管理软件312的模块,该模块可用于管理云计算节点201的所有硬件组件,监视系统利用率,智能地部署数据的映像,并且优化云计算环境102的操作。此外,如以下结合图5进一步讨论的,管理软件312可用于在部署虚拟机309之前预先产生虚拟机309的第一启动元数据(例如,RSA密钥、全局唯一标识符(⑶ID)、安全套接字层(SSL)证书和轻量第三方认证(LTPA)密钥),而不是在部署时使虚拟机309产生这样的元数据。以下结合图4进一步提供云控制器301的硬件配置的描述。
[0049]现在参照图4,图4示出云控制器301 (图3)的硬件配置,该硬件配置表示用于实施本发明的硬件环境。云控制器301具有通过系统总线402与各种其他组件耦合的处理器401。操作系统403在处理器401上运行,并且提供控制并协调图4的各个组件的功能。根据本发明的原理的应用程序404与操作系统403联合运行,并且提供对操作系统403的调用,其中,这些调用实现将被应用程序404执行的各种功能或服务。如以下结合图5进一步讨论的,应用程序404可包括例如用于在部署虚拟机309之前预先产生虚拟机309的第一启动元数据而不是在部署时使虚拟机309产生这样的元数据的程序(比如,图3的管理软件312)。
[0050]再次参照图4,只读存储器(“ROM”)405与系统总线402耦合,并且包括控制云控制器301的某些基本功能的基本输入/输出系统(“BIOS”)。随机存取存储器(“RAM”)406和盘适配器407也与系统总线402耦合。应该指出,包括操作系统403和应用程序404的软件组件可被加载到RAM406中以用于执行,RAM406可以是云控制器301的主存储器。盘适配器407可以是与盘单元408 (例如,盘驱动器)进行通信的集成驱动电子器件(“IDE”)适配器。指出,如以下结合图5进一步讨论的用于在部署虚拟机309之前预先产生虚拟机309的第一启动元数据的程序可驻留在盘单元408中或者应用程序404中。
[0051]云控制器301还可包括与总线402耦合的通信适配器409。通信适配器409将总线402与外部网络(例如,图1的网络103)互连。
[0052]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0053]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0054]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0055]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0056]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0057]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0058]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0059]也可以将这些计算机程序指令加载到计算机、其他可编程数据处理设备或其他装置上,以使一系列操作步骤在该计算机、其他可编程设备或其他装置上执行以生成计算机实现的处理,以使得在该计算机或其他可编程设备上执行的指令提供用于实现流程图和/或一个框图块或多个框图块中指定的功能/动作的处理。
[0060]如【背景技术】部分中所陈述的,虚拟操作系统的映像包含通常在第一次启动时产生的、确保随机性和安全性的许多条唯一元数据(比如,RSA密钥、全局唯一标识符(⑶ID)、安全套接字层(SSL)证书和轻量第三方认证(LTPA)密钥)。目前,虚拟机在部署时产生这些元数据。因为这些元数据中的一些元数据需要大量时间来产生,所以虚拟机的实例的部署时间可能过长。然而,如果虚拟机可被免除产生这样的元数据,则可缩短部署时间。结果,代替于云的有限资源被用在第一启动活动(比如,产生这些第一启动元数据)上,这样的资源可被用于其他活动。
[0061]如以下结合图5进一步讨论的,本发明的原理提供如下方式:该方式用于通过在虚拟机的部署之前使云控制器预先产生虚拟机的第一启动元数据(比如,RSA密钥、全局唯一标识符(⑶ID)、安全套接字层(SSL)证书和轻量第三方认证(LTPA)密钥)而不是在部署时使虚拟机产生这样的元数据,来缩短虚拟机的部署时间。
[0062]图5是根据本发明的实施例的用于优化虚拟机部署的方法500的流程图,通过该方法,缩短用于虚拟机309 (图3)的部署时间,从而释放云的资源以用于其他活动。
[0063]结合图1-4,参照图5,在步骤501中,云控制器301在部署虚拟机309之前预先产生虚拟机309的第一启动元数据。如本文所使用的,虚拟机309的“第一启动元数据”是指通常由虚拟机309在第一次启动时产生的、确保随机性和安全性的元数据(比如,RSA密钥、⑶ID标识符、SSL证书和LTPA密钥)。通过使云控制器301预先产生虚拟机309的第一启动元数据,不是在部署时使虚拟机309产生这样的元数据,用于虚拟机309的部署时间缩短。此外,因为云控制器301而不是虚拟机309产生这样的元数据,所以可更快速地产生元数据,因为云控制器301可具有比虚拟机309更高的CPU内核的分配,从而使得多个线程能够并发地执行。另外,因为用于虚拟机309的部署时间缩短,所以云资源可用于其他活动。
[0064]在步骤502中,云控制器301将预先产生的第一启动元数据存储在比如云控制器301的硬盘驱动器408中。
[0065]在步骤503中,云控制器301部署虚拟机309。一旦虚拟机309(例如,虚拟机309A)已被部署和激活,则在步骤504中,部署的虚拟机309 (例如,虚拟机309A)的激活代理310(例如,激活代理310A)就将对预先产生的第一启动元数据的请求发送给云控制器301。在一个实施例中,这样的通信通过使用带外通信(比如,通过使用REST调用)而发生。以这种方式,如以下进一步讨论的,预先产生的元数据可被从云控制器301安全地传送到虚拟机
309。在一个实施例中,所述通信可包括虚拟机309的附加数据(比如,主机名、IP地址、位置信息、应用程序数据等),该附加数据被云控制器301用于修改/增强所存储的预先产生的第一启动元数据以使得它可用于虚拟机309。被云控制器301存储的第一启动元数据可以是需要被包括在第一启动元数据中以便使得它被虚拟机309使用的丢失信息(例如,主机名、IP地址)。这样的信息可由激活代理310在它给云控制器301的对预先产生的第一启动元数据的请求中提供。
[0066]在步骤505中,云控制器301对该请求进行处理,并比如从盘单元408检索被请求的预先产生的第一启动元数据。在一个实施例中,基于由激活代理310供给的附加数据来修改/增强检索的预先产生的元数据。
[0067]在步骤506中,如以下进一步讨论的,云控制器301用云控制器301的私钥对检索的预先产生的第一启动元数据进行签名以产生签名,从而允许虚拟机309验证预先产生的第一启动元数据的真实性和完整性。
[0068]在步骤507中,云控制器301将被请求的预先产生的第一启动元数据、签名和公钥(与在步骤506中由云控制器301使用的私钥对应的公钥)发送给虚拟机309的发出请求的激活代理310。在一个实施例中,仅所产生的第一启动元数据的单个实例始终被云控制器301存储和使用。因此,当云控制器301发送被请求的预先产生的第一启动元数据时,在云控制器301中不留有所发送的预先产生的第一启动元数据的被存副本,从而出于安全性目的防止它再次被另一虚拟机309使用。
[0069]在步骤508中,虚拟机309确定是否使用接收的公钥来验证签名。如果签名被用公钥验证,则在步骤509中,虚拟机309安装被请求的预先产生的第一启动元数据。否则,如果签名没有被公钥验证,则在步骤510中,虚拟机309不安装被请求的预先产生的第一启动元数据。
[0070]尽管前文讨论了用于认证请求的预先产生的第一启动元数据的公钥密码术的使用,但是其他密码系统可用于认证请求的预先产生的第一启动元数据。利用这样的密码系统的实施例落在本发明的范围内。[0071]在一些实现中,方法500可包括为了清晰起见而没有进行描绘的其他步骤和/或附加步骤。此外,在一些实现中,方法500可按照所呈现的不同的顺序执行,并且图5的讨论中呈现的顺序是说明性的。另外,在一些实现中,方法500中的某些步骤可以以基本上同时的方式执行,或者可被省略。
[0072]本发明的各种实施例的描述出于说明的目的而给出,但并非意图穷举或者限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。本文使用的术语被选择以最佳地解释实施例的原理、实际应用、或者相对于市场中可找到的技术的技术改进,或者以使得本领域的其他普通技术人员能够理解本文公开的实施例。
【权利要求】
1.一种用于优化虚拟机部署的方法,所述方法包括: 在虚拟机的部署之前预先产生所述虚拟机的第一启动元数据; 存储所述预先产生的第一启动元数据; 部署所述虚拟机; 从所述虚拟机的代理接收请求所述预先产生的第一启动元数据的请求; 检索被请求的所述预先产生的第一启动元数据; 用私钥对检索的所述预先产生的第一启动元数据进行签名以产生签名;以及由处理器将公钥、所述签名和检索的所述预先产生的第一启动元数据发送给所述虚拟机的所述代理。
2.根据权利要求1所述的方法,其中,来自所述虚拟机的所述代理的所述请求是经由带外通信接收的。
3.根据权利要求1所述的方法,还包括: 使用所述公钥验证所述签名。
4.根据权利要求3所述的方法,还包括: 响应于所述签名的验证,安装检索的所述预先产生的第一启动元数据。
5.根据权利要求1所述的方法,其中,所述第一启动元数据包括以下之一:RSA密钥、全局唯一标识符(⑶ID)、安全套接字层(`SSL)证书和轻量第三方认证(LTPA)密钥。
6.一种用于优化虚拟机部署的系统,包括: 用于在虚拟机的部署之前预先产生所述虚拟机的第一启动元数据的部件; 用于存储所述预先产生的第一启动元数据的部件; 用于部署所述虚拟机的部件; 用于从所述虚拟机的代理接收请求所述预先产生的第一启动元数据的请求的部件; 用于检索被请求的所述预先产生的第一启动元数据的部件; 用于用私钥对检索的所述预先产生的第一启动元数据进行签名以产生签名的部件;以及 用于将公钥、所述签名和检索的所述预先产生的第一启动元数据发送给所述虚拟机的所述代理的部件。
7.根据权利要求6所述的系统,其中,来自所述虚拟机的所述代理的所述请求是经由带外通信接收的。
8.根据权利要求6所述的系统,其中,所述签名使用所述公钥被验证。
9.根据权利要求8所述的系统,其中,响应于所述签名的验证,所述虚拟机安装检索的所述预先产生的第一启动元数据。
10.根据权利要求6所述的系统,其中,所述第一启动元数据包括以下之一:RSA密钥、全局唯一标识符(⑶ID)、安全套接字层(SSL)证书和轻量第三方认证(LTPA)密钥。
11.一种系统,包括: 存储器单元,所述存储器单元用于存储用于优化虚拟机部署的计算机程序;以及处理器,所述处理器与所述存储器单元耦合,其中,响应于所述计算机程序,所述处理器包括: 用于在虚拟机的部署之前预先产生所述虚拟机的第一启动元数据的电路系统;用于存储所述预先产生的第一启动元数据的电路系统; 用于部署所述虚拟机的电路系统; 用于从所述虚拟机的代理接收请求所述预先产生的第一启动元数据的请求的电路系统; 用于检索被请求的所述预先产生的第一启动元数据的电路系统; 用于用私钥对检索的所述预先产生的第一启动元数据进行签名以产生签名的电路系统;以及 用于将公钥、所述签名和检索的所述预先产生的第一启动元数据发送给所述虚拟机的所述代理的电路系统。
12.根据权利要求11所述的系统,其中,来自所述虚拟机的所述代理的所述请求是经由带外通信接收的。
13.根据权利要求11所述的系统,其中,所述签名使用所述公钥被验证。
14.根据权利13所述的系统,其中,响应于所述签名的验证,所述虚拟机安装检索的所述预先产生的第一启动元数据。
15.根据权利要求1 1所述的系统,其中,所述第一启动元数据包括以下之一:RSA密钥、全局唯一标识符(⑶ID)、安全套接字层(SSL)证书和轻量第三方认证(LTPA)密钥。
【文档编号】G06F9/455GK103631638SQ201310377154
【公开日】2014年3月12日 申请日期:2013年8月27日 优先权日:2012年8月27日
【发明者】I·M·赫宁格, D·A·拉森, A·J·奎尔科 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1