在网络计算环境中动态地获得计算资源的制作方法

文档序号:6496186阅读:194来源:国知局
在网络计算环境中动态地获得计算资源的制作方法
【专利摘要】本发明的实施例提供了一种基于基础架构/计算资源需求在网络计算环境(如,云计算环境)中动态地获得计算资源的方法。在典型的实施例中,网络计算环境的第一部分之外的(处理工作负载组所需要的)计算资源组被识别。一旦被识别,与所述计算资源组的至少一个提供者进行电子协商以利用所述提供者的计算资源组处理所述工作负载组。一般,所述协商基于至少一个计算机数据结构中存储的、与至少一个提供者相关联的至少一个资源注册(阐明诸如使用率、使用限制等利用所述计算资源组的条款)。响应于所述协商的成功完成,所述计算资源组将与第一部分相关联。这样的关联可以通过不同的方法发生,诸如利用公共的云环境中的计算资源、扩展第一部分以包括所述计算资源组,等等。
【专利说明】在网络计算环境中动态地获得计算资源
【技术领域】
[0001]一般地,本发明涉及计算资源优化。具体地,本发明涉及在网络计算环境(如,云计算环境)中计算资源的动态获得。
【背景技术】
[0002]网络计算环境(如,云计算环境)是对前任网格环境的增强,其中多个网格和其他计算资源可以被一个或多个附加的抽象层(如,云层)进一步增强,由此使不同的设备作为单一的无缝资源池展现给终端用户。这些资源可以包括诸如物理的或逻辑的计算引擎、月艮务器和设备,设备存储器,存储设备,等等。
[0003]目前,很多网络计算服务(如,云计算服务)是通过基础架构供给(如,在相对静态的硬件池内)提供的,由此操作系统和计算机软件应用可以被部署和重新配置。在典型的云计算环境中,应用映像(image)可以被安装和重写。因特网协议(IP)地址可以被修改,并且,真实的和虚拟的处理器被分配以满足变化的资源需求。然而,所述云计算环境中可能存在的挑战典型地是静态实体,其基础架构被完全地管理。如此,云计算环境的优化典型地通过静态获得和安装新的硬件和/或其他资源实现。这样的方法可能效率低下和/或经济上不可行。

【发明内容】

[0004]本发明的实施例提供了一种基于基础架构/计算资源需求在网络计算环境(如,云计算环境)中动态地获得计算资源的方法。在一个典型的实施例中,网络计算环境的第一部分之外的(处理工作负载组所需要的)计算资源组被识别。一旦被识别,可以与所述计算资源组的至少一个提供者进行电子协商以利用所述提供者的计算资源组处理所述工作负载组。通常,所述协商基于至少一个计算机数据结构中存储的、与至少一个提供者相关联的至少一个资源注册(阐明诸如使用率、使用限制等利用所述计算资源组的条款)。响应于所述协商的成功完成,所述计算资源组将与第一部分相关联。这样的关联可以通过各种方法发生,诸如利用公共的云环境中的计算资源、扩展第一部分以包括所述计算资源组,等等。
[0005]本发明的第一个方面提供了一种计算机实现的、在网络计算环境中动态地获得计算资源的方法,包括:识别所述网络计算环境的第一部分之外的计算资源组,所述计算资源组是处理与所述第一部分相关联的工作负载组所需要的;与所述计算资源组的至少一个提供者协商以利用所述至少一个提供者的计算资源组处理所述工作负载组,所述协商基于至少一个计算机数据结构中存储的、与至少一个提供者相关联的至少一个资源注册;以及响应于协商的成功,将所述计算资源组与网络计算环境的第一部分相关联。
[0006]本发明的第二个方面提供了一种在网络计算环境中动态地获得计算资源的系统,包括:含指令的存储介质;与所述存储介质耦接的总线;以及与所述总线耦接的处理器,当其执行指令时引起系统:识别所述网络计算环境的第一部分之外的计算资源组,所述计算资源组是处理与所述第一部分相关联的工作负载组所需要的;与所述计算资源组的至少一个提供者协商以利用所述至少一个提供者的计算资源组处理所述工作负载组,所述协商基于至少一个计算机数据结构中存储的、与至少一个提供者相关联的至少一个资源注册;以及响应于协商的成功,将所述计算资源组与网络计算环境的第一部分相关联。
[0007]本发明的第三个方面提供了一种在网络计算环境中动态地获得计算资源的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,以及存储在所述计算机可读存储介质上的程序指令,以便:识别所述网络计算环境的第一部分之外的计算资源组,所述计算资源组是处理与所述第一部分相关联的工作负载组所需要的;与所述计算资源组的至少一个提供者协商以利用所述至少一个提供者的计算资源组处理所述工作负载组,所述协商基于至少一个计算机数据结构中存储的、与至少一个提供者相关联的至少一个资源注册;以及响应于协商的成功,将所述计算资源组与网络计算环境的第一部分相关联。
[0008]本发明的第四个方面提供了一种部署在网络计算环境中动态地获得计算资源的系统的方法,包括:提供计算机基础架构,其可操作于:识别所述网络计算环境的第一部分之外的计算资源组,所述计算资源组是处理与所述第一部分相关联的工作负载组所需要的;与所述计算资源组的至少一个提供者协商以利用所述至少一个提供者的计算资源组处理所述工作负载组,所述协商基于至少一个计算机数据结构中存储的、与至少一个提供者相关联的至少一个资源注册;以及响应于协商的成功,将所述计算资源组与网络计算环境的第一部分相关联。
【专利附图】

