基于放置策略的计算资源分配的制作方法

文档序号:11162170阅读:403来源:国知局
基于放置策略的计算资源分配的制造方法与工艺

本申请要求于2015年8月6日提交的、标题为“PLACEMENT POLICY-BASED ALLOCATION OF COMPUTING RESOURCES(基于放置策略的计算资源分配)”的美国非临时专利申请No.14/819,922的权益和优先权,该美国非临时专利申请要求于2014年8月8日提交的、标题为“RESOURCE MANAGEMENT AND ALLOCATION SYSTEM(资源管理和分配系统)”的美国临时申请No.62/035,370的权益和优先权。在此出于所有目的通过引用并入上面提到的专利申请的全部内容。

技术领域

本公开一般涉及计算基础设施系统,并且更具体地涉及响应于用户请求而基于资源策略来管理和分配资源。



背景技术:

在诸如云计算环境之类的分布式计算环境中有用于实现对可以用最少的管理工作或与服务提供者的最少交互来快速供应和发布的计算资源(例如,网络、网络带宽、服务器、POD、处理、存储器、存储装置、应用、虚拟机、服务等)的共享池的方便、按需的网络访问的服务交付模型。提供者可以经由分布式计算环境提供各种服务。这些服务可以包括在软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别或包括混合服务的其它服务类别下提供的一个或多个服务。

经由订单或服务订阅,用户(例如,客户或客户机)可以订购由分布式计算环境提供的服务中的一个或多个服务。然后分布式计算环境执行处理(例如,供应、管理和跟踪),以提供用户的订阅订单内所请求的服务。通常,当提供者(例如,云服务提供者)接收到订阅该一个或多个服务的订单或服务订阅时,分布式计算环境向请求用户供应或分配用于该一个或多个服务的计算资源。然而,请求用户不具有对如何供应计算资源的控制。这些挑战可以带来不能由供应或分配计算资源的现有分布式计算环境轻易解决的自动化、性能和可用性问题。

在IaaS服务提供者的情况下,可以从客户机接收对计算资源(例如,网络、服务器、存储装置、应用和服务)的请求并且从计算资源池向请求者返回对应的计算资源。然而,用户不具有对计算资源的位置或如何(例如,基于地理或者在机器级)将计算资源分组的控制。这些挑战可以带来不能由提供资源的现有系统轻易解决的安全性、性能和隔离问题。

一些IaaS提供者可以预先创建通常被一起使用的资源并且在这些资源中的任何一个资源被请求和清理(例如,返回到资源池)的任何时候按组供应资源。然而,这些组是静态定义的并且可能不适应对于资源的变化的需求并且可能导致尚未使用的资源的供应和清理。



技术实现要素:

本公开一般涉及改进资源的管理和供应。可以为用户请求的服务提供资源。公开了用于基于用户请求来管理和供应计算资源的某些技术。基于用户请求,策略可以被识别以确定资源的供应和配置。这样的技术可以被实现以减少或取消基础设施设置时间、使可重复的复杂集成自动化、避免人为干预以及提供计算资源的更好的管理和可用性。

在一些实施例中,本发明向用户提供了基于策略在一定程度上控制计算资源(例如,网络、网络带宽、服务器、POD、处理、存储器、存储装置、应用、虚拟机、服务等)的供应的能力。策略可以基于用于请求服务的用户偏好来选择,该用户偏好可以包括对具体计算资源的请求。例如,用户可以具有指定供应资源的地理位置的能力;如果服务是多租户服务(例如,同一资源可以由两个分开的用户共享),则用户可以具有指示用户不想共享资源的能力;如果服务是多租户服务,则用户可以具有指示对特定租户的亲和性(affinity)的能力(例如,用户可以具有指示他们想与租户X共享资源的能力),或者相反,用户可以具有指示他们不想与特定租户共享的能力;用户可以具有控制用于服务的分开的POD供应和服务供应的能力;等等。

在一些实施例中,公开了可以接收请求的资源管理系统。请求可以对应于对一个或多个服务的订阅订单。请求可以指示用于分配为服务提供的资源的用户偏好。在一些实施例中,请求可以包括指示用于向用户分配计算资源的资源定义的信息。资源定义可以指示要为用户分配的计算资源的拓扑。拓扑可以指示要分配什么计算资源以及如何分配这些计算资源。基于由请求指示的信息,资源管理系统可以确定用于由该请求指示的计算资源的分配的放置策略。放置策略可以指示由用户请求的一个或多个计算资源的放置。放置策略可以指示一旦计算资源被分配则在何处以及如何放置计算资源。

在一些实施例中,请求可以附加地或可替代地包括用于确定计算资源的放置的放置配置。放置配置可以指示计算资源的放置(诸如地理位置)、特定计算资源与多租户环境中的租户的隔离、与多租户环境中的租户对计算资源的共享、计算资源的物理配置以及计算资源到一个或多个计算资源单元中的逻辑组织。

资源管理系统使得用户能够基于与计算资源的用户相关的因素来请求计算资源的分配。传统的系统可能无法使用户能够基于与用户相关的特性来请求计算资源的分配,该与用户相关的特性诸如安全性考虑(例如,资源或环境的共享)、性能考虑(例如,管理程序(hypervisor)到虚拟机的分配)、用户特定的偏好或地理考虑(例如,用于改进性能的计算资源的地理位置)。本发明的实施例基于用户的需要来解决与计算资源的分配和管理相关的这些问题和其它问题。

在一些实施例中,基于放置策略的资源分配可以由计算系统实现。计算系统可以是资源管理系统的一部分。计算系统可以被配置为实现本文所描述的方法和操作。而其它实施例涉及采用或存储用于本文所述的方法和操作的指令的系统以及机器可读的有形存储介质。

在至少一个实施例中,一种方法可以包括接收对服务的请求。该方法可以包括基于请求来识别多个计算资源的定义。该方法可以包括确定指示多个计算资源的放置配置的放置策略。该方法可以包括使用放置策略和定义在资源基础设施系统中分配多个计算资源。资源基础设施系统可以包括一个或多个数据中心。

在某些实施例中,请求可以包括定义。该定义可以指示计算资源的一个或多个类型和计算资源的类型中的每个类型的数量。定义可以包括处理器定义、存储器定义、虚拟机定义或其组合。虚拟机定义可以识别虚拟机集合。

在某些实施例中,请求可以指示多个计算资源的供使用的服务类型。定义可以基于服务类型来识别。例如,定义是基于将使用多个计算资源部署的服务来识别的。

在一些实施例中,该方法可以包括根据放置配置来建立多个计算资源在资源基础设施系统中的放置。放置配置可以包括用于用户所请求的计算资源的放置的特性。例如,放置配置可以包括多个资源的放置被建立的地理位置。在一些实施例中,放置配置可以指示一组或多组计算资源。例如,放置配置识别分配给多个组中的第一组的一组虚拟机。基于放置配置,多个计算资源中的第一计算资源被分配给第一组。在一些实施例中,放置配置可以包括安全性配置,以防止其它计算资源对多个计算资源的访问。例如,安全性配置可以指示被分配为管理多个计算资源的一个或多个管理程序。安全性配置可以指示被分配给管理程序以支持多个计算资源的虚拟机集合。在另一个示例中,放置配置包括性能配置。性能配置可以指示被分配给第一管理程序的第一计算资源并且可以指示被分配给第二管理程序的第二计算资源。多个计算资源包括第一计算资源和第二计算资源。

通过参考以下说明书、权利要求和附图,前述内容以及其它特征和实施例将变得更加明显。

附图说明

图1A是根据本发明的实施例的云基础设施系统的逻辑视图。

图1B绘出了根据本发明的实施例的基于放置策略的资源分配和管理系统的简化示意图。

图2绘出了根据本发明的实施例的基于放置策略的资源分配和管理的示例。

图3绘出了根据本发明的实施例的用于基于放置策略的资源分配和管理的系统的更详细的高级示意图。

图4绘出了根据本发明的一些实施例的用于存储一个或多个计算资源的定义的数据结构的示例。

图5绘出了示出根据本发明的实施例的基于放置策略的资源分配的过程的流程图。

图6绘出了示出根据本发明的实施例的基于放置策略的资源分配的过程的流程图。

图7绘出了用于实现实施例的分布式系统的简化示意图。

图8示出了根据本公开的实施例的、其中服务可以作为云服务被提供的系统环境的一个或多个组件的简化框图。

图9示出了可以被用来实现本发明的实施例的示例性计算机系统。

具体实施方式

在下面的描述中,出于解释的目的,阐述了具体细节以便提供对本发明的实施例的透彻理解。然而,将明显的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述并不旨在是限制性的。

本公开一般涉及基于用户偏好来管理和分配计算资源。出于本公开的目的,假设至少部分地响应于订阅由分布式计算环境(诸如云计算环境)的服务提供者提供的一个或多个服务的一个或多个订阅订单来执行计算资源的管理和分配。虽然本文已经关于管理和分配在包括软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(IaaS)的服务模型下提供的计算资源公开了一些实施例,但这不是旨在是限制性的。除了SaaS、PaaS和IaaS之外,本文公开的教导还可以被应用于其它服务模型。例如,教导适用于用于实现对计算资源(例如,网络、网络带宽、服务器、POD、处理、存储器、存储装置、应用、虚拟机、服务等)的共享池的方便、按需的网络访问的任何服务交付模型。

在某些实施例中,诸如云计算环境之类的分布式计算环境可以包括以自服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式交付给用户的一套应用、中间件和数据库服务提供物(offering)。云计算环境可以提供许多能力,这些能力包括但不限于供应、管理和跟踪用户对云计算环境中的服务和资源的订阅、向利用云计算环境中的服务的用户提供可预测的运营费用、在云计算环境中提供健壮的身份域分离和用户数据的保护、向用户提供云计算环境的透明架构和设计的控制、向用户提供有保障的数据保护以及与数据隐私标准和规定的合规性、向用户提供用于在云计算环境中构建和部署服务的综合的开发经验、以及向用户提供云计算环境中的业务软件、中间件、数据库和基础设施服务之间的无缝集成。

在某些实施例中,由云基础设施系统提供的服务可以包括许多(a host of)按需对云计算环境的用户可用的服务,诸如在线数据存储和备份解决方案、基于web的电子邮件服务、托管的办公套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云计算环境提供的服务可以动态缩放,以满足它的用户的需求。由云计算环境提供的服务的具体实例化在本文被称为服务实例。一般而言,从云服务提供者的系统经由诸如因特网之类的通信网络对用户可用的任何服务被称为云服务。通常,在公有云环境中,组成云服务提供者的系统的服务器和系统不同于用户自己本地(on-premises)的服务器和系统。例如,云服务提供者的系统可以托管应用并且用户可以经由诸如因特网之类的通信网络按需订购和使用该应用。

