用于从预先供应的虚拟机池选择虚拟机的方法和系统的制作方法

文档序号:6373113阅读:177来源:国知局
专利名称:用于从预先供应的虚拟机池选择虚拟机的方法和系统的制作方法
用于从预先供应的虚拟机池选择虚拟机的方法和系统技术领域
一般而言,本发明涉及在联网计算环境(例如云计算环境)中选择虚拟机(VM)。 具体而言,本发明涉及从预先供应(provision)的VM池选择VM以用于处理工作负载请求。
背景技术
联网计算环境(例如云计算环境)是对先前网格环境的增强,其中多个网格和其它计算资源可以由一个或者多个附加抽象层(例如云层)进一步增强、因此使相异设备在终端消费者看来为单个无缝资源池。这些资源可以包括比如物理或者逻辑计算引擎、服务器和设备、设备存储器、存储设备这样的资源以及其它资源。
通常在相对静态硬件池内表现云计算服务,其中操作系统和应用被部署和重新配置成满足消费者的计算需求。在云环境的边界内,可以安装和覆盖应用映像,可以修改因特网协议(IP)地址,并且可以分配真实和虚拟处理器以满足可变商务需要。目前,不同云服务提供商可能需要可变数量的时间以供应消费者请求的虚拟机。例如一些云提供商可能以在几秒内供应特定资源,而其它云提供商可能花费数小时。供应速度上的差异一般由至少三个因素引起存储架构类型、云管理平台的架构和/或用来供应资源的方法。这样,在实现高效计算资源供应时间时可能存在挑战。发明内容
本发明的实施例提供一组可以用来选择应当使用哪些部分和/或预先供应的虚拟机(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池选择具有该组软件程序的一组VM,该组VM基于以下各项中的至少一项来选择 用于安装该组VM的时间长度;该组VM被需求的概率;或者具有该组软件程序的该组VM的数量;安装该组VM ;以及使用该组VM中的该组软件程序来处理工作负载请求。
本发明的第四方面提供一种用于部署系统的方法,该系统用于在联网计算环境中选择预先供应的虚拟机(VM)以处理工作负载请求,该方法包括部署计算机基础设施,该计算机基础设施可操作用于在计算机存储介质中接收工作负载请求;标识所需要的用于处理工作负载请求的一组软件程序;在联网计算环境中从预先供应的VM池选择具有该组软件程序的一组VM,该组VM基于以下各项中的至少一项来选择用于安装该组VM的时间长度;该组VM被需求的概率;或者具有该组软件程序的该组VM的数量;安装该组VM ;以及使用该组VM中的该组软件程序来处理工作负载请求。


从与以下附图结合进行的对本发明各种方面的下文具体描述中将更容易理解本发明的这些和其它特征
图I表示根据本发明一实施例的云计算节点。
图2表示根据本发明一实施例的云计算环境。
图3表示根据本发明一实施例的抽象模型层。
图4表不根据本发明一实施例的系统图。
图5表不根据本发明一实施例的安装图形。
图6表示根据本发明一实施例的方法流程图。
附图未必按比例绘制。附图仅为示意表示,而并非旨在于描绘本发明的具体参数。 附图旨在于仅表示本发明的典型实施例、因此不应被视为限制本发明的范围。在附图中,相似编号代表相似兀件。
具体实施方式
这里现在将参照其中示出了示例实施例的附图更完全地描述说明性实施例。然而本公开内容可以用许多不同形式来实施,而不应解释为限于这里阐述的示例性实施例。实际上,提供这些示例实施例使得本公开内容将透彻和完整,并且将向本领域技术人员完全传达本公开内容的范围。在描述中,可以省略公知特征和技术的细节以避免不必要地模糊所呈现的实施例。
这里所用术语仅出于描述特定实施例的目的,而并非旨在于限制本公开内容。如这里所用,单数形式“一个/ 一种”和“该”除非上下文另有明示否则旨在于也包括复数形式。另外,使用术语“一个/ 一种”等不表示数量上的限制,而实际上表示存在至少一个引用项。术语“组”旨在于意味着至少一个的数量。还将理解,术语“包括”,或“包含”当在本说明书中使用时指定存在所言特征、区域、整体、步骤、操作、元件和/或部件、但是不排除存在或者此外还有一个或者多个其它特征、区域、整体、步骤、操作、元件、部件和/或其组合。
本发明的实施例提供一组可以用来选择应当使用哪些部分和/或预先供应的虚拟机(VM)作为基础平台,以满足在联网计算环境(例如云计算环境)中接收的新工作负载 (例如供应)请求的算法方法。具体而言,当接收工作负载请求时,标识为了处理工作负载请求而需要的一组(例如至少一个)软件程序。然后从预先供应的VM池选择具有该组软件程序的一组VM。一般而言,可以遵循多个方法和/或因素以选择该组VM。示例包括用于安装该组VM的时间长度、该组VM被需求的概率,和/或具有该组软件程序的该组VM的数量。一旦已经选择该组VM,可以安装该组VM,并且可以使用该组软件程序来处理工作负载请求。
首先应当理解,尽管本公开包括对云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括
按需自助式服务云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展, 并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的, 并能在任意时候都能获取任意数量的计算能力。
可测量的服务云系统通过利用适于服务类型(例如存储、处理、带宽和活跃消费者账户)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于消费者的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下
私有云云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、 安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术 (例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的一个例子。图I显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。 总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12—起操作的计算系统、环境和/或配置的例子包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、 小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12 可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图I所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM) 30和/或高速缓冲存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可以用于读写不可移动的、非易失性磁介质(图I未显示,通常称为“硬盘驱动器”)。尽管图I中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器, 以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。 在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28 可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
本发明的实施例可以实施为一种计算机可读信号介质,该计算机可读信号介质可以包括传播的数据信号,该数据信号具有实施于其中的计算机可读程序代码(例如在基带中或者作为载波的部分)。这样的传播信号可以采用多种形式(包括但不限于电磁、光学或者其任何适当组合)中的任何形式。计算机可读信号介质可以是任何计算机可读介质,该计算机可读介质不是计算机可读存储介质并且可以传达、传播或者传送用于由指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备结合使用的程序。
可以使用任何适当介质(包括但不限于无线、有线、光纤线缆、射频(RF)等或者前述各项的任何适当组合)来传输在计算机可读介质上实施的程序代码。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28 中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、 显示器24等)通信,还可与一个或者多个使得消费者能与该计算机系统/良务器12交互的设备通信,和/或与使得该计算机系统/良务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过I/O接口 22进行。 并且,计算机系统/良务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12 —起操作,包括但不限于微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C 和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如CN 102981908 A书明说6/9页
上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和 /或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图 3所示,提供下列层和对应功能
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括主机。在一个例子中,IBM zSeries 系统和基于RISC(精简指令集计算机)体系结构的服务器。在一个例子中,IBM pSeries 系统、IBM xSeries 系统、IBM BladeCenter⑩系统、存储设备、网络和网络组件。软件组件的例子包括网络应用服务器软件。在一个例子中,IBM WebSphere 应用服务器软件和数据库软件。在一个例子中,IBM DB2 数据库软件。(IBM,zSeries, pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能资源供应功能提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能为云的消费者和任务提供身份认证,为数据和其它资源提供保护。消费者门户功能为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能 为根据SLA预测的对云计算资源未来需求提供预先安排和供应。在管理层中还示出了虚拟机选择功能,该功能代表在本发明的实施例之下提供的功能。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及消费者数据存储和备份。如上文提到的那样,所有参照图3描述的前述示例仅为说明性的,并且本发明不限于这些示例。
理解如这里描述的本发明的所有功能通常可以由(管理层64 (该管理层可以有形地实施为程序/工具40的程序代码42的模块(图I))的)虚拟机选择功能执行。然而情况并非必须如此。实际上,这里记载的功能可以由图3中所示层60-66中的任何层实现/ 实施和/或启用。
重申的是,虽然本公开内容包括关于云计算的具体描述,但是这里记载的教导的实施不限于云计算环境。实际上,本发明的实施例旨在用现在已知或者以后开发的任何类型的联网计算环境来实施。
现在参照图4,示出了根据本发明一个方面的系统图。如所表示的那样,在联网计算环境84 (例如包括云计算环境50)内示出了虚拟机轮询引擎(引擎70)。一般而言,引擎970可以实施为图1的计算机系统12上的程序40,并且可以实施如图3的管理层64中所示的、这里记载的功能。一般而言,引擎70(在一个实施例中)包括规则和/或计算引擎,该引擎处理一组(至少一个)规则78,和/或并且执行一组计算,以从预先供应的VM池(池 74)中选择一组VM 72A-N,以处理/操纵一个或者多个工作负载请求76A-N。按照这种方式,引擎70可以执行与通用计算机相似的功能。
按照这种方式,引擎70可以使用规则78来执行多个功能。具体而言,引擎70可以在计算机存储介质中接收工作负载请求;标识所需要的用于处理工作负载请求的一组软件程序;在联网计算环境中从预先供应的VM池选择具有该组软件程序的一组VM,该组VM 基于以下各项中的至少一项来选择用于安装该组VM而需要的时间长度;该组VM被需求的概率;或者具有该组软件程序的该组VM的数量;安装该组VM ;以及使用该组VM中的该组软件程序来处理工作负载请求;以及其它功能。
现在将更具体说明引擎70的功能。假设云环境50包括(例如至少部分)预先供应的VM 72A-N的池74。另外假设对于部分预先供应的映像72A-N存在一些供应历史和评级数据80 (例如在一组数据库82A-N等中)。在本发明的实施例之下,存在多个如下方法/ 方式,可以实施这些方法/方式以标识池74中的哪些VM 72A-N包括所需要的用于处理工作负载请求76A-N的软件程序。在下文阐述的示例中,将假设提供和/或需要多至三个可能的软件程序(即软件程序“A”、“B”、“C”)(或者其任何组合)。然而情况并非必须如此, 并且理解仅出于说明性目的而引用软件程序“A”、“B”、“C”。
方法/方式1-基于最短安装时间的选择这一方法包括如下算法,该算法确定将需要最短时间以实现特定工作负载请求的部分预先供应的VM。可以通过循环遍历所有部分供应的VM、并且选择需要最少时间的VM来实施这一方法。在图5中更具体地示出了这一概念。如所表示的那样,图5的图形示出了具有软件程序“A”、“B”和/或“C”的某一组合的VM 100A-N。也示出了各种遍历路径102A-N,这些路径具有用于获得所有三个软件程序和“C”的相关联时间“tx”。例如从VM 100A (空集)开始,如节点100N中所示、 用于获得所有三个软件程序的一个可能路由是遍历通向VM 100B的路径tb、然后是通向VM 100E的路径ta、以及然后是通向VM 100N的路径t。。如进一步所示,可以遵循从VM 100A到 VM 100N的多个路径。在上文描述 的基于时间的方法/方式之下,引擎将计算所有可能路径的遍历时间、然后选择具有最少累计遍历时间的可用路径。
方法/方式2-选择具有最少需求概率的预先供应的VM :在这一方法/方式中,引擎70标识具有最低需求概率的卩1(卩(软件组合)),并且选择该软件组合VM。这一方法未利用具有更高需求概率的W,因为将可能在不久的将来需要那些VM。这一方式将有益于如下云环境,在该云环境中,比相关联云管理系统可以补充部分预先供应的池74更快地接收工作负载请求。
方法/方式3-选择具有最高需求概率的部分预先供应的VM :这一方法与方法/方式2基本上相反,因为引擎70确定具有最高需求概率的VM(P (软件组合))。这一方法基于具有高P (软件组合)的特定VM,这将意味着在池74中存在更多它们。因而可能存在更多时间来用相似/类似VM补充池74。
方法4-选择具有最高数量的部分预先供应的VM的软件组合(或者具有软件组合的VM)。这一方法检查无需从空集开始的所有可能起始组合(例如暂存器(scratch))、并且继而利用具有最大数目的部分供应的VM的软件组合。在一个说明性示例中,VM 1= {A} 并且VM 2 = {B}。还存在10个预先供应的VMl但仅存在2个预先供应的VM2。在这一情形中,方法/方式4将利用VM 1,因为存在VM I的大量供应,因此将无损于池74的多样性。
现在参照图6,示出了根据本发明一个实施例的方法流程图。如所表示的那样,在步骤SI中,在计算机存储介质中接收工作负载请求。在步骤S2中,标识所需要的用于处理工作负载请求的一组软件程序。在步骤S3中,在联网计算环境中从具有预先供应的VM池选择该组软件程序的一组VM。一般而言,可以基于以下各项中的至少一项选择该组VM :用于安装该组VM而需要的时间长度;该组VM被需求的概率;或者具有该组软件程序的该组 VM的数量。在步骤S4中,安装该组VM,以及在步骤S5中,使用该组VM中的该组软件程序来处理工作负载请求。
尽管这里示出和描述为VM选择解决方案,但是理解本发明还提供各种备选实施例。例如在一个实施例中,本发明提供一种包括计算机程序代码的计算机可读/可用介质, 该计算机程序代码用于使计算机基础设施能够提供如这里讨论的VM选择功能。在这一程度上,计算机可读/可用介质包括如下程序代码,该程序代码实施本发明的各种过程中的每个过程。理解术语计算机可读介质或者计算机可用介质包括程序代码的任何类型的物理实施例中的一个或者多个实施例。具体而言,计算机可读/可用介质可以包括在一个或者多个便携存储制造品(例如光盘、磁盘、磁带等)上、在计算机设备的一个或者多个数据存储部分(比如存储器28(图I)和/或存储系统34(图I)(例如固定盘、只读存储器、随机存取存储器、高速缓冲存储器等))上实施的程序代码。
在另一实施例中,本发明提供一种基于订购、广告和/或费用执行本发明的过程的方法。也就是说,服务提供商(比如SolutionIntegrator)可以赋予提供VM选择功能。 在这一情况下,服务提供商可以创建、维护、支持等如下计算机基础设施(比如计算机系统 12 (图I)),该计算机基础设施为一个或者多个消费者执行本发明的过程。作为回报,服务提供商可以在订购和/或费用协议之下从消费者接收付款和/或服务提供商可以从向一个或者多个第三方销售广告内容中接收付款。
在又一实施例中,本发明提供一种用于VM选择的计算机实施的方法。在这一情况下,可以提供计算机基础设施(比如计算机系统12(图1)),并且可以获得(例如创建、购买、使用、修改等)并且向计算机基础设施部署用于执行本发明的过程的一个或者多个系统。在这一程度上,系统的部署可以包括以下各项中的一项或者多项(I)从计算机可读介质在计算设备(比如计算机系统12(图I))上安装程序代码;(2)向计算机基础设施添加一个或者多个计算设备;以及(3)并入和/或修改计算机基础设施的一个或者多个现有系统以使计算机基础设施能够执行本发明的过程。
如这里所用,理解术语“程序代码”和“计算机程序代码”同义并且意味着如下指令集的以任何语言、代码或者符号表示法的任何表达,该指令集旨在使具有信息处理能力的计算设备直接或者在以下各项中的一项或者两项之后执行特定功能(a)转换成另一语言、代码或者符号表示法;和/或(b)以不同材料形式再现。在这一程度上,程序代码可以实施为以下各项中的一项或者多项应用/软件程序、组件软件/功能库、操作系统、用于特定计算设备的基本设备系统/驱动器等。
下文可以提供一种适合用于存储和/或执行程序代码的数据处理系统,并且该数据处理系统可以包括通过系统总线直接或者间接通信地耦合到存储器元件的至少一个处理器。存储器元件可以包括但不限于在实际执行程序代码期间所运用的本地存储器、大容量储存器和高速缓冲存储器,这些高速缓冲存储器提供至少一些程序代码的暂时存储以便减少在执行期间必须从大容量储存器取回代码的次数。输入/输出和/或其它外部设备 (包括但不限于键盘、显示器、指点设备等)可以直接或者通过中介设备控制器耦合到系统。
网络适配器也可以耦合到系统以使数据处理系统能够变成通过中介专用或者公共网络的任何组合耦合到其它数据处理系统、远程打印机、存储设备等。说明性网络适配器包括但不限于调制解调器、线缆调制解调器和以太网卡。
已经出于说明和描述的目的而呈现对本发明各种方面的前文描述。并非旨在于穷举本发明或者使本发明限于公开的精确形式,并且显然许多修改和变化是可能的。本领域技术人员可以清楚的这样的修改和变化旨在于包含于如所附权利要求限定的本发明的范围内。
权利要求
1.一种用于在联网计算环境中选择预先供应的虚拟机(VM)以处理工作负载请求的计算机实施的方法,包括 在计算机存储介质中接收工作负载请求; 标识所需要的用于处理所述工作负载请求的一组软件程序; 在所述联网计算环境中从预先供应的VM池选择具有所述一组软件程序的一组VM,所述一组VM基于以下各项中的至少一项来选择用于安装所述一组VM的时间长度;所述一组VM被需求的概率;或者具有所述一组软件程序的所述一组VM的数量; 安装所述一组VM;以及 使用所述一组VM中的所述一组软件程序来处理所述工作负载请求。
2.根据权利要求I所述的计算机实施的方法,所述一组软件程序是基于用于安装所述一组VM的最短时间长度来选择的。
3.根据权利要求I所述的计算机实施的方法,所述一组软件程序是基于所述一组VM将被需求的最低概率来选择的。
4.根据权利要求I所述的计算机实施的方法,所述一组软件程序是基于所述一组VM将被需求的最高概率来选择的。
5.根据权利要求I所述的计算机实施的方法,所述一组软件程序是基于具有所述一组软件程序的一组VM的最高数量来选择的。
6.根据权利要求I所述的计算机实施的方法,所述联网计算环境包括云计算环境。
7.一种用于在联网计算环境中选择预先供应的虚拟机(VM)以处理工作负载请求的系统,包括 包括指令的存储器介质; 耦合到所述存储器介质的总线;以及 耦合到所述总线的处理器,所述处理器在执行所述指令时使所述系统 在计算机存储介质中接收工作负载请求; 标识所需要的用于处理所述工作负载请求的一组软件程序; 在所述联网计算环境中从预先供应的VM池选择具有所述一组软件程序的一组VM,所述一组VM基于以下各项中的至少一项来选择用于安装所述一组VM的时间长度;所述一组VM被需求的概率;或者具有所述一组软件程序的所述一组VM的数量; 安装所述一组VM;以及 使用所述一组VM中的所述一组软件程序来处理所述工作负载请求。
8.根据权利要求7所述的系统,所述存储介质还包括用于使所述系统基于用于安装所述一组VM的最短时间长度来选择所述一组软件程序的指令。
9.根据权利要求7所述的系统,所述存储介质还包括用于使所述系统基于所述一组VM将被需求的最低概率来选择所述一组软件程序的指令。
10.根据权利要求7所述的系统,所述存储介质还包括用于使所述系统基于所述一组VM将被需求的最高概率来选择所述一组软件程序的指令。
11.根据权利要求7所述的系统,所述存储介质还包括用于使所述系统基于具有所述一组软件程序的一组VM的最高数量来选择所述一组软件程序的指令。
12.根据权利要求7所述的系统,所述联网计算环境包括云计算环境。
13.一种用于部署系统的方法,所述系统用于在联网计算环境中选择预先供应的虚拟机(VM)以处理工作负载请求,所述方法包括 部署计算机基础设施,所述计算机基础设施可操作用于 在计算机存储介质中接收工作负载请求; 标识所需要的用于处理所述工作负载请求的一组软件程序; 在所述联网计算环境中从预先供应的VM池选择具有所述一组软件程序的一组VM,所述一组VM基于以下各项中的至少一项来选择用于安装所述一组VM的时间长度;所述一组VM被需求的概率;或者具有所述一组软件程序的所述一组VM的数量; 安装所述一组VM;以及 使用所述一组VM中的所述一组软件程序来处理所述工作负载请求。
14.根据权利要求13所述的方法,所述联网计算环境包括云计算环境。
全文摘要
本发明的实施例提供一组可以用来选择应当使用哪些部分和/或预先供应的虚拟机(VM)作为基础平台,以满足在联网计算环境(例如云计算环境)中接收的新工作负载(例如供应)请求的算法方法。具体而言,当接收工作负载请求时,标识所需要的用于处理工作负载请求的一组(例如至少一个)软件程序。然后从预先供应的VM池选择具有该组软件程序的一组VM。一般而言,可以遵循多个方法和/或因素以选择该组VM。示例包括用于安装该组VM的时间长度、该组VM被需求的概率和/或具有该组软件程序的该组VM的数量。一旦已经选择该组VM,可以安装该组VM,并且可以使用该组软件程序来处理工作负载请求。
文档编号G06F9/50GK102981908SQ20121023886
公开日2013年3月20日 申请日期2012年7月10日 优先权日2011年8月30日
发明者J·L·安德森, G·J·伯斯, J·L·科维达克, C·W·罗施 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1