【附图说明】
[0009]结合附图,从下面对本发明的不同方面的描述中,本发明的这些和其他特征将变得清楚和更加容易理解,其中:
[0010]图1表示根据本发明一实施例的云计算节点;
[0011]图2表示根据本发明一实施例的云计算环境;
[0012]图3表示根据本发明一实施例的抽象模型层;
[0013]图4表示根据本发明一实施例的系统框图;
[0014]图5表示根据本发明一实施例的方法流程图。
[0015]所述附图不一定是按比例绘制的。所述附图仅仅是示意的表示,不是为了描绘本发明的特定的参数。所述附图意在仅表示本发明的典型的实施例,因此不应该被认为是限制本发明的范围。在所述附图中,相同的编号表示相同的元素。
【具体实施方式】
[0016]现在将参考附图更全面地描述本发明的示例性的实施例,在附图中示出了范例的实施例。然而,本公开可以以许多不同的形式来具体化,并且不应当被解释为限定于此处所阐述的实施例。相反,提供这些实施例以使得该公开彻底和完整,并且全面地向本领域的技术人员传达本发明的范围。在本说明书中,众所周知的特征和技术的细节会被忽略以避免不必要地模糊这里呈现的实施例。
[0017]这里使用是术语仅仅是为了说明具体的实施例而不是限制本公开。如这里使用的,单数形式“一(a)” “一个(an)” “该(the)”意在也包括复数形式,除非上下文明确指示。此外,术语“a” “an”等的使用不是表示数量的限制,而是表示至少有一个被引用的条目出现。此外,还应该理解,当本说明书中使用术语“包括(comprise)”和/或“包含(comprising)”或“includes”和/或“including”时,指明了陈述的特征、区域、整体、步骤、操作、元件和/或组件的出现,但不排除一个或多个其他特征、区域、整体、步骤、操作、元件、组件和/或其构成的组的出现或附加。
[0018]本发明的实施例提供了一种基于基础架构/计算资源需求在网络计算环境(如,云计算环境)中动态地获得计算资源的方法。在典型的实施例中,网络计算环境的第一部分之外的(处理工作负载组需要的)计算资源组被识别。一旦被识别,可与所述计算资源组的至少一个提供者进行电子协商,以利用所述提供者的计算资源组处理所述工作负载组。通常,所述协商基于至少一个计算机数据结构中存储的、与至少一个提供者相关联的至少一个资源注册(阐明诸如使用率、使用限制等利用所述计算资源组的条款)。响应于所述协商的成功完成,所述计算资源组将与第一部分相关联。这样的关联可以通过不同的方法发生,诸如利用公共的云环境中的计算资源、扩展第一部分以包括所述计算资源组,等等
[0019]首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
[0020]云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0021]特征包括:
[0022]按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0023]广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
[0024]资源池:提供者的计算资源被归入资源池并通过多租户(mult1-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和解分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0025]迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
[0026]可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
[0027]服务模型如下:
[0028]软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0029]平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
[0030]基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
[0031]部署模型如下:
[0032]私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
[0033]共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
[0034]公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
[0035]混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0036]云计算环境是面向服务的,特点集中在无状态性、低耦接性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
[0037]现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
[0038]云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12 —起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等
坐寸ο
[0039]计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0040]如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0041]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0042]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0043]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0044]本发明的实施例可以作为计算机可读信号介质被实现,其可以包括其中包含计算机可读程序代码的传播数据信号(如,在基带或作为载波的部分)。这样的传播信号可以采用多种形式中的任意一种,包括但不局限于,电磁的、光的、或其任意的合适的组合。计算机可读信号介质可以是任意不是计算机可读存储介质且能够通信、传播,或传输被指令执行系统、仪器或设备使用的程序,或与指令执行系统、仪器或设备结合使用的程序的计算机可读介质。
[0045]计算机可读介质上包含的程序代码可以使用任意合适的介质传输,包括但不局限于:无线、有线、光纤电缆、射频(RF)等,或以上任意合适的组合。
[0046]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0047]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12—起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统
坐寸ο
[0048]现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
[0049]现在参考图3,其中显示了云计算环境50 (图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
[0050]硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如IΒΜ? zSeries?.系统;基于RISC (精简指令集计算机)体系结构的服务器,例如
IBM pSeries?系统;ibm xSeries?系统;iBMBladeCenter?系统;存储设备;网络和网络
组件。软件组件的例子包括:网络应用服务器软件,例如IBM WebSphere?应用服务器软件;数据库软件,例如 IBM DB2?数据库软件。(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
[0051]虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
[0052]在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能--为根据SLA预测的对云计算资源未来需求提供预先安排和供应。此外管理层中显示的是动态的计算资源获得功能,其表示在本发明的实施例下提供的功能。
[0053]工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及用户数据存储和备份。如上所述,所有参考图3说明的前述实例都仅是示例性的,本发明不局限于这些实例。
[0054]应该理解,这里说明的本发明的所有功能典型地可以被管理层64的动态计算资源获得功能执行,其可以被有形地实施为程序/工具40 (图1)的程序代码42的模块。然而,不一定要是这种情况。而是,这里列举的功能可以被图3所示的层60至66中的任意一个实施/执行和/或使能。
[0055]应该重申,虽然本公开包括云计算的详细说明,但这里列举的教导的实现不局限于云计算环境。而是,本发明的实施例意在能够结合现在已知或以后开发的任何其它类型的计算环境而实现。[0056]如上所述,本发明的实施例提供了一种在网络计算环境的部分和/或区域之中(如,云环境之间)动态获得用于工作负载处理的计算资源的方法。
[0057]现在参考图4,显示了根据本发明的一个方面的系统框图。如表示的,显示了动态计算资源获得引擎(引擎70)。一般,引擎70可以被实现为图1的计算机系统12上的程序40,以及可以实现如图3的管理层64中描述的、这里列举的功能。一般,引擎70包括处理一组(至少一个)规则78的规则引擎并利用一组计算资源注册80 (存储在一组计算机数据结构84中)来确定是否以及如何从网络计算环境86的一个部分/云环境72B获得计算资源组74B以补充网络计算环境86的另一部分/云环境72A中的计算资源组74A以处理/操作与部分72A相关联的一组工作负载76。应该理解,虽然部分72A-B被显示在单个云环境84内,但这不是必须的。相反,部分74A-B可以被分布在两个或更多个云环境之中。
[0058]按照这些规则,引擎70将执行多个功能。具体地,引擎70将:确定处理工作负载组76需要的容量;确定第一部分72A中的计算资源74A的可用容量;响应于需要的容量超过可用容量而识别网络计算环境86的第一部分72A之外的计算资源组74B ;与所述计算资源组74B的至少一个提供者82进行协商(如,电子地)以利用所述计算资源组74B处理所述工作负载组76 ;和/或响应于所述协商,将提供者82的计算资源组与第一部分和/或工作负载76相关联;等等。如下面将进一步讨论的,与提供者82的协商典型地是电子地进行,且可以基于至少一个计算机数据结构84中存储的、与提供者80相关联的至少一个资源注册80。
[0059]如下面进一步讨论的,所述需要的容量可以基于与工作负载组类似的之前的工作负载的历史数据(如,被存储在至少一个计算机数据结构84中)被识别。而且,资源注册80可以以多种方式被提供。例如,引擎70可以使能提供者82的功能(如,用户接口等)以提供资源注册80并将其存储在计算机存储设备84中。或者,可以通过能够与引擎70 —起工作的单独的(如,第三方)注册应用88将资源注册80接收在存储设备84中。无论如何,资源注册80典型地阐明一组利用计算资源组的条款,诸如使用价格/代价、使用限制等。
[0060]在任一情况中,规则组78典型地使能这里阐明的功能。下面额外地讨论这些功能中的一些。
[0061]A.计算资源发现/识别
[0062]硬件选择方法:如上所述,引擎70会利用规则组78识别部分72A之外的计算资源组74B。这种识别是为了补充与部分72A相关联的计算资源组74A以处理工作负载组76(如,完全处理工作负载76需要的容量超过计算资源组74A的可用容量)。无论如何,这个方法识别处理/操作工作负载(如,计算环境扩展和/或工作负载重定位)需要的硬件和软件(这里被称为计算资源和/或基础架构)。类似地,一些工作负载可能被底下的硬件或中件的需求所驱动,进一步精细化可以被包括在云扩展中的那些系统。这个方法确定哪些计算资源类型被可能的工作负载候选所需要。额外地,这个方法可以基于历史运行时分析选择最优的硬件配置。例如,引擎70可以辨识如果盘子系统满足最小的每秒输入/输出操作(IOPS)阈值,则分配的实例运行更短的时间周期。另一个分析可以指示具有特定的CPU速度的系统导致更短的分配时间。再另一个分析可以发现盘速度或CPU速度不影响分配时间跨度,因此,任意硬件都是可接受的。引擎70会应用规则组78并执行诸如这些的分析以及适当地配置相应的环境。[0063]B.计算资源获得的协商
[0064]云提供方法:通过这个方法,各种静态云所有者/提供者82可以提供他们的IaaS作为需要这样的基础架构的云环境的扩展/关联目标。在一个实施例中,静态云的提供者82用引擎70注册他们的云。在这个注册过程中,提供者82可以设置使用价格、可用小时数、工作负载类型约束、源或工作负载约束、硬件类型和硬件简档((PU速度,盘1/0,等)。这些价格和条件可以在不同的时间被设置和重置,通过来自静态云(计算资源)提供者82的延伸,或者响应于来自动态云提供者的查询。另外,在注册期间,计算资源提供者制作可以被调用以在他们的云上分配或解分配实例的已知方法。在一些实施例中,可以以扩展标记语言(XML)传输这些方法,并且这些方法描述一组远程方法以调用用于分配和解分配。
[0065]在一个实施例中,可以使用本发明的实施例进行的标准超文本传输协议(HTTP)调用来调用分配和解分配方法。在其他实施例中,可使标准的应用编程接口(API)可用于创建这些分配和解分配调用。其他系统可以包括用于本发明的实施例的运行时代码,以执行分配和解分配。该运行时代码可以包括脚本或其他可执行函数。在又一个实施例中,动态云提供者可以使用归档的API提供连接到静态云提供者的适配器。
[0066]根据相似的规则,本发明的实施例使得云或元云(meta-cloud)提供者能够动态地消费其他云的静态计算资源。这个关系使得元云提供者能够向他们的客户提供自动的价格优势,同时进一步减少元云提供者的计算资源投资。所述动态云获得还使得本发明的实施例能够通过甚至在动态云需求变化时也为客户分配最优的计算资源而增强客户满意度。
[0067]C.计算资源获得(如,环境扩展)
[0068]云获得方法:在这个方法中,在不要求注册的情况下,本发明的实施例消费公共云环境(如,提供这种服务的商业电子贸易提供者)上的计算资源。这些云提供者与描述所支持的操作系统、硬件、存储和性能量度的目录条目一起被手动地输入到所建议的系统。另夕卜,分配和解分配方法被存储在系统内。这些方法为本发明的实施例提供了分配和解分配云计算资源的必要步骤以及移动工作负载至这些云环境所必需的步骤。这些方法可以是一组HTTP调用或一组分配和解分配实例的脚本。
[0069]云审核方法:这个方法审核各种的子云环境(即,动态云提供者使用中的计算资源组件)以确定所述子云是否满足他们的义务。例如,本发明的实施例可以在子云上部署测试实例以验证子云是否满足诸如盘10PS、CPU速度等规范。如果子云不满足注册的规范,则可能出现补救任务,诸如将所述子云从潜在的扩展目标中移除,或者警告计算资源提供者他们不满足他们的服务水平协议(SLAs )。
[0070]云选择方法:这个方法选择各种云提供者82的计算资源74B中哪一个可以被用于特定的需求。如上所示,每个云提供者要么为他们的云服务提交SLA,要么云审核方法被用于确定跨所有云提供者的统一度量。基于应用特征、价格、位置和其他因素,选择特定的云使用。所述应用特征可以包括CPU需求、盘性能等。这些特征可以由应用所有者在提交时指定,或者基于历史数据和/或所有者简档自动地确定。不能满足这些性能需求的云提供者被排除在选择范围之外。一旦基于性能缩小了云列表,则基于价格和(潜在地)位置选择所述云目的地。下面的示例例示了本公开中包含的构思可以如何被使用。
[0071]示例性实例:
[0072]假定一个示例性的动态云提供者“星云云”没有物理硬件,但具有连接到云环境“A”、私有云环境“B”以及公共云“C”的写入适配器。因为飓风导致的潜在运行中断,星云云必须疏散特定的数据中心中的虚拟机(VM)。星云云确定哪些应用需要保持相互临近,例如保持客户的DB2?和WebSphere?,虚拟机在相同的位置(DB2?和1WebSphere?和
相关的术语是IBM公司在美国和/或其他国家的商标)。在这种情况下,星云云移动这些VM到公共云“C”,同时移动其它应用至私有云“A”。星云云接着回填(backfill)空的VM。设计工作负载接着可以运行并发送来自验证运行的数据至备份点(如,每“η”分钟),从而使重要的工作不会在电源故障时丢失。
[0073]现在参考图5,显示了根据本发明的实施例的方法流程图。在步骤S15,确定处理工作负载组需要的容量。在步骤S2,确定网络计算环境的第一部分中计算资源的可用容量。在步骤S3,确定需要的容量是否超过可用容量。如果否,则在步骤S4中在第一部分中处理所述工作负载组。然而,如果需要的容量超过可用容量,则在步骤S5识别网络计算环境的第一部分之外的计算资源组。在步骤S6,执行与计算资源组的至少一个提供者的电子协商,以利用所述计算资源组处理所述工作负载组。如上所述,协商基于至少一个计算机数据结构中存储的、与该至少一个提供者相关联的至少一个资源注册。按照这些规则,在步骤S7,确定所述协商是否成功。如果否,则重新尝试步骤S6中的电子协商(如,与相同的计算资源提供者和/或新的计算资源提供者)。在任意情况中,响应于协商的成功,所述计算资源组在步骤S8与第一部分和/或所述工作负载组相关联,并使用这样的资源组处理所述工作负载组。
[0074]尽管这里显示和描述动态计算资源获得方案,但应该理解,本发明还提供了不同的替换实施例。例如,在一个实施例中,本发明提供计算机可读/可用介质,其包括使计算机基础架构能提供这里介绍的动态计算资源获得功能的计算机程序代码。为此,计算机可读/可用介质包括实现本发明的各个不同处理的程序代码。应该理解,术语“计算机可读介质”或“计算机可用介质”包括程序代码的任意类型的物理实施例的一个或多个。特别地,所述计算机可读/可用介质可以包括一个或多个便携式存储制品(如,光盘、磁盘、磁带,等)上、一个或多个诸如存储器28 (图1)和/或存储系统34 (图1)(如,硬盘、只读存储器、随机存取存储器、缓冲存储器等)的计算设备的数据存储部分上包含的程序代码。
[0075]在另一个实施例中,本发明提供了在订阅、广告和/或收费基础上执行本发明的处理的方法。即,诸如方案整合者的服务提供者可以要约提供动态计算资源获得功能。在这种情况下,所述服务提供者可以创建、维持、支持计算机基础架构,诸如为一个或多个消费者执行本发明的处理的计算机系统12 (图1)。作为回报,在订阅和/或收费协议的条件下,所述服务提供者可以接收来自消费者的报酬,和/或所述服务提供者可以接收来自向一个或多个第三方销售广告内容的报酬。
[0076]在又一个实施例中,本发明提供了用于动态计算资源获得的计算机实现的方法。在这种情况下,可以提供如计算机系统12 (图1)的计算机基础架构,且一个或多个执行本发明的处理的系统可以被获得(如,创建、购买、使用、修改,等)并部署至计算机基础架构。至此程度,系统的部署可以包括以下一个或多个:(1)在诸如计算机系统12 (图1)的计算设备上安装来自计算机可读介质的程序代码;(2)添加一个或多个计算设备至计算机基础架构;以及(3)包含和/或修改计算机基础架构的一个或多个现有系统以使计算机基础架构能执行本发明的处理。[0077]如这里使用的,应该理解,术语“程序代码”和“计算机程序代码”是同义的且意味着一组意在引起具有信息处理能力的计算设备直接或在以下二者之一或二者之后执行特定的功能的指令的以任意语言、代码或注释的任意表达式:(a)转化为另一种语言、代码或注释;和/或(b)以不同的物质形式复制。至此程度,程序代码可以被实现为以下一个或多个:应用/软件程序,组件软件/功能库,操作系统,特定的计算设备的基本设备系统/驱动7等等。
[0078]下面可以提供一种适合于存储和/或执行程序代码的数据处理系统,其可以包括至少一个直接地或间接地通过系统总线与存储器元件通信地耦接的处理器。所述存储器元件可以包括但不局限于,实际执行程序代码期间采用的本地存储器、大容量存储器,以及提供至少一些程序代码的临时存储从而减少必须在执行期间从大容量存储器检索代码的次数的高速缓冲存储器。输入/输出和/或其他外部设备(包括但不局限于键盘、显示器、指点设备,等)可以直接地或通过中介设备控制器而耦接至系统。
[0079]网络适配器也可以通过中介私有或公共网络的任意组合而耦接至系统以使数据处理系统能变得耦接至其他数据处理系统、远程打印机、存储设备、和/或类似的。示例性的网络适配器包括但不局限于调制解调器、电缆调制解调器以及以太网网卡。
[0080]前面对本发明的不同方面的说明是为了示例和说明的目的。不是为了穷举或限制本发明成为公开的精确形式,并且,显然,很多修改和变形都是可能的。这些对本领域的技术人员来说显然的修改和变化意在被包含在如所附权利要求限定的本发明的范围内。
【权利要求】
1.一种用于在网络计算环境中动态地获得计算资源的计算机实现的方法,包括: 识别所述网络计算环境的第一部分之外的计算资源组,所述计算资源组是处理与所述第一部分相关联的工作负载组所需要的; 与所述计算资源组的至少一个提供者协商,以利用所述至少一个提供者的计算资源组处理所述工作负载组,所述协商基于在至少一个计算机数据结构中存储的、与所述至少一个提供者相关联的至少一个资源注册;以及 响应于协商的成功,将所述计算资源组与所述网络计算环境的第一部分相关联。
2.如权利要求1所述的计算机实现的方法,基于与所述工作负载组类似的之前的工作负载的历史数据识别所述计算资源组,所述历史数据被存储在至少一个计算机数据结构中。
3.如权利要求1所述的计算机实现的方法,所述第一部分是第一云计算环境,并且,所述计算资源组位于第二云计算环境中。
4.如权利要求1所述的计算机实现的方法,还包括: 从所述至少一个提供者接收所述至少一个资源注册;以及 将所述至少一个资源注册存储在所述至少一个计算机数据结构中。
5.如权利要求4所述的计算机实现的方法,所述至少一个资源注册阐明利用所述计算资源组的条款组。
6.如权利要求1所述的计算机实现的方法,所述计算资源组在公共云计算环境组内。
7.如权利要求1所述的计算机实现的方法,所述关联包括:扩展所述第一部分以包括所述计算资源组。
8.如权利要求1所述的计算机实现的方法,还包括: 确定处理所述工作负载组所需要的容量;以及 确定所述第一部分中计算资源的可用容量,响应于所需要的容量超过所述可用容量,识别所述第一部分之外的计算资源组。
9.一种在网络计算环境中动态地获得计算资源的系统,包括: 包含指令的存储介质; 与所述存储介质耦接的总线;以及 与所述总线耦接的处理器,当其执行指令时引起系统: 识别所述网络计算环境的第一部分之外的计算资源组,所述计算资源组是处理与所述第一部分相关联的工作负载组所需要的; 与所述计算资源组的至少一个提供者协商,以利用所述至少一个提供者的计算资源组处理所述工作负载组,所述协商基于在至少一个计算机数据结构中存储的、与所述至少一个提供者相关联的至少一个资源注册;以及 响应于协商的成功,将所述计算资源组与所述网络计算环境的第一部分相关联。
10.如权利要求9所述的系统,基于与所述工作负载组类似的之前的工作负载的历史数据识别所述计算资源组,所述历史数据被存储在至少一个计算机数据结构中。
11.如权利要求9所述的系统,所述第一部分是第一云计算环境,并且,所述计算资源组位于第二云计算环境中。
12.如权利要求9所述的系统,所述存储介质还包括引起系统执行以下操作的指令:从所述至少一个提供者接收所述至少一个资源注册;以及 将所述至少一个资源注册存储在所述至少一个计算机数据结构中。
13.如权利要求12所述的系统,所述至少一个资源注册阐明利用所述计算资源组的条款组。
14.如权利要求9所述的系统,所述计算资源组在公共云计算环境组内。
15.如权利要求9所述的系统,所述存储介质还包括引起所述系统扩展所述第一部分以包括所述计算资源组的指令。
16.如权利要求9所述的系统,所述存储介质还包括引起所述系统执行以下操作的指令: 确定处理所述工作负载组所需要的容量;以及 确定所述第一部分中计算资源的可用容量,响应于所需要的容量超过所述可用容量,识别所述第一部分之外的计算资源组。
17.—种在网络计算环境中动态地获得计算资源的计算机程序产品,所述计算机程序产品包括计算机可读存储介质、以及存储在所述计算机可读存储介质上的程序指令,其用来: 识别所述网络计算环境的第一部分之外的计算资源组,所述计算资源组是处理与所述第一部分相关联的工作负载组所需要的; 与所述计算 资源组的至少一个提供者协商,以利用所述至少一个提供者的计算资源组处理所述工作负载组,所述协商基于至少一个计算机数据结构中存储的、与所述至少一个提供者相关联的至少一个资源注册;以及 响应于协商的成功,将所述计算资源组与所述网络计算环境的第一部分相关联。
18.如权利要求17所述的计算机程序产品,基于与所述工作负载组类似的之前的工作负载的历史数据识别所述计算资源组,所述历史数据被存储在至少一个计算机数据结构中。
19.如权利要求17所述的计算机程序产品,所述第一部分是第一云计算环境,并且,所述计算资源组位于第二云计算环境中。
20.如权利要求17所述的计算机程序产品,所述计算机可读存储介质还包括指令以: 从所述至少一个提供者接收所述至少一个资源注册;以及 将所述至少一个资源注册存储在所述至少一个计算机数据结构中。
21.如权利要求20所述的系统,所述至少一个资源注册阐明利用所述计算资源组的条款组。
22.如权利要求17所述的计算机程序产品,所述计算资源组在公共云计算环境组内。
23.如权利要求17所述的计算机程序产品,所述计算机可读存储介质还包括扩展所述第一部分以包括所述计算资源组的指令。
24.如权利要求17所述的计算机程序产品,所述计算机可读存储介质还包括指令,用来: 确定处理所述工作负载组所需要的容量;以及 确定所述第一部分中计算资源的可用容量,响应于所需要的容量超过所述可用容量,识别所述第一部分之外的计算资源组。
25.一种部署在网络计算环境中动态地获得计算资源的系统的方法,包括: 提供计算机基础架构,其可操作于: 识别所述网络计算环境的第一部分之外的计算资源组,所述计算资源组是处理与所述第一部分相关联的工作负载组所需要的; 与所述计算资源组的至少一个提供者协商,以利用所述至少一个提供者的计算资源组处理所述工作负载组,所述协商基于至少一个计算机数据结构中存储的、与所述至少一个提供者相关联的至少一个资源注册;以及 响应于协商的 成功,将所述计算资源组与所述网络计算环境的第一部分相关联。
【文档编号】G06F9/50GK103858118SQ201280038793
【公开日】2014年6月11日 申请日期:2012年7月26日 优先权日:2011年8月8日
【发明者】G.J.博斯, C.J.道森, R.A.哈密尔顿, B.M.奥康奈尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1