计算机网络云基础设施中的服务包括对存储装置、托管的数据库、托管的web服务器、软件应用或由云供应商向用户提供或者如本领域已知的以其它方式提供的其它服务的受保护的计算机网络访问。例如,服务可以包括通过因特网对云上的远程存储装置进行密码保护的访问。作为另一个示例,服务可以包括用于由联网开发者私人使用的基于web服务的托管关系数据库和脚本语言中间件引擎。作为另一个示例,服务可以包括对云供应商的网站上托管的电子邮件软件应用的访问。

图1A是根据本发明的一些实施例的云计算环境10的逻辑视图。云计算环境10可以经由云或联网环境提供各种服务。这些服务可以包括在SaaS、PaaS、IaaS或包括混合服务的其它类别的服务下提供的一个或多个服务。用户可以经由订阅订单来订购由云计算环境10提供的一个或多个服务。然后云计算环境10执行处理,以提供用户的订阅订单中的服务。

云计算环境10可以经由不同的部署模型提供云服务。例如,服务可以在公有云模型下被提供,在该公有云模型中云计算环境10由销售云服务的组织拥有(例如,由Oracle拥有)并且服务对一般公众或不同的工业企业可用。作为另一个示例,服务可以在私有云模型下被提供,在该在私有云模型中云计算环境10仅为单个组织运营并且可以为该组织内的一个或多个实体提供服务。云服务还可以在社区云模型下被提供,在该社区云模型中云基础设施系统100和由云计算环境10提供的服务由相关社区中的若干组织共享。云服务还可以在作为两个或更多个不同模型的组合的混合云模型下被提供。

如图1A中所示,云计算环境10可以包括多个组件,该多个组件协同工作以实现由云计算环境10提供的服务的供应。在图1A示出的实施例中,云计算环境10包括SaaS平台15、PaaS平台20、IaaS平台25、基础设施资源30和云管理功能35。这些组件可以在硬件、软件或其组合中实现。

SaaS平台15被配置为提供落入SaaS类别下的云服务。例如,SaaS平台15可以提供在集成的开发和部署平台上构建和交付一套按需应用的能力。SaaS平台15可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台15提供的服务,用户可以利用在云计算环境10上执行的应用。用户可以获取应用服务而无需用户购买分开的许可和支持。

可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供用于销售业绩管理、企业集成和业务灵活性的解决方案的服务等。在一个实施例中,SaaS服务可以包括用户关系管理(CRM)服务40(例如,由Oracle云提供的Fusion CRM服务)、人力资本管理(HCM)/人才管理服务45等。CRM服务40可以包括涉及向用户和其他人报告和管理销售活动周期的服务。HCM/人才服务45可以包括涉及向用户提供全球劳动力生命周期管理和人才管理服务的服务。

各种不同的PaaS服务可以由PaaS平台20在标准化的、共享的和弹性可扩展的应用开发和部署平台中提供。PaaS服务的示例可以包括但不限于使得组织(诸如Oracle)能够在共享的公共架构上整合现有应用以及具有构建利用平台提供的共享服务的新应用的能力的服务。PaaS平台20可以管理和控制用于提供PaaS服务的底层软件和基础设施。用户可以获取由云计算环境10提供的PaaS服务,而无需用户购买分开的许可和支持。PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)等。

通过利用由PaaS平台20提供的服务,用户可以利用由云计算环境10支持的编程语言和工具并且还可以控制所部署的服务。在一些实施例中,由云计算环境10提供的PaaS服务可以包括数据库云服务50、中间件云服务(例如,Oracle Fusion Middleware服务)55和Java云服务60。在一个实施例中,数据库云服务50可以支持使得组织能够汇集(pool)数据库资源并且以数据库云的形式向用户提供数据库即服务的共享服务部署模型,中间件云服务55为用户提供开发和部署各种业务应用的平台,而Java云服务60为用户提供在云计算环境10中部署Java应用的平台。图1A中示出的SaaS平台15和PaaS平台20中的组件意图仅用于说明的目的,而并不旨在限制本发明的实施例的范围。在可替代的实施例中,SaaS平台15和PaaS平台20可以包括用于向云计算环境10的用户提供附加服务的附加组件。

各种不同的IaaS服务可以由IaaS平台20提供。IaaS服务便于利用由SaaS平台和PaaS平台提供的服务的用户对底层计算资源(诸如存储装置、网络和其它基础计算资源)的管理和控制。

在某些实施例中,云计算环境10包括基础设施资源30,以用于提供被用来向云计算环境10的用户提供各种服务的资源。在一个实施例中,基础设施资源30包括预创建和优化的硬件(诸如服务器、存储装置和网络资源)的组合(例如,组或集合),以执行由PaaS平台和SaaS平台提供的服务。

在某些实施例中,云管理功能35提供云计算环境10中的云服务(例如,SaaS、PaaS、IaaS服务)的综合管理。在一个实施例中,云管理功能35包括供应、管理和跟踪由云基础设施系统10接收的用户的订单或订阅等。

公开了用于基于放置策略的资源分配和管理系统的一些实施例,诸如系统、方法和机器可读介质。图1B绘出了根据本发明的实施例的基于放置策略的资源分配和管理系统100的简化示意图。系统100可以包括处理计算资源的分配和管理的资源管理系统140。在一些实施例中,系统100可以在云计算环境(例如,云计算环境10)中实现。资源管理系统140可以与云计算环境通信或者可以在云计算环境中实现。资源管理系统140可以经由云或联网环境来提供服务。例如,资源管理系统140可以作为云计算环境10的一部分来提供服务。在一些实施例中,对于计算资源的管理和供应,云计算环境10可以请求资源管理系统140基于对服务的请求来分配资源。资源可以基于由用户指示的偏好来分配。

计算资源可以包括但不限于处理单元(例如,处理器、多个处理器或多核处理器)、存储器、虚拟机、管理程序、网络、网络带宽、服务器、POD、存储装置、应用、虚拟机、服务或其它类型的计算资源。POD是可以表示以下之一的逻辑实体:预供应的匿名单租户部署(如对于Java服务的情况);或服务多个租户的多租户栈(物理栈或虚拟栈)(如对于数据库服务的情况)。例如,POD是在物理栈上的服务的部署。POD可以容纳一个或多个服务实例。POD可以先验地创建或者可以在为给定客户创建服务实例时按需创建。在一些实例中,POD是用于运行服务的软件栈的实例化。因此,POD被用来运行服务。例如,对应于Java服务的POD可以包括虚拟机的栈。作为另一个示例,用于数据库服务的POD可以包括数据库的实例。POD可以被认为是能够托管服务的子系统。不同的POD可以被用于不同的服务。

计算资源可被分配给一组或多组计算资源。每组计算资源在本文中可以被称为“计算资源单元”。图1B示出了计算资源单元102、104、106、108、110、112、114、116、118和120的示例。每个计算资源单元可以包括一个或多个计算资源。可以为一个或多个计算资源单元分配计算资源。计算资源可以在一个或多个数据中心中被分配,该一个或多个数据中心中的每个数据中心可以位于不同的地理区域中。每个地理区域可以由提供与这些地理区域的通信的一个或多个网络分开。例如,计算资源单元102、104、106可以位于经由网络122可访问的英国的数据中心150中,计算资源单元108可以位于经由网络124可访问的中国的数据中心160中,计算资源单元118、120可以位于经由网络126可访问的印度的数据中心180中,而计算资源单元110、112、114、116可以位于经由网络128可访问的美国的数据中心170中。

传统的服务提供者(诸如IaaS、SaaS和PaaS提供者)以对提供者来说最有成本效益的方式来供应和分配资源,并且不使得用户能够定义如何或在何处供应资源以最适合用户的需求。例如,许多现有技术系统是反应性的,因为它们按需提供资源。在这样的系统中,资源可以基于包括需求、容量、性能和可用性的因素来分配。然而,这些系统不预期请求或者不基于当前需求来识别和提供资源集合。此外,现有技术系统不使得用户能够基于与计算资源的用户相关的因素来请求计算资源的分配。例如,现有系统可能不使得用户能够基于安全性考虑(例如,与租户的资源或环境共享)、性能考虑(例如,管理程序到虚拟机的分配)、用户特定的偏好或地理考虑(例如,用于改进性能的计算资源的地理位置)来请求计算资源的分配。本发明的实施例基于用户的需要来解决与计算资源的分配和管理相关的这些问题和其它问题。

如图1中所示,资源管理系统140可以为终端用户(例如,客户130)提供对计算资源的访问。例如,如图1中所示,资源管理系统140可以接收来自用户(例如,客户130)的请求(例如,资源请求132)。该请求指示一个或多个计算资源。在一些实施例中,请求可以对应于或包括对具有类型IaaS、Paas和/或SaaS的一个或多个服务的订购或服务订阅。

请求可以包括指示用于用户的计算资源分配的资源定义的信息。资源可以基于用户请求的服务来为用户分配。在一些实施例中,请求可以(诸如基于资源定义)指示要为用户分配的资源。资源定义可以指示要为用户分配的计算资源的拓扑。拓扑可以指示要分配什么计算资源以及如何分配这些计算资源。在一些实施例中,请求可以包括放置配置,以确定这些计算资源的放置。放置配置可以指示计算资源的放置,诸如地理位置、特定计算资源的隔离、与租户的计算资源共享、与租户的计算资源隔离、计算资源的物理配置以及计算资源到一个或多个计算资源单元的逻辑组织。

基于请求所指示的信息,资源管理系统140可以确定用于由该请求指示的计算资源的分配的放置策略。放置策略可以基于包括在请求中的信息(例如,资源定义)来选择。放置策略可以指示用户请求的一个或多个计算资源的放置。放置策略可以指示计算资源一旦被分配就在何处以及如何被放置。

现在转到图2,绘出了根据本发明的实施例的基于放置策略的资源分配和管理的示例。如上文所描述的,典型的PaaS、SaaS和IaaS提供者可能不能使用户定义他们所请求的计算资源供应了什么、如何被供应、以及在何处被供应。相反,计算资源通常是基于这些计算资源的提供者来分配的。分配可以以对提供者来说最有成本效益的任何方式发生。然而,提供者对计算资源的分配可能不是用户最期望的,或者可能不能为用户提供最佳的用户体验。

本发明的实施例通过使得用户能够为他们的请求定义放置策略来向用户暴露细粒度资源分配能力。这可以通过向用户提供对计算资源的配置的更多控制而不仅仅是资源的选择来向用户提供若干优点。使得用户能够控制他们的资源的配置可以进一步提高这样的资源的用户的效率。

存在通过其实现计算资源的配置可以有益于这些资源的使用的许多示例。例如,用户可能关心他的数据的安全性,特别是在数据可能与其他用户的数据存储在同一计算节点上的情况下。虽然提供者可以提供关于数据安全性的保证,但是这样的保证对于一些用户来说可能是不够的。替代地,用户可能想要不与任何其他用户(例如,租户)共享(例如,专用)或与其他用户(例如,租户)共享的、他们自己的计算节点。用户可能期望请求将计算资源隔离到不同的物理系统、数据中心和/或地理区域的甚至进一步的保护。在一些实例中,用户可能期望其中资源对于其他租户来说不可访问的基于租户的级别上的计算资源的隔离。

在另一个示例中,用户可以具有特定的性能或冗余需求。用户可能倾向于定义计算资源的配置,以确保性能需求被满足。在这样的实例中,用户可能期望具体地定义用于资源分配的配置,其中配置指示计算资源的布置。

为了实现细粒度资源分配,本发明的实施例使得用户能够定义多个放置策略和/或从多个放置策略中选择,以适应用户的需要。如本文所使用的,放置策略是指定义如何向用户分配计算资源的规则。放置策略可以基于若干不同因素来指示资源分配。

在性能是问题的情况下,可以定义放置策略,以使得计算资源可以被分组以在管理程序或管理程序集合上运行。这样的放置策略可以被选择,以改进网络通信和请求/响应次数(例如,减少对网络层的调用)(与传统资源分配方法相比),借此为了成本效率可以在不同的管理程序或管理程序集合之间散布资源。在另一个示例中,共享的存储资源可以在与其关联的计算节点相同的管理程序或管理程序集合中最佳地分配,以改进性能。如上文所描述的,安全性顾虑可以通过在专用管理程序上运行资源来解决。这可以被用来保护数据免受不同用户之间或由同一用户控制的需要分开维护的数据集之间的恶意访问或无意访问。同样,还可以提供地理限制(例如,对托管资源的数据中心的位置的限制),以满足特定的安全性、性能或规定要求。附加地,隔离和/或冗余可以通过在分开的管理程序或管理程序集合上运行特定资源来维持。这可以被用来在故障情况下保留数据,或者对一个资源集合执行管理、监管(administrative)或基础设施操作(诸如打补丁),而不影响其它资源(例如,以减少停机时间)。在一些实施例中,企业设计、集成要求或其它功能要求可能要求组件仅可以在同一管理程序(例如,SDI)的范围内互操作。

放置策略的示例包括其中分配的资源在放到管理程序集合的虚拟机上运行的专用管理程序策略。该管理程序集合是专用的,因为它们不与其他用户共享。最适合的放置策略可以将虚拟机分配给管理程序集合,以优化计算资源利用。例如,管理程序集合可以按需与其他用户共享(以及运行其它资源),以节省资源、最大化资源利用率、减少碎片或其它资源优化。在一些实施例中,在用户没有指定放置策略的情况下,可以默认选择最适合的放置策略。在计算资源的特定部分要被一起运行的情况下,可以使用组适合(group fit)放置策略。虚拟机可以分组在一起并且在同一管理程序池中的一个或多个管理程序上运行。放置策略可以由用户按需定制,以创建结合来自上文所描述的放置策略中的一个或多个放置策略或任何其它放置策略的特征的混合放置策略。

如图2中所示,用户202可以向资源管理系统140提交资源请求204。资源请求204可以包括定义所请求的计算资源的拓扑的定义206。例如,定义206可以指示计算资源的一个或多个类型以及计算资源的类型中的每个类型的数量。定义可以包括处理器定义、存储器定义、虚拟机定义或其组合。虚拟机定义可以识别虚拟机集合。定义206可以定义单独的计算节点,诸如存储器、CPU的数量、存储需求以及用户所需的其它规范。例如,如定义206中所示,资源请求204包括九个虚拟机,每个虚拟机具有其自己的规范(例如,存储器、CPU数量和存储)。这九个虚拟机被分组,以使得组1包括三个虚拟机,组2包括2个虚拟机,而剩余的四个虚拟机没有分组。这个定义表示混合放置策略,因为为所请求的虚拟机的一部分指定了两个组,并且可以对剩余的虚拟机应用最适合策略。

在某些实施例中,请求可以指示供多个计算资源使用的服务的类型。定义可以基于服务的类型来识别。例如,定义是基于将使用该多个计算资源部署的服务来识别的。

基于该定义,所请求的资源可以由资源基础设施系统(例如,资源池208)分配。资源池208可以包括一个或多个数据中心或可以使用一个或多个数据中心来实现。在一些实施例中,资源池208可以是由服务提供者(例如,IaaS提供者)管理的管理程序池。在一些实施例中,资源池208可以包括跨多个远程数据中心分布的多个资源池。下文进一步参照图3,在资源管理系统140的背景下描述资源池。多个计算资源的放置可以根据放置配置在资源池208中建立。放置配置可以包括用于由用户请求的计算资源的放置的特性。

在一个示例中,放置配置可以包括其中建立多个资源的放置的地理位置。在一些实施例中,放置配置可以指示一组或多组计算资源。例如,放置配置识别被分配给多个组中的第一组的虚拟机集合。基于该放置配置,多个计算资源中的第一计算资源被分配给第一组。

在一些实施例中,放置配置可以包括安全性配置,以防止其它计算资源对多个计算资源的访问。例如,安全性配置可以指示被分配为管理多个计算资源的一个或多个管理程序。安全性配置可以指示被分配给管理程序以支持多个计算资源的虚拟机集合。在另一个示例中,放置配置包括性能配置。性能配置可以指示被分配给第一管理程序的第一计算资源并且可以指示被分配给第二管理程序的第二计算资源。多个计算资源包括第一计算资源和第二计算资源。

图3绘出了根据本发明的实施例的用于基于放置策略的资源分配和管理的系统300的更详细的高级示意图。如图3中所示,用户可以使用计算机(例如,用户计算机302)与资源管理系统140通信,以发送资源请求304。资源请求304可以指示用于分配的一个或多个计算资源的信息。在至少一个实施例中,资源请求304可以包括指示用户请求的一个或多个计算资源的定义(例如,资源定义332)。在一些实施例中,资源请求304可以包括识别关于用于由资源定义指示的计算资源的分配的放置(例如,物理位置)的信息的放置配置334。例如,放置可以包括一个或多个计算资源单元的地理位置和/或定义。资源请求304中的信息可以被用来确定用于由资源定义332识别的那些计算资源的放置策略。

资源管理系统140可以使用计算机系统来实现。计算机系统可以包括一个或多个计算机和/或服务器,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机(举例来说,包括PC服务器、UNIX服务器、中型(mid-range)服务器、大型计算机、机架式服务器等)、服务器场(farm)、服务器集群、分布式服务器或任何其它适当的布置和/或其组合。计算机系统可以运行操作系统或各种附加服务器应用和/或中间层应用中的任何应用,包括HTTP服务器、FTP服务器、CGI服务器、Java服务器、数据库服务器等。示例性数据库服务器包括但不限于来自Oracle、Microsoft等的商用数据库服务器。资源管理系统140可以使用硬件、固件、软件或其组合来实现。在各种实施例中,资源管理系统140可以被配置为运行在前述公开中描述的一个或多个服务或软件应用。例如,资源管理系统140可以对应于根据本公开的实施例的如本文所描述的用于执行处理的计算系统。在一些实施例中,资源管理系统140可以使用包括一个或多个计算机和/或服务器的云基础设施系统来实现,其中该一个或多个计算机和/或服务器可以包括上文所描述的计算机和/或服务器。

资源管理系统140可以包括若干子系统和/或模块,包括一些可能未示出的子系统和/或模块。资源管理系统140可以具有比图中示出的更多或更少的子系统和/或模块,可以组合两个或更多个子系统和/或模块,或者可以具有子系统和/或模块的不同配置或布置。在一些实施例中,资源管理系统140可以包括资源请求接口308、资源分配模块318和策略管理器312。策略管理器312可以包括策略更新模块328。资源管理系统140的子系统和模块可以在软件(例如,可由处理器执行的程序代码、指令)中、在硬件中或在其组合中实现。在一些实施例中,软件可以存储在存储器(例如,非暂态计算机可读介质)中、存储器设备或某些其它物理存储器上,并且可以由一个或多个处理单元(例如,一个或多个处理器、一个或多个处理器核、一个或多个GPU等)执行。

资源管理系统140可以在虚拟或非虚拟计算环境中提供其它服务和/或软件应用。资源管理系统140可以被配置为运行上述公开中描述的这些服务或软件应用中的一个或多个。由资源管理系统140提供的服务可以包括但不限于SaaS服务、PaaS服务和IaaS服务。客户机系统可以可通信地耦接到资源管理系统140。服务可以是经由诸如因特网之类的通信网络可访问的。操作客户机系统的用户可以使用一个或多个应用来与资源管理系统140交互,以访问由资源管理系统140提供的服务。

资源管理系统140可以包括至少一个存储器、一个或多个处理单元(或处理器(多个处理器))以及存储装置。处理单元(多个处理单元)可以被适当地实现为在硬件、计算机可执行指令、固件或其组合中。处理单元(多个处理单元)的计算机可执行指令或固件实现可以包括以任何合适的编程语言编写的计算机可执行指令或机器可执行指令,以执行本文描述的各种操作、功能、方法和/或过程。资源管理系统140中的存储器可以存储在处理单元(多个处理单元)上可加载并且可执行的程序指令,以及在这些程序的执行期间生成的数据。存储器可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器等)。存储器可以使用任何类型的持久性存储设备(诸如计算机可读存储介质)来实现。在一些实施例中,计算机可读存储介质可以被配置为保护计算机免于包含恶意代码的电子通信。计算机可读存储介质可以包括存储在其上的指令,当该指令在处理器上被执行时,执行本文描述的操作。

资源管理系统140可以包括附加存储装置或者被耦接到附加存储装置,该附加存储装置可以使用任何类型的持久性存储设备(诸如存储器存储设备或其它非暂态计算机可读存储介质)来实现。在一些实施例中,本地存储装置可以包括或实现一个或多个数据库(例如,文档数据库、关系数据库或其它类型的数据库)、一个或多个文件仓库(store)、一个或多个文件系统或其组合。存储器和附加存储装置都是计算机可读存储介质的示例。例如,计算机可读存储介质可以包括以用于诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的存储的任何方法或技术实现的易失性或非易失性介质、可移动或不可移动介质。在一些实施例中,资源管理系统140可以被耦接到一个或多个数据仓库或者可以包括一个或多个数据仓库,诸如用于策略定义320(“策略定义”)的数据仓库。策略定义320可以包括放置策略326和资源定义322。

在一些实施例中,资源管理系统140可以包括一个或多个资源池或者提供对一个或多个资源池(例如,资源池310)的访问。资源池310可以由资源基础设施系统支持。资源基础设施系统可以由资源管理系统140实现或从实现资源池310的第三方提供者访问。资源基础设施系统可以被实现为IaaS服务。资源池310可以使用由资源管理系统140管理或对于资源管理系统140可访问的一个或多个数据中心来实现。资源池310可以提供对一个或多个计算资源的访问。资源分配模块318可以提供对于由资源池310提供的计算资源的分配和管理的支持。

可以维护一个或多个索引,以用于访问资源池310中的计算资源。索引可以指示在特定数据中心处什么资源当前可用和/或什么资源可以由每个数据中心提供。例如,数据中心索引314可以指示每个连接的数据中心中有多少管理程序可用,以及这些管理程序是否可以被共享和/或用于专用的放置策略。类似地,资源索引316可以指示在任何给定的数据中心处什么预先存在的资源可用,诸如当前可用的应用服务器、RAC节点、存储节点等。

资源管理系统140可以通过资源请求接口308接收资源请求(例如,资源请求304)。资源请求接口308可以与客户机系统的多个实例(例如,与不同用户相关联的客户机和/或与同一用户相关联的多个客户机系统)通信。在一些实施例中,资源请求接口308可以支持使用一个或多个通信协议(例如,基于web的通信协议)的通信,以便于用户计算机302和资源管理系统140之间的通信。在一些实施例中,资源请求接口308可以由编程接口(例如,应用编程接口(API))定义。编程接口可以包括请求来自资源池310的计算资源的可调用函数。

资源请求接口308可以向策略管理器312和资源池310传送资源请求,以用于分配用户请求的计算资源。资源池310可以充当访问由资源管理系统140管理的一个或多个数据中心处的一个或多个资源池的接口。策略管理器312可以确定什么计算资源被请求以及确定根据什么用于分配一个或多个资源池中的计算资源的放置策略(如果有的话)。策略管理器312可以与资源分配模块318通信,以基于放置策略请求资源的分配。

策略管理器312可以使用一个或多个策略定义320来管理计算资源的分配和放置。策略定义可以包括一个或多个放置策略326和一个或多个资源定义322。放置策略可以包括指示如何配置计算资源的信息。资源定义可以指示要分配的一种或多种类型的计算资源和该一种或多种类型的计算资源中的每种类型的计算资源的数量。下文参照图4描述资源定义的示例。为资源定义分配的计算资源可以根据为这些资源的放置而确定的放置策略被“放置”或配置。策略定义可以指示放置策略和一个或多个资源定义之间的关系,以使得放置策略可以基于资源定义(多个资源定义)与放置策略的关系来识别。策略定义可以基于放置策略和满足资源请求的资源定义来选择。

放置策略326中的一个或多个放置策略可以基于来自用户的输入来配置,诸如基于对地理位置的偏好、计算资源的安全性(例如,允许的用户或租户)、资源的隔离、计算资源的一个或多个分组或管理程序到虚拟机的分配来配置。放置策略326中的一些放置策略可以基于计算资源的更频繁的或常见类型的放置来定义。放置策略的示例可以包括上文描述的放置策略等,诸如最适合放置策略、隔离放置策略、安全性放置策略和性能放置策略。例如,性能放置策略可以指示单个管理程序而不是两个不同的管理程序上的计算节点的配置。在另一个示例中,安全性放置策略可以指示由资源池310提供的单个资源池内的计算资源的配置,其中该资源池与其他用户隔离。在另一个示例中,隔离放置策略可以指示被分组到被隔离到不与为其他用户分配的计算资源共享的单个资源池的管理程序集合上的计算节点的配置。

在一些实施例中,放置策略可以基于在来自用户的资源请求中提供的放置配置(例如,放置配置334)来定义。放置配置334可以包括指示用于计算资源的放置的一个或多个偏好的信息,该一个或多个偏好诸如安全性偏好(例如,将资源分配到不与其他用户共享的安全资源池)、隔离偏好(例如,将计算资源分配到与其它资源池分开的特定池)、性能偏好(例如,特定数量的资源)或地理偏好(例如,资源的地理位置)。

资源定义322中的一个或多个可以基于从用户接收的信息来配置。在一些实施例中,资源定义可以由诸如操作用户计算机302的用户之类的用户配置。资源定义可以指示计算资源的一个或多个特性。例如,资源定义可以指示要分配的资源的类型和每种类型的资源的量。资源的类型可以基于所请求的服务来指示。在一些实施例中,资源定义可以为诸如测试、开发、生产等之类的某一使用类型而被配置。资源定义可以从资源请求304中接收的基于资源定义322的输入中选择。资源请求可以指示与计算资源的使用相关的使用类型或一个或多个属性,并且资源请求中的信息可以被用来识别匹配该请求的一个或多个资源定义。在一些实施例中,资源定义可以基于资源请求330中接收的资源定义(例如,资源定义332)来定义。

在一些实施例中,策略管理器312可以在资源定义322之中识别用于资源请求33的资源定义。如上文所解释的,资源请求330可以包括对识别资源定义有用的信息。在一些实例中,资源请求330可以包括资源定义的标识符,该标识符可以被用来基于该标识符识别资源定义。在一些实施例中,资源定义可以基于在资源请求330中指示的、用于计算资源的一个或多个标准来识别。标准可以包括资源的数量、所请求的服务的类型(例如,用于部署的服务)、资源的类型或使用类型(例如,生产、开发或测试)。服务的示例可以包括一个或多个PaaS、Saas和/或IaaS。请求可以定义用于IaaS服务的基础设施的一个或多个计算资源。策略管理器312可以从资源定义322中选择与标准匹配的资源定义。在一些实例中,资源定义可以被识别为在资源定义322之中与标准更接近的匹配。在一些实施例中,资源请求330可以指示对服务的请求,以使得资源请求330可以不指示资源定义。替代地,资源可以基于与资源请求330中指示的服务对应地识别的策略来定义。

策略管理器312可以被配置为确定用于配置资源请求所请求的计算资源集合的放置策略。在一些实施例中,一个或多个标准(例如,放置配置334)可以包括在资源请求330中。资源请求中的标准可以被用来从放置策略326中确定放置策略。标准可以包括但不限于计算资源的组织(例如,分组)、用于计算资源的放置的地理位置、安全性隔离特性、共享偏好(例如,与用户或其他租户共享或不共享)或特定类型的计算资源的布置(例如,管理程序到虚拟机的分配)。策略管理器312可以评估放置策略326,以确定与资源请求330中由用户提供的标准紧密匹配的放置策略。在一些实施例中,一个或多个放置策略326可以与定义计算资源的放置的一个或多个属性相关联地存储。可以将属性(多个属性)与资源请求中的标准进行比较,以识别更紧密匹配用户的请求的放置策略。

策略管理器312可以包括策略更新模块328,策略更新模块328被配置为更新策略定义320。策略定义320可以基于从用户计算机302接收的信息来更新。在一些实施例中,策略更新模块328可以基于先前的资源请求来动态地创建或修改策略定义320。例如,策略更新模块328可以基于更频繁地为资源请求选择的资源定义和放置策略来创建新的策略定义。基于所请求的资源的历史,策略更新模块328可以创建更紧密匹配用于所请求的资源的标准的一个或多个新的资源定义和/或放置策略。

基于为资源请求选择的策略定义,资源池310可以根据策略定义来分配一个或多个计算资源。资源分配模块318可以使用策略定义的放置策略和资源定义来分配来自资源池310的计算资源。资源定义可以被用来确定要在资源池310中分配的计算资源。计算资源的配置可以基于根据资源请求选择的策略定义的放置策略来确定。资源分配模块318可以使用数据中心索引314和资源索引316来根据策略定义识别用于分配的计算资源。数据中心索引314和资源索引316可以被更新,以反映为资源请求分配的计算资源。例如,在根据策略定义分配计算资源时,可以用指示关于向用户分配的资源的信息的数据来更新数据中心索引314和/或资源索引316。用户的标识符可以与为该用户分配的计算资源中的每个计算资源的标识符相关联地存储。可以用与为用户分配的计算资源相关联地存储的用户标识符来更新数据中心索引314和/或资源索引316。

资源分配模块318可以释放(deallocate)不再用于资源请求的计算资源。资源分配模块318可以与支持资源池31的一个或多个数据中心通信,以分配和/或释放计算资源。例如,资源分配模块318可以与地理上分开的数据中心通信,以根据放置策略来分配计算资源,其中放置策略指示向不同地理位置的分配。资源分配模块318可以向策略管理器312传送关于资源池310中的计算资源的分配和释放的信息(例如,状态)。

策略管理器312可以确定是否已为资源请求在资源池310中分配了计算资源。基于从资源分配模块318接收的信息,策略管理器312可以请求向用户计算机302发送通知(例如,通知304),以向与资源请求330相关联的用户通知计算资源的分配。通知304可以包括关于被分配的计算资源的信息,以及分配计算资源的方式(例如,配置)。

通常,在诸如云资源池之类的共享资源环境中,为了基于包括成本、性能和可用性的因素的优化,资源可以由提供者分配。在这样的实例中,基于诸如对用户重要的安全性、性能和地理位置之类的考虑,不给予用户请求资源分配的控制权。通过基于用户的请求来分配计算资源,向用户提供了在共享资源环境中的那些计算资源的分配中的更大的控制权。在一些实施例中,用户可以提供诸如计算资源的配置之类的标准,以确保对安全性、性能和操作的重要考虑被解决。

图4绘出了根据本发明一些实施例的用于存储一个或多个计算资源的资源定义的数据结构400的示例。数据结构400提供了用于资源请求的资源定义的一个示例。数据结构400可以包括在对计算资源的资源请求中。在一些实施例中,数据结构(例如,数据结构400)的每个实例可以对应于资源定义322中的资源定义。计算资源可以基于资源定义在资源池(例如,资源池310)中分配。

数据结构400可以被实现为不同类型的数据结构中的一个或其组合,该不同类型的数据结构包括但不限于数组、记录、关系数据库表、散列表、链表或其它类型的数据结构。为了说明的目的,以具有特定数量的字段(字段402、404、406、408、410和412)的布置示出数据结构400;然而,数据结构400可以由与所示不同的布置中的更多或更少的字段来定义。字段的数量和/或类型可以基于所请求的计算资源而变化。关于特定字段示出的数据可以被存储在数据记录400中或者可以指示存储数据的存储器位置。

字段402(“虚拟机标识符”)包括关于要被分配的虚拟机的信息。在一些实施例中,字段402可以包括要基于数据结构400的资源定义来分配的具体虚拟机的标识符。字段404可以包括关于要为资源定义分配的处理器的数量的信息。处理器的数量可以对应于硬件处理器(例如,硬件处理器)。字段406可以指示要分配的存储器的量。在一些实施例中,字段406和/或其它字段可以包括关于要为不同计算资源单元分配的存储器的量的信息,并且可以指示要分配的存储器的类型。字段408可以包括关于虚拟机的信息,例如,虚拟机的一个或多个名称。在一些实施例中,字段408可以包括关于虚拟机到管理程序的配置的信息。字段408可以包括关于向管理程序分配虚拟机的布置或组织的信息。字段410可以包括关于要为计算资源实现的一个或多个操作系统的信息。字段410可以指示要实现的操作系统的类型。字段412可以包括组识别信息,诸如关于由数据记录400识别的计算资源的一个或多个计算资源单元的信息。

在一些实施例中,资源定义可以以文本格式提供。资源定义可以以诸如图4中所示的格式之类的格式存储。下面示出的列表1是由用户指定的资源定义的示例:

#---------------------------------------------------------------------------

TOPOLOGY=NUM_OF_VMS--

>VM_NO:VM_CPU_COUNT:VM_MEM_REQUIRED:VM_COMMENTS:VM_OS_TEMPLATE:GROUP_ID

#---------------------------------------------------------------------------

CRM_DEPLOYMENT=13-->

1:8:32000:RAC_NODE1_HOST:OVM_OL5U6_X86_64_11203RAC_PVM:1,

2:8:32000:RAC_NODE2_HOST:OVM_OL5U6_X86_64_11203RAC_PVM:1,

3:0:0:RAC_NODE1_VIP_HOST:stit_oel5u6:1,

4:0:0:RAC_NODE2_VIP_HOST:stit_oel5u6:1,

5:0:0:RAC_CLUSTER_VIP_HOST:stit_oel5u6:1,

6:4:11264:IDM_HOST:HCM_DVF_REL5_GA_OIM:0,

7:2:1024:IDM_HOST2:HCM_DVF_REL5_GA_AUTHOHS:0,

8:4:12288:IDM_HOST3:HCM_DVF_REL5_GA_OID:0,

9:2:3072:OHS_HOST:HCM_DVF_REL5_GA_OHS:0,

10:4:15360:FA_ADMIN_HOST:HCM_DVF_REL5_GA_FA:0,

11:4:20480:FA_PRIMARY_HOST:HCM_DVF_REL5_GA_PRIMARY:0,

12:24:50176:FA_SECONDARY_HOST:HCM_DVF_REL5_GA_SECONDARY:0,

13:4:6144:BI_HOST:HCM_DVF_REL5_GA_BI:0

列表1.示例资源定义

如列表1中的示例所示,在资源请求中指示两个组中的十三个虚拟机。在一些实施例中,组可以基于VM的名称来识别,而无需显式的组ID。列表1定义了用于客户关系管理器(CRM)部署的示例资源定义。资源定义中的每个VM包括VM编号(VM_NO)、定义的CPU数量(VM_CPU_COUNT)、定义的存储器量(VM_MEM_REQUIRED)、VM名称(VM_COMMENTS)和操作系统定义(VM_OS_TEMPLATE)和组ID(GROUP_ID)。在一些实施例中,资源定义可以包括更多或更少的要求。例如,在一些实施例中,用于每个VM的资源定义可以包括指示是否要使用代理节点的标志。一些VM(诸如VM 3-5)可以在没有CPU或存储器要求的情况下被请求,这些VM可以被设置为用于部署的IP地址。

如上所示,资源组可以基于资源定义来自动地识别和/或在资源定义中显式地定义。例如,在列表1中,名为“RAC_*”的每个虚拟机可以被识别并且被分配为资源池中的组。在一些实施例中,推荐的组可以基于节点名称来识别并且向用户呈现以供确认。在一些实施例中,显式的组ID可以包括在资源定义中。例如,如列表1中所示,VM 1-5包括Group_ID 1,而VM 6-13包括Group_ID 0。在一些实施例中,如果Group_ID对应于预先存在的组,则新请求的VM可以被添加到该预先存在的组。

基于资源定义,所请求的资源可以从资源池310分配。在一些实施例中,资源池310可以是由IaaS提供者管理的管理程序池。在一些实施例中,资源池310可以包括跨多个远程数据中心分布的多个资源池。

图5示出了根据本发明的实施例的基于放置策略的资源分配的过程的流程图500。在一些实施例中,流程图500中所绘出的过程可以由图1的资源管理系统140实现。计算资源可以由资源基础设施系统(诸如图的资源池310)来分配。资源基础设施系统可以包括一个或多个数据中心,以支持计算资源的分配。资源基础设施系统可以由资源管理系统140包括或实现。在一些实施例中,资源管理系统140可以确定要分配的计算资源和用于这些计算资源的配置的放置策略,并且资源管理系统140可以请求资源基础设施系统分配计算资源。

流程图500可以在步骤502处通过接收对服务的请求开始。例如,资源管理系统140可以接收对计算资源的资源请求132或资源请求330。服务可以包括IaaS服务、PaaS服务或SaaS服务中的一个或多个。请求可以从由用户(诸如客户)操作的计算机(例如,用户计算机302)接收。请求中的信息可以被用来确定要分配的计算资源和/或这样的资源的放置。

请求可以包括指示由用户请求的一个或多个计算资源的信息或用来确定用户请求的一个或多个计算资源的信息。计算资源的示例可以包括但不限于一个或多个处理单元(例如,处理器或多核处理器)、一个或多个存储器、一个或多个虚拟机或者一个或多个管理程序。在一些实施例中,请求可以指示由用户请求的一个或多个计算资源的定义(例如,资源定义)。

在步骤504处,可以识别多个计算资源的定义(例如,资源定义)。定义可以指示要分配的计算资源的特性(例如,计算资源的类型)和计算资源的量。在一些实施例中,定义可以基于请求(例如,在步骤502处接收的请求)来识别。计算资源的一个或多个定义可以由用户配置并且基于请求中接收的信息来选择。例如,请求可以指示所配置的定义或用于选择所配置的定义的一个或多个标准。在一些实施例中,资源定义可以基于所请求的服务来识别。服务可以基于指示实现该服务的计算资源的类型和数量的资源定义来定义。

在步骤506处,可以确定指示多个计算资源的放置配置的放置策略。在一些实施例中,放置策略可以基于请求中包括的信息来确定。请求可以指示用于所请求的计算资源的放置的一个或多个特性。例如,请求可以包括放置配置。基于识别与放置配置匹配的放置策略,可以从多个放置策略中选择放置策略。在一些实例中,放置策略可以被确定为最紧密满足用于所请求的计算资源的放置的特性的放置策略。放置特性可以与计算资源的放置相关,诸如计算资源的分组(例如,计算资源的类型的一个或多个组定义)、一个或多个位置特性(例如,地理位置)或者一个或多个安全性特性(例如,隔离的环境或隔离的计算资源)。

在步骤508处,可以使用放置策略和定义来分配计算资源。例如,资源管理系统140可以请求要在资源池中分配的计算资源。放置策略和定义中的信息可以被提供给资源基础设施系统,以分配计算资源。在步骤510处,流程图500的过程结束。

图6示出了根据本发明的实施例的基于放置策略的资源分配的过程的流程图600。在一些实施例中,流程图600中所绘出的过程可以由图1的资源管理系统140来实现。计算资源可以由资源基础设施系统(诸如图的资源池310)来分配。资源基础设施系统可以包括一个或多个数据中心,以支持计算资源的分配。资源基础设施系统可以由资源管理系统140包括或实现。在一些实施例中,资源管理系统140可以确定要分配的计算资源和用于这些计算资源的配置的放置策略,并且资源管理系统140可以请求资源基础设施系统分配计算资源。

流程图600可以在步骤602处通过接收对服务的请求开始。例如,资源管理系统140可以接收订阅服务的订单。服务可以包括IaaS服务、PaaS服务或SaaS服务中的一个或多个。请求中的信息可以被用来确定要分配的计算资源和/或这样的资源的放置。

请求可以包括指示由用户请求的一个或多个计算资源的信息或用来确定由用户请求的一个或多个计算资源的信息。计算资源的示例可以包括但不限于一个或多个处理单元(例如,处理器或多核处理器)、一个或多个存储器、一个或多个虚拟机,或者一个或多个管理程序。在一些实施例中,请求可以指示由用户请求的一个或多个计算资源的定义(例如,资源定义)。

在一些实施例中,请求可以包括针对所请求的服务的一个或多个标准(例如,条件)。标准可以指示如何为服务分配一个或多个计算资源。计算资源可以包括用于实现服务的资源。标准可以指示用于分配计算资源的放置特性。标准可以指示何时为服务分配资源、如何为服务分配资源和/或为服务分配什么资源。例如,标准可以指示计算资源的分组(例如,计算资源的类型的一个或多个组定义)、一个或多个位置特性(例如,地理位置)或者一个或多个安全性特性(例如,隔离的环境或隔离的计算资源)。在一些实施例中,标准可以指示资源要分配给还是不分配给多租户环境中的特定租户。标准可以指示可以共享的资源的类型和/或这些类型的资源可以与谁共享。

在步骤604处,可以识别多个计算资源的定义(例如,资源定义)。定义可以指示要分配的计算资源的特性(例如,计算资源的类型)和计算资源的量。在一些实施例中,定义可以基于请求(例如,在步骤602处接收的请求)来识别。例如,资源定义可以基于由用户请求的服务的类型来识别。可以为每种类型的服务或特定服务定义资源定义。当请求是针对IaaS服务时,请求可以包括要为用户分配的资源。请求可以包括或识别可以由用户配置并且基于请求中接收的信息来选择的计算资源的一个或多个定义。在一些实施例中,资源定义可以基于所请求的服务来识别。服务可以基于指示实现服务的计算资源的类型和数量的资源定义来定义。

在一些实施例中,可以在步骤606处确定指示多个计算资源的放置配置的放置策略。在一些实施例中,可以基于请求中包括的标准来确定放置策略。请求可以指示用于所请求的计算资源的放置的一个或多个特性。例如,请求可以包括放置配置。放置策略可以基于识别与放置配置匹配的放置策略从多个放置策略中选择。在一些实例中,放置策略可以被确定为最紧密满足用于所请求的计算资源的放置的特性的放置策略。放置特性可以与计算资源的放置相关,诸如计算资源的分组(例如,计算资源的类型的一个或多个组定义)、一个或多个位置特性(例如,地理位置)或者一个或多个安全性特性(例如,隔离的环境或隔离的计算资源)。放置特性可以部分地基于请求中的标准来确定。

在步骤608处,可以使用放置策略和定义来分配计算资源。例如,资源管理系统140可以请求要在资源池中分配的计算资源。放置策略和定义中的信息可以被提供给资源基础设施系统,以分配计算资源。在步骤610处,流程图600的过程结束。

图5和图6中所绘出的过程可以在由一个或多个处理单元(例如,处理器核)执行的软件(例如,代码、指令、程序)、硬件或其组合中实现。软件可以被存储在存储器中(例如,在存储器设备上、在非暂态计算机可读存储介质上)。图5和图6中的处理步骤的特定序列不旨在是限制性的。还可以根据可替代的实施例执行步骤的其它序列。例如,本发明的可替代实施例可以以不同的顺序执行上文概述的步骤。此外,图5和图6中示出的单独的步骤可以包括可以在适合于单独的步骤的各个序列中执行的多个子步骤。此外,取决于特定的应用可以添加或移除附加的步骤。虽然在图5和图6中的每个中绘出的处理是关于基于来自用户的请求的基于放置策略的资源分配,但是这样的处理可以针对指示用于分配计算资源的不同类型的特性的多个资源请求来执行。本领域的普通技术人员将认识到许多变型、修改和替代物。

图7绘出了用于实现实施例的分布式系统700的简化示意图。在示出的实施例中,分布式系统700包括一个或多个客户机计算设备702、704、706和708,该一个或多个客户机计算设备被配置为经一个或多个网络710执行和操作客户机应用,诸如web浏览器、专有客户机(例如,Oracle Forms)等。服务器712可以经由网络710与远程客户机计算设备702、704、706和708可通信地耦接。

在各种实施例中,服务器712可以适于运行一个或多个服务或软件应用,诸如用于基于放置策略的资源分配的服务和应用。在某些实施例中,服务器712还可以提供其它服务,或者软件应用可以包括非虚拟环境和虚拟环境。在一些实施例中,这些服务可以作为基于web的服务或云服务或者在软件即服务(SaaS)模型下向客户机计算设备702、704、706和/或708的用户提供。操作客户机计算设备702、704、706和/或708的用户进而可以利用一个或多个客户机应用与服务器712交互,以利用由这些组件提供的服务。

在图7绘出的配置中,系统700的软件组件718、720和722被示为在服务器712上实现。在其它实施例中,系统700的组件中的一个或多个组件和/或由这些组件提供的服务还可以由客户机计算设备702、704、706和/或708中的一个或多个实现。然后,操作客户机计算设备的用户可以利用一个或多个客户机应用来使用由这些组件提供的服务。这些组件可以在硬件、固件、软件或其组合中实现。应当理解的是,可以不同于分布式系统700的各种不同的系统配置是可能的。因此,图7中示出的实施例是用于实现实施例系统的分布式系统的一个示例,并且不旨在是限制性的。

客户机计算设备702、704、706和/或708可以包括各种类型的计算系统。例如,客户机计算设备可以包括运行诸如Microsoft Windows之类的软件和/或诸如iOS、Windows Phone、Android、BlackBerry 10,Palm OS等之类的各种移动操作系统的便携式手持设备(例如,蜂窝电话、计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器)。设备可以支持诸如各种因特网相关的应用、电子邮件、短消息服务(SMS)应用之类的各种应用,并且可以使用各种其它通信协议。客户机计算设备还可以包括通用个人计算机,举例来说,包括运行各种版本的MicrosoftApple和/或Linux操作系统的个人计算机和/或膝上型计算机。客户机计算设备可以是运行各种商用的或类UNIX操作系统中的任何一种的工作站计算机,包括但不限于各种GNU/Linux操作系统,诸如例如Google Chrome OS。客户机计算设备还可以包括能够经网络(多个网络)710通信的电子设备,诸如瘦客户机计算机、启用因特网(Internet-enabled)的游戏系统(例如,具有或不具有手势输入设备的Microsoft Xbox游戏机)和/或个人消息传送设备。

虽然图7中的分布式系统700被示为具有四个客户机计算设备,但是任何数量的客户机计算设备可以被支持。诸如具有传感器的设备等之类的其它设备可以与服务器712交互。

分布式系统700中的网络(多个网络)710可以是可以使用各种可用协议中的任何可用协议来支持数据通信的、本领域技术人员熟悉的任何类型的网络,其中所述可用协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(系统网络架构)、IPX(因特网包交换)、AppleTalk等。仅仅作为示例,网络(多个网络)710可以是局域网(LAN)、基于以太网的网络、令牌环、广域网、因特网、虚拟网络、虚拟专用网络(VPN)、内联网、外联网、公共交换电话网络(PSTN)、红外网络、无线网络(例如,在电气和电子协会(IEEE)802.11协议组、和/或任何其它无线协议中的任何协议下操作的网络)和/或这些网络和/或其它网络的任何组合。

服务器712可以包含一个或多个通用计算机、专用服务器计算机(举例来说,包括PC(个人计算机)服务器、服务器、中型服务器、大型计算机、机架式服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合。服务器712可以包括运行虚拟操作系统的一个或多个虚拟机,或涉及虚拟化的其它计算架构。一个或多个灵活的逻辑存储设备池可以被虚拟化,以维护用于服务器的虚拟存储设备。虚拟网络可以由服务器712使用软件定义网络(software defined networking)来控制。在各种实施例中,服务器712可以适于运行在前述公开中描述的一个或多个服务或软件应用。例如,服务器712可以对应于用于执行如上文根据本公开的实施例所描述的处理的服务器。

服务器712可以运行包括上文讨论的操作系统中的任何操作系统以及任何商用的服务器操作系统的操作系统。服务器712还可以运行各种附加的服务器应用和/或中间层应用中的任何应用,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于来自Oracle、Microsoft、Sybase、IBM(国际商业机器)等的商用数据库服务器。

在一些实施方式中,服务器712可以包括一个或多个应用,以分析和整合从客户机计算设备702、704、706和708的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于从一个或多个第三方信息源和连续数据流接收的馈送、更新或实时更新,该一个或多个第三方信息源和连续数据流可以包括与传感器数据应用、金融收报机(financial ticker)、网络性能测量工具(例如,网络监控和业务管理应用)、点击流分析工具、汽车交通监控等相关的实时事件。服务器712还可以包括经由客户机计算设备702、704、706和708的一个或多个显示设备来显示数据馈送和/或实时事件的一个或多个应用。

分布式系统700还可以包括一个或多个数据库714和716。这些数据库可以提供用于存储诸如由本发明的实施例使用的用户交互信息、使用模式信息、适配规则信息和其它信息之类的信息的机构。数据库714和716可以驻留在各种位置中。作为示例,数据库714和716中的一个或多个可以驻留在服务器712本地(和/或驻留在服务器712中)的非暂态存储介质上。可替代地,数据库714和716可以远离服务器712,并且经由基于网络的或专用的连接与服务器712通信。在一组实施例中,数据库714和716可以驻留在存储区域网络(SAN)中。类似地,用于执行属于服务器712的功能的任何必要文件可以适当地在服务器712本地存储和/或远程存储。在一组实施例中,数据库714和716可以包括适于响应于SQL格式的命令来存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。

在一些实施例中,云环境可以为基于放置策略的资源分配提供一个或多个服务。图8是根据本公开的实施例的其中服务可以作为云服务被提供的系统环境700的一个或多个组件的简化框图。在图8中示出的实施例中,系统环境800包括一个或多个客户机计算设备804、806和808,该一个或多个客户机计算设备可以由用户使用以与提供云服务(包括用于基于放置策略的资源分配的服务)的云基础设施系统802交互。云基础设施系统802可以包括一个或多个计算机和/或服务器,该一个或多个计算机和/或服务器可以包括上面针对服务器712所描述的计算机和/或服务器。

应当理解的是,图8中绘出的云基础设施系统802可以具有除了所绘出的组件之外的其它组件。此外,图8中示出的实施例仅仅是可以结合本发明的实施例的云基础设施系统的一个示例。在一些其它实施例中,云基础设施系统802可以具有比图中示出的更多或更少的组件、可以组合两个或更多个组件或者可以具有不同的组件配置或布置。

客户机计算设备804、806和808可以是与上面针对客户机计算设备702、704、706和708所描述的设备类似的设备。客户机计算设备804、806和808可以被配置为操作客户机应用(诸如web浏览器、专有客户机应用(例如,Oracle Forms)或一些其它应用),该客户机应用可以由客户机计算设备的用户用来与云基础设施系统802交互,以使用由云基础设施系统802提供的服务。虽然示例性系统环境800被示为具有三个客户机计算设备,但是任何数量的客户机计算设备可以被支持。诸如具有传感器的设备等之类的其它设备可以与云基础设施系统802交互。

网络(多个网络)810可以便于客户机计算设备804、806和808与云基础设施系统802之间的通信和数据交换。每个网络可以是可以支持使用各种商用协议中的任何协议的数据通信的、本领域技术人员熟悉的任何类型的网络,其中所述各种商用协议包括上文针对网络(多个网络)710描述的协议。

在某些实施例中,由云基础设施系统802提供的服务可以包括按需对云基础设施系统的用户可用的许多服务。除了与基于放置策略的资源分配有关的服务之外,还可以提供各种其它服务,包括但不限于在线数据存储和备份解决方案、基于Web的电子邮件服务、托管的办公室套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础设施系统提供的服务可以动态缩放,以满足它的用户的需求。

在某些实施例中,由云基础设施系统802提供的服务的具体实例化在本文中可以被称为“服务实例”。一般而言,从云服务提供者的系统经由通信网络(诸如因特网)对用户可用的任何服务被称为“云服务”。通常,在公有云环境中,构成云服务提供者的系统的服务器和系统不同于客户自己的本地服务器和系统。例如,云服务提供者的系统可以托管应用,并且用户可以经由诸如因特网之类的通信网络按需订购和使用该应用。

在一些示例中,计算机网络云基础设施中的服务可以包括对由云供应商向用户提供或者如本领域已知的以其它方式提供的存储装置、托管的数据库、托管的web服务器、软件应用或者其它服务的受保护的计算机网络访问。例如,服务可以包括通过因特网对云上的远程存储装置的受密码保护的访问。作为另一个示例,服务可以包括供联网的开发者私人使用的基于web服务的托管的关系数据库和脚本语言中间件引擎。作为另一个示例,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。

在某些实施例中,云基础设施系统802可以包括以自服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式交付给客户的一套应用、中间件和数据库服务供应物。这样的云基础设施系统的示例是由本受让人提供的Oracle公有云。

云基础设施系统802还可以提供“大数据”相关的计算和分析服务。术语“大数据”一般用来指可以由分析者和研究者存储和操纵以使大量数据可视化、检测趋势和/或以其它方式与数据交互的非常大的数据集。这种大数据和相关应用可以由基础设施系统在许多级别上以及在不同尺度下托管和/或操纵。并行链接的数十个、数百个或数千个处理器可以作用于这样的数据,以便呈现它或者模拟对数据或数据代表的内容的外力。这些数据集可以包括结构化的数据(诸如在数据库中组织或以其它方式根据结构化的模型来组织的数据)和/或非结构化的数据(例如,电子邮件、图像、数据blob(二进制大对象)、网页、复杂事件处理)。通过利用实施例相对快速地将更多的(或更少的)计算资源集中在目标上的能力,云基础设施系统可以更好地可用于基于来自企业、政府机构、研究组织、私人个体、志同道合的个人或组织的组或其它实体的需求而对大数据集执行任务。

在各种实施例中,云基础设施系统802可以适于自动地供应、管理和跟踪客户对由云基础设施系统802提供的服务的订阅。云基础设施系统802可以经由不同的部署模型提供云服务。例如,服务可以在公有云模型下被提供,在该公有云模型中云基础设施系统802由销售云服务的组织拥有(例如,由Oracle公司拥有),并且服务对一般公众或不同的工业企业可用。作为另一个示例,服务可以在私有云模型下被提供,在该私有云模型中云基础设施系统802仅为单个组织操作,并且可以为该组织内的一个或多个实体提供服务。云服务还可以在社区云模型下被提供,在该社区云模型中云基础设施系统802和由云基础设施系统802提供的服务由相关社区中的若干组织共享。云服务还可以在作为两个或更多个不同模型的组合的混合云模型下被提供。

在一些实施例中,由云基础设施系统802提供的服务可以包括在软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别或包括混合服务的其它服务类别下提供的一个或多个服务。经由订阅订单,客户可以订购由云基础设施系统802提供的一个或多个服务。然后云基础设施系统802执行处理,以提供客户的订阅订单中的服务。

在一些实施例中,由云基础设施系统802提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些示例中,应用服务可以由云基础设施系统经由SaaS平台提供。SaaS平台可以被配置为提供落入SaaS类别下的云服务。例如,SaaS平台可以提供在集成的开发和部署平台上构建和交付按需应用套件的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买分开的许可和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供用于销售业绩管理、企业集成和业务灵活性的解决方案的服务。

在一些实施例中,平台服务可以由云基础设施系统802经由PaaS平台提供。PaaS平台可以被配置为提供落入PaaS类别下的云服务。平台服务的示例可以包括但不限于使得组织(诸如Oracle)能够在共享的公共架构上整合现有应用以及具有利用平台提供的共享服务来构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获取由云基础设施系统802提供的PaaS服务,而不需要客户购买分开的许可和支持。平台服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)等。

通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统支持的编程语言和工具,并且还可以控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle Fusion Middleware服务)和Java云服务。在一个实施例中,数据库云服务可以支持使得组织能够汇集数据库资源并且以数据库云的形式向客户提供数据库即服务的共享服务部署模型。中间件云服务可以为客户提供开发和部署各种业务应用的平台,而Java云服务可以在云基础设施系统中为客户提供部署Java应用的平台。

各种不同的基础设施服务可以由云基础设施系统中的IaaS平台提供。基础设施服务便于利用由SaaS平台和PaaS平台提供的服务的客户对底层计算资源(诸如存储装置、网络和其它基本计算资源)的管理和控制。

在某些实施例中,云基础设施系统802还可以包括基础设施资源830,以用于提供被用来向云基础设施系统的客户提供各种服务的资源。在一个实施例中,基础设施资源830可以包括用于执行由PaaS平台和SaaS平台提供的服务的硬件(诸如服务器、存储装置和网络资源)以及其它资源的预先集成和优化的组合。

在一些实施例中,云基础设施系统802中的资源可以由多个用户共享并且根据需求动态地重新分配。附加地,资源可以被分配给不同时区中的用户。例如,云基础设施系统802可以使得第一时区中的第一组用户能够对于指定数量的小时来利用云基础设施系统的资源,然后实现将同一资源重新分配给位于不同时区中的另一组用户,由此最大化资源的利用率。

在某些实施例中,可以提供若干内部共享服务832,其由云基础设施系统802的不同组件或模块共享,以实现由云基础设施系统802提供服务。这些内部共享服务可以包括但不限于安全性和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传输服务等。

在某些实施例中,云基础设施系统802可以提供云基础设施系统中的云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一个实施例中,云管理功能可以包括用于供应、管理和跟踪由云基础设施系统802接收的客户订阅的能力等。

在一个实施例中,如图8中所绘出的,云管理功能可以由诸如订单管理模块820、订单编排(orchestration)模块822、订单供应模块824、订单管理和监控模块826和身份管理模块828之类的一个或多个模块提供。这些模块可以包括一个或多个计算机和/或服务器或者可以使用一个或多个计算机和/或服务器来提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场,服务器集群或任何其它适当的布置和/或组合。

在示例性操作中,在步骤834处,使用客户机设备(诸如客户机计算设备804、806或808)的客户可以通过请求由云基础设施系统802提供的一个或多个服务并且对由云基础设施系统802提供的一个或多个服务的订阅下订单来与云基础设施系统802交互。在某些实施例中,客户可以访问诸如云用户界面(UI)812、云UI 814和/或云UI 816之类的云UI并经由这些UI来下订阅订单。响应于客户下订单而由云基础设施系统802接收的订单信息可以包括识别客户和由云基础设施系统802提供的、客户意图订阅的一个或多个服务的信息。

在步骤836处,从客户接收的订单信息可以存储在订单数据库818中。如果这是新订单,则可以为该订单创建新记录。在一个实施例中,订单数据库818可以是由云基础设施系统818操作并且与其它系统元件结合操作的若干数据库中的一个数据库。

在步骤838处,订单信息可以被转发到订单管理模块820,订单管理模块820可以被配置为执行诸如验证订单之类的与订单相关的计费和记帐(accounting)功能,并且在通过验证时,预订订单。

在步骤840处,关于订单的信息可以被传送到订单编排模块822,订单编排模块822被配置为编排用于客户下的订单的服务和资源的供应。在一些实例中,订单编排模块822可以使用订单供应模块824的服务以用于供应。在某些实施例中,订单编排模块822实现与每个订单相关联的业务过程的管理,并且应用业务逻辑来确定订单是否应当继续进行到供应。

如图8中绘出的实施例中所示,在步骤842处,在接收到对新订阅的订单时,订单编排模块822向订单供应模块824发送分配资源和配置满足订阅订单所需的资源的请求。订单供应模块824实现针对由客户订购的服务的资源分配。订单供应模块824提供由云基础设施系统800提供的云服务和用来供应用于提供所请求服务的资源的物理实现层之间的抽象层。这使得订单编排模块822能够与诸如服务和资源是确实实时(on the fly)供应的还是预先供应的并且仅在请求时分配/指派之类的实现细节隔离。

在步骤844处,一旦供应了服务和资源,则可以向订阅的客户发送指示所请求的服务现在准备好使用的通知。在一些实例中,可以向客户发送使得客户能够开始使用所请求的服务的信息(例如,链接)。

在步骤846处,客户的订阅订单可以由订单管理和监控模块826来管理和跟踪。在一些实例中,订单管理和监控模块826可以被配置为收集关于订阅服务的客户使用的使用统计信息。例如,可以针对所使用的存储装置的量、传送的数据量、用户的数量以及系统启动时间和系统停机时间的量等来收集统计信息。

在某些实施例中,云基础设施系统800可以包括身份管理模块828,身份管理模块828被配置为提供身份服务,诸如云基础设施系统800中的访问管理和授权服务。在一些实施例中,身份管理模块828可以控制关于希望利用由云基础设施系统802提供的服务的客户的信息。这样的信息可以包括认证这些客户的身份的信息以及描述这些客户被授权为相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行的动作的信息。身份管理模块828还可以包括关于每个客户以及关于如何和由谁来访问和修改描述性信息的描述性信息管理。

图9示出了可以被用来实现本发明的实施例的示例性计算机系统900。在一些实施例中,计算机系统900可以被用来实现上文所描述的各种服务器和计算机系统中的任何服务器和计算机系统。如图9中所示,计算机系统900包括各种子系统,该各种子系统包括经由总线子系统902与若干外围子系统通信的处理单元904。这些外围子系统可以包括处理加速单元906、I/O子系统908、存储子系统918和通信子系统924。存储子系统918可以包括有形的计算机可读存储介质922和系统存储器910。

总线子系统902提供用于使计算机系统900的各种组件和子系统如所意图的彼此通信的机构。虽然总线子系统902被示意性地示为单条总线,但是总线子系统的可替代实施例可以利用多条总线。总线子系统902可以是若干类型的总线结构中的任何总线结构,包括使用各种总线架构中的任何总线架构的存储器总线或存储器控制器、外围总线和本地总线。例如,这样的架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线,其中PCI总线可以被实现为根据IEEE P1386.1标准制造的夹层(Mezzanine)总线等。

处理子系统904控制计算机系统900的操作并且可以包括一个或多个处理单元932、934等。处理单元可以包括包含单核或多核处理器、处理器的一个或多个核或其组合的一个或多个处理器。在一些实施例中,处理子系统904可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(DSP)等。在一些实施例中,处理子系统904的处理单元中的一些或全部可以使用诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)之类的定制电路来实现。

在一些实施例中,处理子系统904中的处理单元可以执行存储在系统存储器910中或计算机可读存储介质922上的指令。在各种实施例中,处理单元可以执行各种程序或代码指令,并且可以维护多个并发执行程序或进程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在系统存储器910中和/或在计算机可读存储介质922上(潜在地包括在一个或多个存储设备上)。通过适当的编程,处理子系统904可以提供上文所描述的用于基于放置策略的资源分配的各种功能。

在某些实施例中,可以提供处理加速单元906,以用于执行定制处理或者用于卸载(off-load)由处理子系统904执行的处理中的一些处理,以便加速由计算机系统900执行的整体处理。

I/O子系统908可以包括用于向计算机系统900输入信息和/或用于输出来自计算机系统900的信息或经由计算机系统900输出信息的设备和机构。一般而言,术语“输入设备”的使用旨在包括用于向计算机系统900输入信息的所有可能类型的设备和机构。用户接口输入设备可以包括例如键盘、诸如鼠标或轨迹球之类的指向设备、结合到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、键板、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备还可以包括运动感测和/或姿势识别设备,诸如使得用户能够控制输入设备并且与其交互的Microsoft运动传感器、Microsoft360游戏控制器、提供用于接收使用姿势和口头命令的输入的接口的设备。用户接口输入设备还可以包括眼部姿势识别设备,诸如检测用户的眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并且将眼部姿势变换为到输入设备(例如,Google)中的输入的Google眨眼检测器。附加地,用户接口输入设备可以包括使得用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。

用户接口输入设备的其它示例包括但不限于三维(3D)鼠标、操纵杆或指向杆、游戏板和图形平板、以及音频/视频设备,诸如扬声器、数字照相机、数字摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、以及视线跟踪设备。附加地,用户接口输入设备可以包括例如医疗成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层扫描、医疗超声扫描设备。用户接口输入设备还可以包括例如音频输入设备,诸如MIDI键盘、数字乐器等。

用户接口输出设备可以包括显示子系统、指示灯或诸如音频输出设备之类的非视觉显示器等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备之类的平板设备、投影设备、触摸屏等。一般而言,术语“输出设备”的使用旨在包括用于向用户或其它计算机输出来自计算机系统900的信息的所有可能类型的设备和机构。例如,用户接口输出设备可以包括但不限于可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监控器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。

存储子系统918提供用于存储由计算机系统900使用的信息的储存库或数据仓库。存储子系统918提供有形的非暂态计算机可读存储介质,以用于存储提供一些实施例的功能的基本编程和数据构造。当由处理子系统904执行时提供上文所描述的功能的软件(程序、代码模块、指令)可以被存储在存储子系统918中。软件可以由处理子系统904的一个或多个处理单元执行。存储子系统918还可以提供用于存储根据本发明使用的数据的储存库。

存储子系统918可以包括一个或多个非暂态存储器设备,该一个或多个非暂态存储器设备包括易失性存储器设备和非易失性存储器设备。如图9中所示,存储子系统918包括系统存储器910和计算机可读存储介质922。系统存储器910可以包括若干存储器,该若干存储器包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储固定指令的非易失性只读存储器(ROM)或闪存存储器。在一些实施方式中,包含帮助(诸如在启动期间)在计算机系统900内的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以被存储在ROM中。RAM通常包含当前由处理子系统904操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器910可以包括多个不同类型的存储器,诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。

作为示例而非限制,如在图9中绘出的,系统存储器910可以存储应用程序912、程序数据914和操作系统916,其中应用程序912可以包括客户机应用、Web浏览器、中间层应用、关系数据库管理系统(RDBMS)等。作为示例,操作系统916可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种商用或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或诸如iOS、Phone、OS、10OS和OS操作系统之类的移动操作系统。

计算机可读存储介质922可以存储提供一些实施例的功能的编程和数据构造。当由处理子系统904执行时处理器提供上文所描述的功能的软件(程序、代码模块、指令)可以被存储在存储子系统918中。作为示例,计算机可读存储介质922可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如CD ROM、DVD、(蓝光)盘或其它光学介质之类的光盘驱动器。计算机可读存储介质922可以包括但不限于驱动器、闪存存储器卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字视频带等。计算机可读存储介质922还可以包括诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等之类的基于非易失性存储器的固态驱动器(SSD),诸如固态RAM、动态RAM、静态RAM、基于DRAM的SSD、磁阻RAM(MRAM)SSD之类的基于易失性存储器的SSD,以及使用基于DRAM的SSD和基于闪存存储器的SSD的组合的混合SSD。计算机可读介质922可以为计算机系统900提供计算机可读指令、数据结构、程序模块和其它数据的存储。

在某些实施例中,存储子系统900还可以包括可以进一步被连接到计算机可读存储介质922的计算机可读存储介质读取器920。可选地,与系统存储器910一起并且组合,计算机可读存储介质922可以全面地表示远程存储设备、本地存储设备、固定存储设备和/或可移动存储设备加上用于存储计算机可读信息的存储介质。

在某些实施例中,计算机系统900可以提供对执行一个或多个虚拟机的支持。计算机系统900可以执行诸如管理程序之类的程序,以便于虚拟机的配置和管理。每个虚拟机可以被分配存储器资源、计算资源(例如,处理器、内核)、I/O资源和网络资源。每个虚拟机通常运行可以与由计算机系统900执行的其它虚拟机执行的操作系统相同或不同的它自己的操作系统。相应地,多个操作系统可以潜在地由计算机系统900并发运行。每个虚拟机一般独立于其它虚拟机运行。

通信子系统924提供到其它计算机系统和网络的接口。通信子系统924充当用于接收来自计算机系统900的其它系统的数据以及向计算机系统900的其它系统发送数据的接口。例如,通信子系统924可以使得计算机系统900能够经由因特网建立到一个或多个客户机计算设备的通信信道,以用于接收来自客户机设备的信息以及向客户机计算设备发送信息。

通信子系统924可以支持有线通信协议和/或无线通信协议二者。例如,在某些实施例中,通信子系统924可以包括用于访问无线语音网络和/或数据网络(例如,使用蜂窝电话技术、诸如3G、4G或EDGE(全球演进的增强数据速率)之类的先进数据网络技术、WiFi(IEEE 802.11族标准、或其它移动通信技术、或其任何组合)的无线语音网络和/或数据网络)的射频(RF)收发器组件、全球定位系统(GPS)接收器组件和/或其它组件。在一些实施例中,除了无线接口之外或者作为无线接口的替代,通信子系统924可以提供有线网络连接(例如,以太网)。

通信子系统924可以接收和发送各种形式的数据。例如,在一些实施例中,通信子系统924可以接收结构化的和/或非结构化的数据馈送926、事件流928、事件更新930等形式的输入通信。例如,通信子系统924可以被配置为实时接收(或发送)来自社交媒体网络和/或其它通信服务的用户的数据馈送926和/或来自一个或多个第三方信息源的实时更新,其中数据馈送926诸如馈送、更新、诸如丰富站点摘要(RSS)馈送之类的web馈送。

在某些实施例中,通信子系统924可以被配置为接收没有明确结束的本质上可以是连续的或无界的连续数据流形式的数据,其中连续数据流可以包括实时事件的事件流928和/或事件更新930。生成连续数据的应用的示例可以包括例如传感器数据应用、金融收报机、网络性能测量工具(例如,网络监控和流量管理应用)、点击流分析工具、汽车交通监控等。

通信子系统924还可以被配置为向可以与耦接到计算机系统900的一个或多个流送(streaming)数据源计算机通信的一个或多个数据库输出结构化的和/或非结构化的数据馈送926、事件流928、事件更新930等。

计算机系统900可以是包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、个人计算机、工作站、大型机、信息亭(kiosk)、服务器机架或任何其它数据处理系统的各种类型中的一种类型。

由于计算机和网络不断变化的本质,旨在将图9中绘出的计算机系统900的描述仅仅作为具体示例。具有比图9中绘出的系统更多或更少组件的许多其它配置是可能的。基于本文提供的公开和教导,本领域普通技术人员将理解实现各种实施例的其它方式和/或方法。

根据本公开的实施例,提供了一种资源管理系统,包括:资源请求接口,其被配置为接收对服务的请求;策略管理器,其被配置为基于请求来识别多个计算资源的定义,并且确定指示该多个计算资源的放置配置的放置策略,其中该定义指示该多个计算资源的一个或多个特性;以及资源分配模块,其被配置为使用放置策略和定义在资源基础设施系统中分配该多个计算资源,该资源基础设施系统包括一个或多个数据中心。

在示例中,请求包括定义,并且其中定义包括处理器定义、存储器定义和虚拟机定义,其中虚拟机定义识别虚拟机集合。

在示例中,请求指示供多个计算资源使用的服务的类型,并且其中定义是基于服务的类型来识别的。

在示例中,定义是基于将使用多个计算资源部署的服务来识别的。

在示例中,资源分配模块还被配置为根据放置配置来在资源基础设施系统中建立多个计算资源的放置,其中放置配置包括建立多个资源的放置的地理位置。

在示例中,放置配置指示多个组,其中放置配置识别被分配给多个组中的第一组的虚拟机集合,并且其中多个计算资源中的第一计算资源基于放置配置被分配给第一组。

在示例中,放置配置包括安全性配置,以防止其它计算资源对多个计算资源的访问,并且其中安全性配置指示被分配为管理多个计算资源的一个或多个管理程序。

在示例中,安全性配置还指示被分配给管理程序以支持多个计算资源的虚拟机集合。

在示例中,放置配置包括性能配置,该性能配置指示被分配给第一管理程序的第一计算资源并且指示被分配给第二管理程序的第二计算资源,并且其中多个计算资源包括第一计算资源和第二计算资源。

根据本公开的另一实施例,提供了一种计算机系统,包括:通信子系统;以及处理子系统,该处理子系统耦接到通信子系统并且被配置为:经由通信子系统接收请求;基于请求识别多个计算资源的定义,该定义指示该多个计算资源的一个或多个特性;确定指示该多个计算资源的放置配置的放置策略;以及使用放置策略和定义来在资源基础设施系统中分配多个计算资源,该资源基础设施系统包括一个或多个数据中心。

在示例中,计算机系统还包括资源基础设施系统。

在示例中,请求包括定义,并且其中定义包括处理器定义、存储器定义和虚拟机定义,该虚拟机定义识别虚拟机集合。

在示例中,请求指示供多个计算资源使用的服务的类型,并且其中定义是基于服务的类型来识别的。

在示例中,放置配置指示多个组,其中该放置配置识别被分配给多个组中的第一组的虚拟机集合,并且其中多个计算资源中的第一计算资源基于该放置配置被分配给第一组。

在示例中,放置配置包括安全性配置,以防止其它计算资源对多个计算资源的访问,并且其中安全性配置指示被分配为管理多个计算资源的一个或多个管理程序。

对本领域技术人员明显的是,对于上文描述的资源管理系统和计算机系统的组件的特定操作过程,可以参考共享相同概念的相关方法/系统实施例中的对应步骤/组件并且该参考也被视为相关单元的公开。因此,为了描述的简洁,将不重复或详细描述被处理的特定操作中的一些操作。

虽然已经描述了本发明的具体实施例,但是各种修改、更改、可替代结构和等价物也包含在本发明的范围内。修改包括所公开的特征的任何相关组合。本发明的实施例不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。附加地,虽然已使用特定系列的事务和步骤描述了本发明的实施例,但是对本领域技术人员来说应当明显的是,本发明的范围不限于所描述的系列的事务和步骤。上文描述的实施例的各种特征和方面可以被单独使用或联合使用。

此外,虽然已经使用硬件和软件的特定组合描述了本发明的实施例,但是应当认识到,硬件和软件的其它组合也在本发明的范围内。本发明的实施例可以仅在包括FPGA、ASIC等的硬件中、或仅在软件中、或使用其组合来实现。本文描述的各种过程可以在同一处理器上或以任何组合的不同处理器上实现。相应地,在组件或模块被描述为被配置为执行某些操作的情况下,这样的配置可以例如通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作、或其任意组合来实现。进程可以使用各种技术来通信,所述各种技术包括但不限于用于进程间通信的常规技术,并且不同的进程对可以使用不同的技术,或者同一进程对可以在不同时间使用不同的技术。

相应地,说明书和附图要在说明性的意义上而不是限制性的意义上考虑。然而,将明显的是,在不背离权利要求中阐述的更宽的精神和范围的情况下,可以对其进行添加、减少、删除以及其它修改和改变。因此,虽然已描述了具体的发明实施例,但是这些实施例不旨在是限制性的。各种修改和等价物在以下权利要求的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1