[go: up one dir, main page]

CN106462444A - Architecture and method for cloud provider selection and projection - Google Patents

Architecture and method for cloud provider selection and projection Download PDF

Info

Publication number
CN106462444A
CN106462444A CN201580012267.5A CN201580012267A CN106462444A CN 106462444 A CN106462444 A CN 106462444A CN 201580012267 A CN201580012267 A CN 201580012267A CN 106462444 A CN106462444 A CN 106462444A
Authority
CN
China
Prior art keywords
data center
data
virtual
cloud
provider
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.)
Pending
Application number
CN201580012267.5A
Other languages
Chinese (zh)
Inventor
西格弗里德·卢夫特
克里斯托弗·琼斯
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.)
Las Vegas Corp
Original Assignee
Las Vegas Corp
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
Priority claimed from US14/588,613 external-priority patent/US20150195347A1/en
Priority claimed from US14/588,620 external-priority patent/US20150195141A1/en
Priority claimed from US14/588,631 external-priority patent/US20150193128A1/en
Priority claimed from US14/588,626 external-priority patent/US20150193246A1/en
Priority claimed from US14/588,607 external-priority patent/US20150193862A1/en
Priority claimed from US14/588,658 external-priority patent/US20150193466A1/en
Application filed by Las Vegas Corp filed Critical Las Vegas Corp
Priority claimed from PCT/US2015/010193 external-priority patent/WO2015103560A2/en
Publication of CN106462444A publication Critical patent/CN106462444A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The invention relates to an architecture and method for cloud provider selection and projection. According to the invention, an architecture and method are provided for selecting and projecting a data center. For example, one embodiment of an apparatus comprises: a broker component to manage data center information, the broker component to receive updates containing the data center information and to respond to queries to provide the data center information; a selection engine to perform data center selections and/or recommendations for a cloud user based on data center information read from the broker component, wherein the data center selections and/or recommendations are made based on data center requirements and/or preferences specified by the end user; and a projection component to interface with a selected data center and transmit data to configure the data center on behalf of the user upon selection of the data center from the selections and/or recommendations made by the selection engine.

Description

云提供商选择和投影的架构及方法Architecture and methodology for cloud provider selection and projection

背景技术Background technique

相关申请的交叉引用Cross References to Related Applications

本申请要求以下各专利申请的权益:2015年1月2日提交的美国专利申请No.14/588,613;2014年1月6日提交的美国临时专利申请No.61/924,122;2015年1月2日提交的美国专利申请No.14/588,620;2014年1月6日提交的美国临时专利申请No.61/924,125;2015年1月2日提交的美国专利申请No.14/588,626;2014年1月6日提交的美国临时专利申请No.61/924,128;2015年1月2日提交的美国专利申请No.14/588,631;2014年1月6日提交的美国临时专利申请No.61/924,133;2015年1月2日提交的美国专利申请No.14/588,658;2014年1月6日提交的美国临时专利申请No.61/924,137;2015年1月2日提交的美国专利申请No.14/588,607;以及2014年1月6日提交的美国临时专利申请No.61/924,143,这些申请据此全部以引用的方式并入本文。This application claims the benefit of the following patent applications: U.S. Patent Application No. 14/588,613, filed January 2, 2015; U.S. Provisional Patent Application No. 61/924,122, filed January 6, 2014; U.S. Patent Application No. 14/588,620 filed on January 6, 2014; U.S. Provisional Patent Application No. 61/924,125 filed on January 6, 2014; U.S. Patent Application No. 14/588,626 filed on January 2, 2015; U.S. Provisional Patent Application No. 61/924,128 filed on January 6; U.S. Provisional Patent Application No. 14/588,631 filed on January 2, 2015; U.S. Provisional Patent Application No. 61/924,133 filed on January 6, 2014; U.S. Patent Application No. 14/588,658, filed January 2, 2015; U.S. Provisional Patent Application No. 61/924,137, filed January 6, 2014; U.S. Patent Application No. 14/ 588,607; and U.S. Provisional Patent Application No. 61/924,143, filed January 6, 2014, which are hereby incorporated by reference in their entirety.

技术领域technical field

本发明整体涉及数据处理系统的领域。更具体地讲,本发明涉及用于云提供商选择和投影的系统和方法。The present invention relates generally to the field of data processing systems. More specifically, the present invention relates to systems and methods for cloud provider selection and projection.

相关领域说明Description of related fields

云计算可使用基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)的模型来提供。这些模型中的任一种可在基于云的“数据中心”内实现,所述基于云的“数据中心”由各种计算资源(例如,服务器、路由器、负载均衡器、交换机等)构成。Cloud computing can be provided using infrastructure-as-a-service (IaaS), platform-as-a-service (PaaS), and software-as-a-service (SaaS) models. Either of these models can be implemented within a cloud-based "data center" composed of various computing resources (eg, servers, routers, load balancers, switches, etc.).

IaaS是最基本的模型。IaaS提供商提供物理计算机或虚拟计算机(即,使用虚拟机)和其他资源诸如虚拟机盘图像库、存储资源(包括基于文件的存储)、防火墙、负载均衡器、IP地址、虚拟局域网(VLAN)和软件包。IaaS提供商可从安装在数据中心中的较大池中动态地供应这些资源。为了部署其应用程序,云用户将操作系统图像和应用程序软件安装在云资源上。在这个模型中,云用户维护操作系统和应用程序软件。通常,云提供商基于所分配和所消耗的资源量而对用户计费。IaaS is the most basic model. IaaS providers provide physical computers or virtual computers (i.e., using virtual machines) and other resources such as virtual machine disk image libraries, storage resources (including file-based storage), firewalls, load balancers, IP addresses, virtual local area networks (VLANs) and software packages. IaaS providers can dynamically provision these resources from larger pools installed in data centers. To deploy their applications, cloud users install operating system images and application software on cloud resources. In this model, cloud subscribers maintain the operating system and application software. Typically, cloud providers bill users based on the amount of resources allocated and consumed.

在PaaS模型中,云提供商交付完整的计算平台,该计算平台通常包括操作系统、Web服务器、编程语言执行环境和数据库。应用程序开发者在这个云平台上开发并运行软件解决方案,而不存在与购买和管理基础硬件和软件层相关的成本和复杂性。在一些PaaS具体实施中,基础资源(例如,计算、存储等)自动地缩放以匹配应用程序需求,使得云用户无需手动地分配资源。In the PaaS model, a cloud provider delivers a complete computing platform, which typically includes an operating system, web server, programming language execution environment, and database. Application developers develop and run software solutions on this cloud platform without the cost and complexity associated with purchasing and managing the underlying hardware and software layers. In some PaaS implementations, underlying resources (eg, compute, storage, etc.) are automatically scaled to match application requirements, eliminating the need for cloud users to manually allocate resources.

在SaaS模型中,云提供商在云中安装和维护应用程序软件,而云用户从云客户端访问软件(有时称为“按需软件”模型)。这消除了在云用户自己的计算机上安装和运行应用程序的需求,进而简化了维护和支持。与本地执行的应用程相比,云应用程序提供实际上无限制的可扩展性,这通过在运行时间期间将任务克隆到多个虚拟机上来实现,从而满足变化的工作需求。负载均衡器将工作对用户透明地在虚拟机组上分配(用户仅看到单个接入点)。In the SaaS model, the cloud provider installs and maintains application software in the cloud, and the cloud subscriber accesses the software from cloud clients (sometimes called the "software on demand" model). This simplifies maintenance and support by eliminating the need to install and run applications on cloud subscribers' own computers. Compared to locally executed applications, cloud applications offer virtually unlimited scalability by cloning tasks onto multiple virtual machines during runtime to meet changing work demands. The load balancer distributes the work across groups of virtual machines transparently to the user (the user only sees a single access point).

附图说明Description of drawings

可结合下列附图从以下具体实施方式更好地理解本发明,其中:The present invention can be better understood from the following detailed description in conjunction with the following drawings, wherein:

图1A示出了云分析和投影服务的一个实施例;Figure 1A illustrates one embodiment of a cloud analysis and projection service;

图1B图示出了与云提供商市场相关的细节;Figure 1B illustrates details related to the cloud provider market;

图2A示出了根据本发明的一个实施例的系统架构;Figure 2A shows a system architecture according to one embodiment of the present invention;

图2B至图2C示出了根据本发明的一个实施例的方法;2B to 2C illustrate a method according to an embodiment of the present invention;

图3示出了本发明的一个实施例中所采用的数据中心判优(arbitrage)的图例;Figure 3 shows an illustration of data center arbitration (arbitrage) employed in one embodiment of the present invention;

图4示出了选择引擎架构的一个实施例;Figure 4 shows an embodiment of a selection engine architecture;

图5A至图5D示出了与包括图形用户界面的虚拟化和投影组件一个实施例相关的另外细节;Figures 5A-5D show additional details related to one embodiment of a virtualization and projection component including a graphical user interface;

图6示出了用于将虚拟数据中心投影到物理数据中心的一个实施例中所采用的多个逻辑层;Figure 6 illustrates multiple logical layers employed in one embodiment for projecting a virtual data center onto a physical data center;

图7示出了与全局中介的一个实施例相关的另外细节;Figure 7 shows additional details related to one embodiment of a global mediation;

图8示出了虚拟数据中心覆盖(overlay)的一个实施例;Figure 8 shows an embodiment of a virtual data center overlay;

图9至图10示出了用于迁移数据中心的分布式文件系统引擎的一个实施例;Figures 9 to 10 illustrate an embodiment of a distributed file system engine for migrating data centers;

图11A至图11B示出了用于迁移数据中心的影子存储系统的一个实施例;11A-11B illustrate an embodiment of a shadow storage system for migrating data centers;

图12A至图12C示出了本发明的一个实施例中的用于迁移数据中心的网关和网络基础设施;Figures 12A to 12C illustrate gateways and network infrastructure for migrating data centers in one embodiment of the present invention;

图13A至图13B示出了根据本发明的一个实施例的代理和数据收集过程;Figures 13A-13B illustrate an agent and data collection process according to one embodiment of the present invention;

图14示出了全局中介及与选择引擎通信的一个实施例的另外细节。Figure 14 shows additional details of one embodiment of the global broker and communication with the selection engine.

具体实施方式detailed description

下文描述了用于云服务选择和投影的设备、方法和机器可读介质的实施例。在整个描述中,出于解释的目的,本文陈述了许多特定细节以便透彻理解本发明。然而,对于本领域的技术人员显而易见的是,可在不具有这些特定细节中的一些的情况下实践本发明。在其他情况下,为避免模糊本发明的基本原理,已熟知的结构和装置未示出或以框图形式示出。Embodiments of apparatuses, methods, and machine-readable media for cloud service selection and projection are described below. Throughout the description, for purposes of explanation, numerous specific details are set forth herein in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are not shown or are shown in block diagram form in order to avoid obscuring the underlying principles of the invention.

本文所述的本发明的实施例为了那些迁移到云的用户利用越来越多的云服务提供商。具体地讲,这些实施例包括独立于真实提供云足迹的云服务提供商,而用于管理和移动数据中心的机制。在一个实施例中,云足迹为IaaS足迹;然而,本发明的基础原理也可在整个提供PaaS服务或SaaS服务的数据中心而实现。Embodiments of the invention described herein take advantage of a growing number of cloud service providers for those migrating to the cloud. In particular, these embodiments include mechanisms for managing and moving data centers independently of the cloud service provider that actually provides the cloud footprint. In one embodiment, the cloud footprint is an IaaS footprint; however, the underlying principles of the present invention can also be implemented throughout a data center offering PaaS services or SaaS services.

图1A示出了根据本发明的一个实施例的云分析和投影服务(CAPS)100的高层架构。如下文详细描述,CAPS 100能够实现多个强大的模型,包括对由云提供商121至124所提供的各式各样的数据中心判优的能力,以便为虚拟数据中心创造最优的价格、性能、可用性和/或地理范围。具体地讲,CAPS 100的一个实施例根据由云用户111至115所指定的要求而对成本数据、资源数据、性能数据、地理范围数据、可靠性数据和/或任何其他相关的云提供商变量进行分析。一旦已对相关数据进行了评估,CAPS 100就会为了云用户而自动地选择一个或多个云提供商。另选地或除此之外,CAPS 100可通过执行云判优、利用云提供商之间的可测量差异(例如,一旦在云提供商之间出现不平衡,包括在云提供商定价、性能、服务水平协议或其他可测量度量之间出现差异即资本化的匹配交易的组合)来推荐一组“候选”云提供商。终端用户随后可在所推荐的云提供商候选之中进行选择。FIG. 1A shows a high-level architecture of a Cloud Analysis and Projection Service (CAPS) 100 according to one embodiment of the present invention. As described in detail below, CAPS 100 is capable of implementing several powerful models, including the ability to arbitrate a wide variety of data centers offered by cloud providers 121-124 in order to create optimal prices, performance, availability and/or geographic scope. In particular, one embodiment of CAPS 100 evaluates cost data, resource data, performance data, geographic extent data, reliability data, and/or any other relevant cloud provider variables according to requirements specified by cloud subscribers 111-115. for analysis. Once the relevant data has been evaluated, the CAPS 100 automatically selects one or more cloud providers for the cloud subscriber. Alternatively or in addition, CAPS 100 may exploit measurable differences between cloud providers by performing cloud arbitration (e.g., once an imbalance occurs between cloud providers, including in cloud provider pricing, performance , service level agreement, or other measurable metric that differs (i.e. capitalized) from matching transactions) to recommend a set of "candidate" cloud providers. The end user can then choose among the recommended cloud provider candidates.

如以下详细讨论,CAPS 100的一个实施例包括虚拟化和投影逻辑,以使数据中心资源虚拟化,并且一旦作出从一个云提供商迁移到另一个云提供商的决定,就实现数据中心迁移(例如,参见图2A中所示的虚拟化和投影组件231)。具体地讲,CAPS 100的一个实施例生成所有数据中心资源的虚拟化或逻辑表示,该数据中心资源包括(但不限于),路由器、交换机、负载均衡器、WAN加速器、防火墙、VPN集中器、DNS/DHCP服务器、工作负载/虚拟机、文件系统、网络附接存储系统、对象存储器和备份存储器,仅举几例。该“虚拟数据中心”表示反映了包括数据中心的原子组件,并且管理每个逻辑装置的基本调试状态。CAPS 100随后通过将虚拟化表示转变成实现物理数据中心所需的格式,或通过在云提供商上直接执行虚拟数据中心(例如,使用完全虚拟化的实施方式,如下文结合图9所述)来将虚拟数据中心投影在新的物理数据中心上。As discussed in detail below, one embodiment of the CAPS 100 includes virtualization and projection logic to virtualize data center resources and enable data center migration ( See, for example, the virtualization and projection component 231 shown in Figure 2A). Specifically, one embodiment of CAPS 100 generates a virtualized or logical representation of all data center resources including, but not limited to, routers, switches, load balancers, WAN accelerators, firewalls, VPN concentrators, DNS/DHCP servers, workloads/virtual machines, file systems, network attached storage systems, object storage, and backup storage, to name a few. This "virtual data center" representation reflects the atomic components comprising the data center and manages the basic debug state of each logical device. The CAPS 100 then implements the virtualized data center by converting the virtualized representation into the format required to implement the physical data center, or by executing the virtual data center directly on the cloud provider (e.g., using a fully virtualized implementation, as described below in conjunction with FIG. 9 ) to project the virtual data center onto the new physical data center.

存在数以千计的小型云服务提供商,他们和大型提供商一样能够向他们的客户交付IaaS,但这些小型提供商被视为是零碎型的或区域性的。考虑图1B所示的图表,其示出了当前主要的北美云服务提供商。注意市场份额的对数降低。通过征求曲线上的长尾部,CAPS100变成用于聚合数据中心服务的“造市商”。在一个实施例中,CAPS 100采用中介模型用于购买和销售这些数据中心服务,即在买家和卖家之间安排交易,并且在执行交易时收取佣金。这对于云用户111至115和云提供商121至124来说均有利,因为这实现了贯穿零碎型市场的移动,并且创造了聚集型市场,而无需单纯收购。There are thousands of small cloud service providers who are just as capable of delivering IaaS to their customers as the large providers, but these small providers are considered fragmented or regional. Consider the diagram shown in Figure 1B, which shows the current major North American cloud service providers. Note the log reduction in market share. Through the long tail of the solicitation curve, CAPS100 becomes a "market maker" for aggregated data center services. In one embodiment, CAPS 100 employs an intermediary model for buying and selling these data center services, ie, arranging a transaction between a buyer and a seller, and receiving a commission when the transaction is executed. This is beneficial to both cloud subscribers 111-115 and cloud providers 121-124 as it enables movement through fragmented markets and creates aggregated markets without mere acquisitions.

云卖家121至124可基于成本和其他变量诸如持续时间(有限时间段的具体成本)、服务水平协议、地理位置、网络资源(适用于某些分布式应用程序)和/或专用于某些应用程序的硬件资源而向CAPS平台100报价。这种数据可通过来自以往客户交易的历史记录进一步扩增(例如,使用客户反馈或其他评级系统)。“判优”的概念因此得以扩展,以通过更大的云卖家特征列表来匹配云买家的要求。一个简单的示例为价格和持续时间。卖家可能仅仅在一特定持续时间内有容量处于某一折扣率(例如,因为另一个客户在未来的给定时刻预定了该容量)。这可能对具有较多移动数据中心架构,或仅对它们的数据中心具有短期需求的一些买家可行。然而,总体上,随大数定律生效,CAPS 100可能有越来越大的可能性为每个卖家找到买家,从而使两者都获利。Cloud sellers 121-124 may base their data on cost and other variables such as duration (specific cost for a limited time period), service level agreement, geographic location, network resources (for some distributed applications) and/or dedicated to certain applications The hardware resources of the program are quoted to the CAPS platform 100 . This data can be further augmented with historical records from past customer transactions (eg, using customer feedback or other rating systems). The concept of "arbitration" is thus expanded to match cloud buyer requirements with a larger list of cloud seller characteristics. A simple example is price and duration. A seller may only have capacity at a certain discounted rate for a certain duration (eg, because another customer booked that capacity at a given time in the future). This may work for some buyers with more mobile data center architectures, or only short-term needs for their data centers. Overall, however, with the law of large numbers in effect, there may be an increasing likelihood that the CAPS 100 will find a buyer for each seller, making both profitable.

如图2A所示,CAPS 100的一个实施例包括多个组件,所述多个组件包括全局中介210、一组用户选择引擎220至222(例如,每个云用户一个用户选择引擎)以及虚拟化和投影组件231。全局中介210管理所有可用云提供商121至124的数据库211,和由云提供商所提供的数据中心的属性。以举例的方式,数据库211可包括成本数据、资源数据、性能数据、地理范围数据、可靠性数据和/或与由云提供商121至124所操作的数据中心相关的任何其他相关信息。数据库211可由云提供商121至124自己动态地更新或由CAPS 100的成员静态地更新。例如,如果特定云提供商已就特定持续时间改变了其数据中心资源的成本结构,那么该云提供商可就该变化更新数据库211中的成本/持续时间。类似地,如果云提供商已升级其硬件/软件,或在新的位置开放了新的数据中心,那么该云提供商可更新数据库211以反映这些变化。As shown in FIG. 2A, one embodiment of the CAPS 100 includes a number of components including a global broker 210, a set of user choice engines 220-222 (e.g., one user choice engine per cloud user), and a virtualization and projection assembly 231. The global broker 210 manages the database 211 of all available cloud providers 121 to 124, and the properties of the data centers provided by the cloud providers. By way of example, database 211 may include cost data, resource data, performance data, geographic extent data, reliability data, and/or any other relevant information related to the data centers operated by cloud providers 121-124. Database 211 may be dynamically updated by cloud providers 121 - 124 themselves or statically by members of CAPS 100 . For example, if a particular cloud provider has changed its cost structure for data center resources for a particular duration, that cloud provider may update the cost/duration in database 211 with the change. Similarly, if the cloud provider has upgraded its hardware/software, or opened a new data center in a new location, the cloud provider can update the database 211 to reflect these changes.

在一个实施例中,全局中介210暴露一应用编程接口(API)以使得能够对数据库211更新。云提供商121至124随后可利用API来动态地更新数据库211。这可例如经由安装在云提供商121至124每一者处的CAPS软件,和/或经由可由浏览器客户端在云提供商处访问的Web服务器来实现。静态提供商更新也可经由API来实现。In one embodiment, global broker 210 exposes an application programming interface (API) to enable updates to database 211 . The cloud providers 121-124 can then utilize the API to dynamically update the database 211. This can be achieved, for example, via CAPS software installed at each of the cloud providers 121-124, and/or via a web server accessible by a browser client at the cloud provider. Static provider updates are also possible via the API.

在一个实施例中,执行用户选择引擎220至222来进行每个云用户的数据中心选择/推荐。在图2A所示的示例中,执行选择引擎220来实施用户A的数据中心选择/推荐;执行选择引擎221来实施用户B的数据中心选择/推荐;以及执行选择引擎222来实施用户C的数据中心选择/推荐。在操作中,每个选择引擎220至222均提供有对应云用户的数据中心要求(例如,成本、性能、可靠性、地理位置等),并且随后从中介数据库中识别匹配那些要求的候选云提供商。In one embodiment, user selection engines 220-222 are implemented to make data center selection/recommendations for each cloud user. In the example shown in FIG. 2A, selection engine 220 is executed to implement user A's data center selection/recommendation; selection engine 221 is executed to implement user B's data center selection/recommendation; Center selection/recommendation. In operation, each selection engine 220-222 is provided with the data center requirements (e.g., cost, performance, reliability, geographic location, etc.) of a corresponding cloud user and then identifies candidate cloud offerings matching those requirements from the intermediary database. business.

如下文更详细讨论,每个选择引擎220至222可生成匹配用户要求的云提供商121至124的优先列表(prioritized list)(例如,位于列表顶部的云提供商比位于列表底部的云提供商更匹配这些要求)。该列表可作为一组云提供商“推荐”,并且连同为这些推荐解释原因的比较性分析一起提供给终端用户。另选地,在一个实施例中,选择引擎可为了用户而自动地选择云提供商之一(并且如下所讨论,在数据中心之间进行迁移)。As discussed in more detail below, each selection engine 220-222 may generate a prioritized list of cloud providers 121-124 that match the user's requirements (e.g., cloud providers at the top of the list are more preferred than cloud providers at the bottom of the list). more closely match these requirements). This list is available as a set of cloud provider "recommendations" and is presented to end users along with a comparative analysis explaining the reasons for those recommendations. Alternatively, in one embodiment, the selection engine may automatically select one of the cloud providers for the user (and, as discussed below, migrate between data centers).

在一个实施例中,选择引擎220至222从全局中介数据库211中周期性地和/或自动地接收更新以给出新的数据中心选择和/或推荐。例如,如果一特定云提供商121至124已显著降低其服务成本,那么这可能会导致选择引擎选择该云提供商,并且/或者将该云提供商置于优先列表的顶部(从而使迁移到该新的云提供商合理)。选择引擎接收更新并生成数据中心优先列表的频率可根据CAPS 100的实施方式和/或每个云用户的偏好而变化。In one embodiment, the selection engines 220-222 periodically and/or automatically receive updates from the global brokerage database 211 to give new data center selections and/or recommendations. For example, if a particular cloud provider 121-124 has significantly reduced its cost of service, this may cause the selection engine to select that cloud provider and/or place that cloud provider at the top of the priority list (thus enabling migration to This new cloud provider makes sense). The frequency with which the selection engine receives updates and generates the data center priority list may vary depending on the implementation of CAPS 100 and/or the preferences of each cloud subscriber.

图4示出了与选择引擎220相关的额外细节,该选择引擎包括数据中心优先次序逻辑420,该数据中心优先次序逻辑用于向中介210发送查询,该查询指示出数据中心要求(例如,由用户请求/偏好425所规定)。例如,数据中心优先次序逻辑420可基于用户输入425发送查询,该查询规定其仅对位于特定地理区域内并且具有某些能力(例如,负载平衡、自动故障转移能力)的数据中心有兴趣。因此,由中介210提供的候选数据中心将限于具有所需参数的那些。FIG. 4 shows additional details related to selection engine 220, which includes data center prioritization logic 420 for sending a query to intermediary 210 indicating data center requirements (e.g., determined by user request/preference 425). For example, data center prioritization logic 420 may send a query based on user input 425 specifying that it is only interested in data centers located within a particular geographic area and having certain capabilities (eg, load balancing, automatic failover capabilities). Therefore, the candidate data centers provided by the broker 210 will be limited to those with the required parameters.

如图4所指出的那样,数据中心优先次序逻辑420随后可基于各种加权组件(包括判优组件401、性能组件402和可靠性组件403)而对候选数据中心区分优先级。虽然在图3中仅示出了三个组件,但在数据中心优先次序逻辑420中可包括各种其他的/额外的组件,同时仍遵守本发明的基础原理(例如,诸如地理位置、终端用户的数据中心评级等)。As noted in FIG. 4 , data center prioritization logic 420 can then prioritize candidate data centers based on various weighting components, including arbitration component 401 , performance component 402 , and reliability component 403 . Although only three components are shown in FIG. 3 , various other/additional components may be included in the data center prioritization logic 420 while still adhering to the underlying principles of the invention (e.g., such as geographic location, end-user data center rating, etc.).

在一个实施例中,权重基于用户规定的要求/偏好425而被分配到每个组件401至403。例如,如果一特定云用户主要对低成本数据中心服务感兴趣,那么判优组件401的权重可比性能成分402和可用性组件403更大。另一个云用户也可能会对低成本感兴趣,但可能会规定性能组件402和/或可靠性成分403的最低要求。在这种情况下,数据中心优先次序逻辑420将过滤掉那些不满足最低要求的数据中心,并且随后基于成本而对剩余的候选数据中心区分优先级。再一个云用户可能主要关心数据中心可靠性组件403,并且因此可靠性组件403的权重可比判优组件401或性能组件402更大。各种不同的/额外的算法可由数据中心优先次序逻辑420实施,以基于相对的组件权重而生成优先选择或推荐410。In one embodiment, weights are assigned to each component 401 - 403 based on user-specified requirements/preferences 425 . For example, if a particular cloud subscriber is primarily interested in low-cost data center services, then the arbitration component 401 may be weighted more heavily than the performance component 402 and the availability component 403 . Another cloud subscriber may also be interested in low cost, but may specify minimum requirements for performance component 402 and/or reliability component 403 . In this case, the data center prioritization logic 420 will filter out those data centers that do not meet the minimum requirements, and then prioritize the remaining candidate data centers based on cost. Yet another cloud user may be primarily concerned with the data center reliability component 403 , and thus the reliability component 403 may be weighted more heavily than the arbitration component 401 or the performance component 402 . Various/additional algorithms may be implemented by data center prioritization logic 420 to generate preferences or recommendations 410 based on relative component weights.

回到图2A,一旦选择了新的云提供商,虚拟化和投影组件231就会管理数据中心到该新的云提供商的迁移。如上所述,虚拟化和投影组件231的一个实施例维持每个云用户所要求的数据中心资源的“虚拟数据中心”表示,诸如,路由器、交换机、负载均衡器、WAN加速器、防火墙、VPN集中器、DNS/DHCP服务器、工作负载/虚拟机、文件系统、网络附接存储系统、对象存储器和备份存储器,仅举几例。这个“虚拟数据中心”表示反映了包括数据中心的原子组件并且管理每个逻辑装置的基本调试状态(例如,每个装置的用户专用配置)。在一个实施例中,虚拟化和投影组件231维护其自身用于管理/迁移每个虚拟数据中心所需的全部数据的数据库232。另选地,虚拟化和投影组件231可依赖于全局中介数据库211来存储该数据。Returning to Figure 2A, once a new cloud provider is selected, the virtualization and projection component 231 manages the migration of the data center to the new cloud provider. As noted above, one embodiment of the virtualization and projection component 231 maintains a "virtual data center" representation of the data center resources required by each cloud subscriber, such as routers, switches, load balancers, WAN accelerators, firewalls, VPN centralized servers, DNS/DHCP servers, workloads/virtual machines, file systems, network-attached storage systems, object storage, and backup storage, to name a few. This "virtual data center" representation reflects the atomic components comprising the data center and manages the basic commissioning state of each logical device (eg, each device's user-specific configuration). In one embodiment, the virtualization and projection component 231 maintains its own database 232 for all data needed to manage/migrate each virtual data center. Alternatively, virtualization and projection component 231 may rely on global mediation database 211 to store this data.

一旦选择了新的数据中心,虚拟化和投影组件231就会将虚拟数据中心投影在新的数据中心上。如上所述,至新的数据中心的投影可能涉及(例如,基于云提供商的特定硬件/软件资源)或通过在云提供商上直接执行虚拟数据中心(例如,使用完全虚拟化的实施方式,如以下结合图9所讨论)而将虚拟化表示转变成实现物理数据中心所需的格式。一旦投影完成,旧的数据中心就可关闭。Once a new data center is selected, the virtualization and projection component 231 projects the virtual data center onto the new data center. As mentioned above, projection to a new data center may involve (e.g. based on specific hardware/software resources of the cloud provider) or by directly executing a virtual data center on the cloud provider (e.g. using a fully virtualized implementation, As discussed below in conjunction with FIG. 9 ), the virtualized representation is transformed into the format required to implement the physical data center. Once the projection is complete, the old data center can be shut down.

图2B示出了一种用于基于用户指定的数据中心规格和要求而选择新的数据中心的方法的一个实施例;图2C示出了一种用于从一个数据中心迁移到另一个数据中心的方法的一个实施例。Figure 2B shows an embodiment of a method for selecting a new data center based on user-specified data center specifications and requirements; Figure 2C shows a method for migrating from one data center to another An example of the method.

首先转向图2B,在250中,用户输入数据中心的规格。如本文所使用,“规格”包括数据中心的特定组件和架构,包括例如路由器、交换机、负载均衡器、WAN加速器、防火墙、VPN集中器、DNS/DHCP服务器、工作负载/虚拟机、文件系统、网络附接存储系统、对象存储器和备份储存器的布置方式。在一个实施例中,虚拟化和投影组件231可为用户提供图形用户界面(GUI),该图形用户界面用于以图形方式选择数据中心组件和之间的互连(例如,参看图8和相关文本)。GUI可以是基于Web的(例如,通过可经由浏览器访问的Web页面而提供),或可以作为独立的应用程序来实施。在一个实施例中,虚拟化和投影组件231通过询问云用户与数据中心架构有关的一系列问题而确定数据中心规格。另选地或除此之外,虚拟化和投影组件231可为用户提供一组预先构造的数据中心模板,并可基于用户数据中心要求而从中进行选择。每个模板可与某一组所需资源相关联,并且/或者具有与其相关的特定参数。Turning first to Figure 2B, at 250, the user enters the specifications of the data center. As used herein, "Specifications" include specific components and architectures of data centers including, for example, routers, switches, load balancers, WAN accelerators, firewalls, VPN concentrators, DNS/DHCP servers, workloads/virtual machines, file systems, The arrangement of network-attached storage systems, object storage, and backup storage. In one embodiment, the virtualization and projection component 231 may provide a user with a graphical user interface (GUI) for graphically selecting data center components and interconnections between them (see, e.g., FIG. 8 and related text). The GUI can be web-based (eg, provided through a web page accessible via a browser), or can be implemented as a stand-alone application. In one embodiment, the virtualization and projection component 231 determines data center specifications by asking the cloud subscriber a series of questions related to the data center architecture. Alternatively or in addition, the virtualization and projection component 231 can provide the user with a set of pre-built data center templates from which to select based on the user's data center requirements. Each template can be associated with a certain set of required resources and/or have specific parameters associated therewith.

无论用户如何输入数据中心规格,在251处,虚拟化和投影组件都使用这些规格来构建虚拟数据中心表示。如上所述,在一个实施例中,虚拟表示包括所有所需数据中心资源和结构布局(例如,资源之间的互连)的抽象表示。虚拟表示反映了包括数据中心的原子组件,并且管理每个逻辑装置的基本调试状态。Regardless of how the user enters data center specifications, at 251 the virtualization and projection component uses these specifications to build a virtual data center representation. As noted above, in one embodiment, the virtual representation includes an abstract representation of all desired data center resources and structural layout (eg, interconnections between resources). The virtual representation reflects the atomic components comprising the data center and manages the basic debug state of each logical device.

在252处,用户指示出为对候选数据中心区分优先级而要考虑的各种因素。如上所述,这可能涉及基于用户的偏好/要求而使权重与变量相关联,变量如数据中心成本、性能数据和/或可靠性数据。在253处,基于这些规格和要求而识别出一组候选数据中心。例如,如先前所讨论的,如果一特定云用户主要对低成本数据中心服务感兴趣,那么成本变量的权重可比性能变量和可用性变量更大。可以实施各种不同的优先次序算法,以基于相对组件权重而生成优先选择或推荐。At 252, the user indicates various factors to be considered for prioritizing candidate data centers. As noted above, this may involve associating weights with variables, such as data center costs, performance data, and/or reliability data, based on the user's preferences/requirements. At 253, a set of candidate data centers is identified based on the specifications and requirements. For example, as previously discussed, if a particular cloud user is primarily interested in low-cost data center services, then the cost variable may be weighted more heavily than the performance and availability variables. Various different prioritization algorithms can be implemented to generate preferences or recommendations based on relative component weights.

在254处,从所识别的候选数据中心中选择数据中心。在一个实施例中,由云用户进行该选择(例如,在查看候选优先列表之后)。在另一个实施例中,该选择是为了云用户而自动执行的。At 254, a data center is selected from the identified candidate data centers. In one embodiment, the selection is made by the cloud user (eg, after viewing a prioritized list of candidates). In another embodiment, this selection is performed automatically for the cloud subscriber.

无论如何选择数据中心,在255处,都会将虚拟数据中心投影到所选择的物理数据中心上。如上所述,至新的数据中心的投影可能涉及(例如,基于云提供商的特定硬件/软件资源)或通过在云提供商上直接执行虚拟数据中心(例如,使用完全虚拟化的实施方式,如以下结合图9所讨论)而将虚拟化表示转变成实现物理数据中心所需的格式。一旦投影完成,即可使该数据中心置于在线状态。Regardless of the data center selection, at 255 the virtual data center is projected onto the selected physical data center. As mentioned above, projection to a new data center may involve (e.g. based on specific hardware/software resources of the cloud provider) or by directly executing a virtual data center on the cloud provider (e.g. using a fully virtualized implementation, As discussed below in conjunction with FIG. 9 ), the virtualized representation is transformed into the format required to implement the physical data center. Once the projection is complete, the data center can be brought online.

图2C示出了将现有的数据中心迁移到新的数据中心的方法的一个实施例。在260处,接收并评估数据中心更新,并且在261处,作出至新数据中心的迁移是否合理的决定(例如,基于价格、性能和/或可靠性考虑)。如所提及的,全局中介210可从云提供商121至124接收连续动态更新,并且/或者可静态地更新(即,由CAPS 100的成员静态地更新)。当这些更新被存储在全局中介210中时,每个选择引擎220至222可执行其选择策略,以确定至新数据中心的迁移是否对终端用户有利。例如,迁移的决定可以基于当前数据中心和/或其他候选数据中心的变化(例如,成本、SLA、除了成本外的数据中心层级、当日时间、受限时间段的性能、可用性等的变化)而作出。Figure 2C illustrates one embodiment of a method of migrating an existing data center to a new data center. At 260, a data center update is received and evaluated, and at 261, a decision is made whether migration to a new data center is justified (eg, based on price, performance, and/or reliability considerations). As mentioned, global broker 210 may receive continuous dynamic updates from cloud providers 121-124, and/or may be statically updated (ie, by members of CAPS 100). As these updates are stored in the global broker 210, each selection engine 220-222 can execute its selection policy to determine whether migration to a new data center would be beneficial to the end user. For example, a decision to migrate may be based on changes in the current data center and/or other candidate data centers (e.g., changes in cost, SLA, data center tier other than cost, time of day, performance for restricted time periods, availability, etc.) made.

图3以图形化描述的方式示出了用于选择新的数据中心的决策程序的一个实施例。如图所示,一经检测到与当前数据中心相关的成本已经处于容限范围之外(例如,如成本判优框371所示),就可生成迁移事件370。该事件可以是预定事件(例如,云提供商可提供关于成本变化的事先通知),在这种情况下,选择引擎可采用调度程序来触发迁移事件,以在特定时间点(例如,成本预计超过目标范围的时间点)移动数据中心。如框372所示,全局中介可利用与所有被监控数据中心有关的数据而经由投影馈送连续地更新。所有被监控数据中心组由选择引擎基于筛选标准诸如成本、性能、位置和/或可用性来过滤,以达成一组候选数据中心投影。随后基于“事件”而从该组候选中选择一特定数据中心,该事件为诸如当前投影未能落入容限范围内、候选投影与当前投影之间的差值升高超过阈值和/或筛选标准发生变化。最终的结果是,事件被触发(自动地或由云用户手动地)以迁移数据中心。FIG. 3 illustrates one embodiment of a decision process for selecting a new data center in a graphical depiction. As shown, a migration event 370 may be generated upon detection that the costs associated with the current data center have fallen outside of tolerance (eg, as indicated by cost arbitration block 371 ). The event can be a scheduled event (e.g., the cloud provider can provide advance notice of cost changes), in which case the selection engine can employ a scheduler to trigger migration events to occur at specific points in time (e.g., costs are expected to exceed point in time for the target range) to move the data center. As shown in block 372, the global broker may be continuously updated via projection feeds with data pertaining to all monitored data centers. All monitored data center groups are filtered by a selection engine based on filter criteria such as cost, performance, location and/or availability to arrive at a set of candidate data center projections. A particular data center is then selected from the set of candidates based on "events" such as the failure of the current projection to fall within tolerance, a rise in the difference between the candidate projection and the current projection above a threshold, and/or filtering Standards change. The end result is that events are triggered (either automatically or manually by the cloud user) to migrate the data center.

回到图2C,在262处,从该组候选中选择新的数据中心,并且在263处,将虚拟数据中心投影到新选择的数据中心上(例如,使用本文所述的各种投影技术)。Returning to FIG. 2C, at 262, a new data center is selected from the set of candidates, and at 263, a virtual data center is projected onto the newly selected data center (e.g., using various projection techniques described herein) .

如图5A至图5D所示,一个实施例包括用于创建和管理虚拟数据中心的图形用户界面和命令行界面。在一个实施例中,虚拟数据中心中所采用的虚拟控制器各自通过独特的图形来表示。图5A示出了用于表示虚拟控制器的一组特定图形,包括:虚拟数据中心图形501、网关图形502、网络路由器图形503、网络交换机图形504、防火墙图形505、负载均衡器图形506、WAN加速图形507、工作负载/虚拟机图形508、DNS服务器图形509、文件系统图形510、DHCP服务器图形511、备份存储器图形512、网络附接存储器图形513、VPN集中器图形514,以及对象存储器图形515。As shown in Figures 5A-5D, one embodiment includes a graphical user interface and a command line interface for creating and managing virtual data centers. In one embodiment, the virtual controllers employed in the virtual data center are each represented by a unique graphic. Figure 5A shows a specific set of graphs used to represent virtual controllers, including: Virtual Data Center graph 501, Gateway graph 502, Network Router graph 503, Network Switch graph 504, Firewall graph 505, Load Balancer graph 506, WAN Acceleration Graph 507, Workload/Virtual Machine Graph 508, DNS Server Graph 509, File System Graph 510, DHCP Server Graph 511, Backup Storage Graph 512, Network Attached Storage Graph 513, VPN Concentrator Graph 514, and Object Storage Graph 515 .

下文给出了通过这些图形图像来表示的虚拟控制器各自的简要说明。在一个实施例中,经由通过虚拟化和投影组件221而暴露的管理界面来提供对基础资源的访问。A brief description of each of the virtual controllers represented by these graphical images is given below. In one embodiment, access to the underlying resources is provided via a management interface exposed through the virtualization and projection component 221 .

虚拟数据中心501是捕获投影的高层属性诸如地理位置、SLA、层级等的程序。这是用于在顶层将地理位置不同的数据中心分组的非操作对象。虚拟数据中心的属性可包括位置、服务水平协议、数据中心层级、定价分类。Virtual Data Center 501 is a program that captures projected high-level attributes such as geographic location, SLA, tier, and the like. This is a non-operational object used to group geographically distinct datacenters at the top level. Attributes of a virtual data center may include location, service level agreement, data center tier, pricing classification.

网关路由器502负责互联网上的公共路由。属性包括WAN配置、路由入口、路由协议、界面监控、DNS特性、拓扑信息/路由信息以及亲和性规则。Gateway router 502 is responsible for public routing on the Internet. Attributes include WAN configuration, routing entries, routing protocols, interface monitoring, DNS properties, topology information/routing information, and affinity rules.

网络路由器503负责虚拟数据中心内的所有子网络之间的路由。多个网络路由器可利用不同的接口来实例化,所述接口连接到不同的子网络,更像真实路由器。属性可包括网络配置、路由入口、路由协议、界面监控以及亲和性规则。The network router 503 is responsible for routing between all sub-networks within the virtual data center. Multiple network routers can be instantiated with different interfaces connected to different subnets, much like a real router. Attributes can include network configuration, routing entries, routing protocols, interface monitoring, and affinity rules.

网络交换机504体现子网络的概念。使不同装置在子网络内彼此连接的接口由该实体建模。在收集了每个连接装置的遥测的情况下,网络交换机可以是受管实体,用于识别数据中心的使用情况及其成本和性能。属性可包括网络配置、监控以及亲和性规则。The network switch 504 embodies the concept of a subnet. Interfaces that connect different devices to each other within a sub-network are modeled by this entity. With telemetry collected for each connected device, a network switch can be a managed entity that identifies data center usage and its cost and performance. Properties can include network configuration, monitoring, and affinity rules.

防火墙505是通常由云提供商提供的特征,但也可以是由CAPS100(直接或通过App商店概念)所提供的一个附加特征。防火墙可提供一系列潜在贡献,包括但不限于网络地址转换(NAT)、分布式拒绝服务(DDOS)保护和流量监控。属性可包括网络配置、防火墙策略、监控策略以及亲和性规则。Firewall 505 is a feature typically provided by cloud providers, but can also be an additional feature provided by CAPS 100 (either directly or through the App Store concept). A firewall can provide a range of potential contributions including, but not limited to, Network Address Translation (NAT), Distributed Denial of Service (DDOS) protection, and traffic monitoring. Attributes can include network configuration, firewall policies, monitoring policies, and affinity rules.

负载均衡器506是用于出于向外扩展的目的而将多个相同的工作负载一起映射的装置。属性可包括网络配置、可寻址端站、平衡策略、监控和亲和性规则。Load balancer 506 is a device for mapping multiple identical workloads together for scale-out purposes. Attributes can include network configuration, addressable end stations, balancing policies, monitoring, and affinity rules.

WAN加速器507是可用于使WAN上的数据中心互连的服务。该组成要素可包括装置,如提供去重压缩算法的Riverbed。这些服务可由云提供商以虚拟工作负载形式提供给云用户。在两个或更多个虚拟数据中心之间,可使用WAN加速器的实例(每个站点使用一个)来压缩前往穿过WAN的数据。属性可包括网络配置、端点配置、SLA、基本用户特权、监控以及亲和性规则。WAN Accelerator 507 is a service that can be used to interconnect data centers over a WAN. The building blocks may include appliances such as Riverbed that provide deduplication compression algorithms. These services can be provided by cloud providers to cloud subscribers in the form of virtual workloads. Between two or more virtual data centers, instances of WAN accelerators (one per site) can be used to compress data traveling across the WAN. Attributes can include network configuration, endpoint configuration, SLAs, basic user privileges, monitoring, and affinity rules.

工作负载/虚拟机508维持OS图像的通用配置。针对多种VM格式诸如VMDK、ISO,其主要责任是传送这些图像。通过始终维持这些图像,迁移过程大大简化。属性可包括CPU类和数量、存储器、本地存储、操作系统图像、网络配置以及亲和性规则。Workloads/virtual machines 508 maintain a common configuration of OS images. For various VM formats such as VMDK, ISO, its main responsibility is to deliver these images. By maintaining these images at all times, the migration process is greatly simplified. Attributes may include CPU class and quantity, memory, local storage, operating system image, network configuration, and affinity rules.

DNS服务器509为虚拟数据中心提供了命名IaaS数据中心的内部和外部两者的方法。该DNS服务器应连接到托管IaaS服务提供商的命名服务和Siaras全局目录/中介。属性可包括域名、寻址、迁移特征、监控以及亲和性规则。The DNS server 509 provides a method for the virtual data center to name both the inside and outside of the IaaS data center. This DNS server should be connected to the managed IaaS service provider's naming service and the Siaras global directory/broker. Attributes can include domain names, addressing, migration characteristics, monitoring, and affinity rules.

文件系统510可与网络附接存储器(NAS)相关联。该文件系统可以是共享资源,但可以具有一些相关特权,也就是通过可寻址能力获得的特权,或潜在的基于用户的特权。文件系统的迁移组件的核心特征包括数据迁移。在一个实施例中,虚拟控制器支持将数据从一个文件系统实例转移到另一个文件系统实例的能力。迁移可在比虚拟文件系统控制器更高的层上协调进行,但控制器应当至少提供“壑(Sink)”和“源(Source)”机制以进行转移。如以下更详细讨论,在一个实施例中,使用并不要求手动转移数据的分布式文件系统(例如,Hadoop)。文件系统的每个实例均自动地绑定到现有节点并下载必要的本地数据。文件系统的属性可包括大小、网络配置、SLA、基本用户特权、备份策略以及亲和性规则。File system 510 may be associated with network attached storage (NAS). This file system can be a shared resource, but can have some associated privileges, either through addressability, or potentially user-based privileges. A core feature of the migration component of the file system includes data migration. In one embodiment, the virtual controller supports the ability to transfer data from one file system instance to another file system instance. Migration can be coordinated at a higher layer than the virtual file system controller, but the controller should at least provide "Sink" and "Source" mechanisms for migration. As discussed in more detail below, in one embodiment, a distributed file system (eg, Hadoop) that does not require manual transfer of data is used. Each instance of the file system automatically binds to an existing node and downloads the necessary local data. Attributes of a file system can include size, network configuration, SLAs, basic user privileges, backup policies, and affinity rules.

DHCP服务器511允许数据中心提供商定义寻址方案和ACL,以及其它对逻辑数据中心内的装置的控制。属性可包括子网络配置、监控以及亲和性规则。The DHCP server 511 allows the data center provider to define addressing schemes and ACLs, and other controls over devices within the logical data center. Properties can include subnetwork configuration, monitoring, and affinity rules.

备份存储器512是任何高可用性应用程序的核心属性,并且可以是本地IaaS服务提供商的属性化特征,或可能是CAPS的增值特征。在后一种情况下,存在的问题在于数据传输到物理数据中心之外的量,以及与其相关的成本。Backup storage 512 is a core attribute of any high availability application, and may be an attributed feature of the local IaaS service provider, or may be a value-added feature of CAPS. In the latter case, the issue is the amount of data transferred out of the physical data center, and the costs associated with it.

网络附接存储器513可以是一种高性能存储方法,可用于第1层IaaS云数据中心或用于专用数据中心内。这些控制器用于管理这些资源。属性可包括LUN和大小、RAID策略、网络配置、SLA、基本用户特权、备份策略以及亲和性规则。Network attached storage 513 can be a high performance storage method that can be used in a tier 1 IaaS cloud data center or in a dedicated data center. These controllers are used to manage these resources. Attributes can include LUNs and sizes, RAID policies, network configuration, SLAs, basic user privileges, backup policies, and affinity rules.

VPN集中器514是远程客户端将用来连接到数据中心的端站。VDI应用程序和其他基本安全连接将利用VPN集中器或用作简单的安全VPN端点。属性可包括网络配置、防火墙策略、监控策略以及亲和性规则。VPN concentrator 514 is the end station that remote clients will use to connect to the data center. VDI applications and other essential secure connections will utilize a VPN concentrator or be used as a simple secure VPN endpoint. Attributes can include network configuration, firewall policies, monitoring policies, and affinity rules.

IaaS云提供商可提供通过对象存储图形515来表示的对象存储能力。最佳地,对象存储虚拟控制器将提供变换函数,以将一个对象存储设施映射到另一个对象存储设施。终端应用程序的责任可能是利用云PaaS抽象解决方案诸如Chef或Cloud Foundry来处理API变化。在一个实施例中,CAPS的作用是确保移动有效地进行,并且数据可供新项目继续处理。属性可包括大小、网络配置、SLA、基本用户特权、备份策略以及亲和性规则。IaaS cloud providers may offer object storage capabilities represented by object storage graph 515 . Optimally, the object storage virtual controller will provide a transformation function to map one object storage facility to another object storage facility. The responsibility of the end application may be to leverage a cloud PaaS abstraction solution such as Chef or Cloud Foundry to handle API changes. In one embodiment, the role of CAPS is to ensure that the move is efficiently made and the data is available for continued processing by the new project. Attributes can include size, network configuration, SLAs, basic user privileges, backup policies, and affinity rules.

图5B示出了可由虚拟化和投影组件221执行(例如,经由对暴露的管理接口而言可访问的命令行)以构建虚拟数据中心的示例性的一系列命令510。虽然出于解释目的示出了命令行接口,但可响应于用户在图形用户界面内操纵元件而执行相同的一组命令(例如,如图5C至图5D所示)。在这个示例中,“创建数据中心‘Bob’”命令为名称为‘Bob’的数据中心(由图形501表示)创造虚拟控制器。命令“在‘Bob’上创建子网络‘main’192.168.1.0/24”在虚拟数据中心‘Bob’下创建网络交换机虚拟控制器504,并且另一组“创建”命令在网络交换机504下创建网关虚拟控制器502、文件系统虚拟控制器510和两个虚拟机控制器508。所得的虚拟数据中心随后经由“投影”命令而投影到数据中心520。如本文所述,可采用各种不同的技术来将虚拟数据中心投影到物理数据中心。在虚拟数据中心已成功投影后,可执行“移动”命令以将虚拟数据中心迁移到新的物理数据中心521。FIG. 5B shows an exemplary series of commands 510 that may be executed by virtualization and projection component 221 (eg, via a command line accessible to an exposed management interface) to build a virtual data center. While a command line interface is shown for purposes of explanation, the same set of commands may be executed in response to a user manipulating elements within a graphical user interface (eg, as shown in FIGS. 5C-5D ). In this example, the "Create Data Center 'Bob'" command creates a virtual controller for a data center named 'Bob' (represented by graph 501). The command "create subnet 'main' 192.168.1.0/24 on 'Bob'" creates network switch virtual controller 504 under virtual data center 'Bob', and another set of "create" commands creates gateway under network switch 504 A virtual controller 502 , a file system virtual controller 510 and two virtual machine controllers 508 . The resulting virtual data center is then projected to data center 520 via the "project" command. As described in this article, a variety of different techniques can be employed to project a virtual data center onto a physical data center. After the virtual data center has been successfully projected, a "move" command may be executed to migrate the virtual data center to a new physical data center 521 .

图5C示出了用于创建和管理虚拟数据中心的示例性图形用户界面(GUI)“控制面板(dashboard)”。在GUI窗口551内示出了两个数据中心(数据中心A 553和数据中心B 554)经由WAN加速器耦接在一起的网络拓扑。在一个实施例中,用户可在所显示的网络拓扑内通过选择并拖动表示虚拟控制器的图元来创建、编辑和删除虚拟控制器。例如,可选择在GUI的区域550内所显示的虚拟控制器元件,并且可编辑与这些元件中的每一者相关的配置数据。另选地,用户可从GUI窗口551直接选择虚拟控制器来编辑与控制器相关的变量。Figure 5C illustrates an exemplary graphical user interface (GUI) "dashboard" for creating and managing virtual data centers. A network topology of two data centers (data center A 553 and data center B 554 ) coupled together via a WAN accelerator is shown within the GUI window 551 . In one embodiment, a user can create, edit, and delete virtual controllers within the displayed network topology by selecting and dragging primitives representing virtual controllers. For example, virtual controller elements displayed within area 550 of the GUI can be selected and configuration data associated with each of these elements can be edited. Alternatively, the user may directly select a virtual controller from the GUI window 551 to edit variables associated with the controller.

还示出了站点状态窗口552以提供与判优(例如,数据中心成本)、性能和可靠性有关的数据。在图形判优元件下,用户可访问各种成本信息,包括最大指定成本、目标成本和与每个数据中心的使用相关的当前成本。另外,在图形判优元件下,用户可响应于成本值的变化而规定触发和动作(在图2D中称为“事件”)。例如,用户可规定,如果成本值上升到超过特定阈值,则应当发生迁移。A site status window 552 is also shown to provide data related to arbitration (eg, data center costs), performance, and reliability. Under the graphical arbitration element, users can access a variety of cost information, including maximum specified costs, target costs, and current costs associated with the usage of each data center. Additionally, under the graphical arbitration element, the user can specify triggers and actions (referred to as "events" in Figure 2D) in response to changes in cost values. For example, a user may specify that migration should occur if the cost value rises above a certain threshold.

在图形性能元件下,用户可查看当前性能测量值,包括网络性能、CPU性能和存储性能。用户还可响应于性能值的变化而规定触发和动作。例如,用户可规定,如果任何特定变量的性能下降到低于规定阈值,则数据中心应当迁移。Under the graphical performance element, users can view current performance measurements, including network performance, CPU performance, and storage performance. A user may also specify triggers and actions in response to changes in performance values. For example, a user may specify that if the performance of any particular variable drops below a specified threshold, the data center should be relocated.

在图形故障管理元件下方,用户可访问各种故障/可靠性数据,包括不同类型的系统报警(例如,严重报警、主要报警、次要报警等)。再一次地,用户可响应于可靠性的变化而规定触发和动作。例如,用户可规定,如果严重报警或主要报警的数量上升到高于规定阈值,则数据中心应当迁移。Below the graphical fault management element, the user can access various fault/reliability data, including different types of system alarms (eg, major, major, minor, etc.). Again, the user can specify triggers and actions in response to changes in reliability. For example, a user may specify that if the number of critical or major alarms rises above a specified threshold, the data center should be relocated.

在一个实施例中,图5C中所示的管理GUI提供以下功能/特征:In one embodiment, the management GUI shown in Figure 5C provides the following functions/features:

分布式数据中心在它们相应的地理位置内应当可见;Distributed data centers should be visible within their respective geographic locations;

活动项目示出正在提供服务的那个IaaS服务提供商;The active item shows which IaaS service provider is providing the service;

限定应当投影虚拟数据中心的策略的能力,包括基于位置、成本、时间、性能、SLA、层级、复制的策略;Ability to define policies that should project virtual data centers, including policies based on location, cost, time, performance, SLA, tier, replication;

可供选择的数据中心(被监控站点)应当对终端用户可见;Alternative data centers (monitored sites) should be visible to end users;

清楚地看到存在问题(包括性能问题、成本问题和可用性问题(例如,IaaS提供商,其正就其资产提供有限的时间,可能具有倒计时计时器))之处的能力;The ability to clearly see where there is a problem, including performance issues, cost issues, and availability issues (for example, an IaaS provider, which is offering a limited amount of time on its assets, may have a countdown timer);

提前计划移动,并且可能监控资源在目的地位置保持可用的能力;Plan moves in advance and possibly monitor the ability of resources to remain available at the destination location;

清楚地看到成本于不同数据中心实例内,以及成本于给定数据中心内(例如,可维持每小时报告机制以在月、季度或年结束时进行设施财务取证)之情况的能力;和/或Ability to clearly see costs within different data center instances and how costs are within a given data center (e.g. hourly reporting mechanisms can be maintained for facility financial forensics at the end of the month, quarter or year); and/ or

就数据中心移动配置策略的能力。这可包括需要手动干预的报警通知,和基于预先确定的维护窗口而调度迁移的能力(例如,如果判优事件发生,则在第二天早上2点移动)。一种特殊的情况可能是,如果现有的投影由于数据中心内的故障而逝去,则立即移动。The ability to configure policies for data center mobility. This may include alert notifications requiring manual intervention, and the ability to schedule migrations based on pre-determined maintenance windows (eg, move at 2am the next morning if an arbitration event occurs). A special case might be to move immediately if an existing projection dies due to a failure within the data center.

图5D更详细地示出了在窗口551内示出的分层虚拟控制器布置。如所提及的,用户可仅通过选择并拖动表示虚拟控制器560至599中的每一者的图形元件而设计虚拟数据中心。在图5D所示的具体拓扑中,网关560与数据中心A相关联,网关561与数据中心B相关联。网络路由器563、防火墙562和WAN加速器564依逻辑直接定位在网关560下,而另一个网络路由器582、防火墙583和WAN加速器581在分层布置中直接定位在网关561下。如图所示,使两个WAN加速器564和581通信地耦接的专用WAN互连器可用于确保两个数据中心之间的冗余和/或失效备援。在一个实施例中,如下所讨论的,WAN互连器可用于简化迁移过程(即,在将虚拟数据中心迁移到新的物理数据中心时)。Figure 5D shows the hierarchical virtual controller arrangement shown within window 551 in more detail. As mentioned, a user can design a virtual data center simply by selecting and dragging the graphical elements representing each of the virtual controllers 560-599. In the specific topology shown in FIG. 5D , gateway 560 is associated with data center A, and gateway 561 is associated with data center B. Network router 563, firewall 562 and WAN accelerator 564 are logically located directly under gateway 560, while another network router 582, firewall 583 and WAN accelerator 581 are located directly under gateway 561 in a hierarchical arrangement. As shown, a dedicated WAN interconnect communicatively coupling the two WAN accelerators 564 and 581 may be used to ensure redundancy and/or failover between the two data centers. In one embodiment, as discussed below, the WAN interconnect can be used to simplify the migration process (ie, when migrating a virtual data center to a new physical data center).

第一组网络交换机565至567依逻辑定位在数据中心A的网络路由器563的下面,而第二组网络交换机584至586依逻辑定位在数据中心B的网络路由器582的下面。交换机565将一组Apache服务器耦接到本地网络,该本地网络由负载平衡器568、一组工作负载/VM单元569至571(用于执行处理任务)和文件系统572组成。交换机566将第二组工作负载/VM单元573至576耦接起来以实现高速缓冲存储子系统(“Memcache”),而交换机567将另一组工作负载/VM单元577至579和对象存储器580耦接起来以实现数据库。The first set of network switches 565-567 are logically located under the network router 563 in data center A, and the second set of network switches 584-586 are logically located under the network router 582 in data center B. A switch 565 couples a set of Apache servers to a local network consisting of a load balancer 568 , a set of workload/VM units 569 to 571 (for performing processing tasks) and a file system 572 . Switch 566 couples a second set of workload/VM units 573-576 to implement a cache memory subsystem (“Memcache”), while switch 567 couples another set of workload/VM units 577-579 to object memory 580. Connect to implement the database.

在图5D所示的示例中,镜像反射的一组组件被配置在数据中心B中。例如,交换机584将一组Apache服务器耦接到本地网络,该本地网络由负载平衡器587、一组工作负载/VM单元588至590(用于执行处理任务)和文件系统591组成。交换机585将第二组工作负载/VM单元592至595耦合起来以实现高速缓冲存储子系统(“Memcache”),交换机586将另一组工作负载/VM单元596至598和对象存储器599耦接起来以实现数据库。In the example shown in FIG. 5D , a mirrored set of components is configured in data center B. In the example shown in FIG. For example, a switch 584 couples a set of Apache servers to a local network consisting of a load balancer 587 , a set of workload/VM units 588 to 590 (for performing processing tasks), and a file system 591 . Switch 585 couples a second set of workload/VM units 592-595 to implement a cache memory subsystem ("Memcache"), and switch 586 couples another set of workload/VM units 596-598 and object memory 599 to implement the database.

在一个实施例中,可仅通过在所示分层架构内点击和拖动虚拟控制器,而添加额外的数据中心元件,诸如处理资源、网络资源和存储资源。例如,可将额外的工作负载/VM控制器添加在每个相应的交换机下以提升处理能力。类似地,可将额外的交换机添加在路由器563、582下,以将新的子系统添加到数据中心拓扑。In one embodiment, additional data center elements, such as processing resources, network resources, and storage resources, can be added simply by clicking and dragging virtual controllers within the illustrated hierarchical architecture. For example, additional workload/VM controllers can be added under each respective switch to increase processing power. Similarly, additional switches can be added under the routers 563, 582 to add new subsystems to the data center topology.

在以下描述的实施例的一些中,文件系统572和591为分布式文件系统,其具有内置的在两个数据中心之间跨越WAN互连(例如,如Hadoop)维持同步的能力。In some of the embodiments described below, file systems 572 and 591 are distributed file systems with a built-in ability to maintain synchronization between two data centers across a WAN interconnect (eg, as Hadoop).

作为使用了图5D所示架构的特定示例,网络服务可由通过负载平衡装置568、587而保持负载平衡的Apache服务器组来提供。这些可处于单个子网络内。Memcache服务器可形成第二子网络以维持它们相应的数据库的主动缓存。数据库服务器组577至579、596至598各自从共用数据存储器580、599操作。As a specific example using the architecture shown in FIG. 5D , web services may be provided by groups of Apache servers that are load balanced by load balancing means 568 , 587 . These can be within a single subnetwork. Memcache servers may form a second sub-network to maintain active caches of their respective databases. Groups of database servers 577-579, 596-598 each operate from a common data store 580,599.

在操作中,当URL请求通过网关560、561进入数据中心时,URL请求由防火墙562、583筛选,并且随后转发到负载平衡器568、587,所述负载平衡器将所述请求重导向到Apache服务器之一。在这种情况下,服务器的数量可在重负载条件下自动增加。例如,可限定服务器的范围,并且触发器可用于使那些服务器池扩展和收缩。这里的独特之处在于,所示架构是实际的逻辑数据中心,其与任何给定的云提供商服务正交,从而使其在本质上是轻便的。In operation, when a URL request enters the data center through the gateway 560, 561, the URL request is screened by the firewall 562, 583 and then forwarded to the load balancer 568, 587, which redirects the request to Apache one of the servers. In this case, the number of servers can be increased automatically under heavy load conditions. For example, servers can be scoped, and triggers can be used to expand and contract those server pools. What is unique here is that the architecture shown is an actual logical data center that is orthogonal to any given cloud provider service, making it lightweight in nature.

回到上个示例,一旦URL进行了处理,活动Apache服务器就会向Memcache服务器转发请求。如果在Memcache中存在页面重写标志位(例如,数据过期),那么在一个实施例中,Memcache将对过期数据立即作出响应(例如,在200ms内),而不是等待数秒进行刷新。当事件发生时,Memcache将触发来自下一组服务器的数据库查询。这样做时,当终端用户在其浏览器上点击刷新时,他们通常获得最新数据。换言之,将它留给终端用户来重新请求数据将给予Memcache必要的时间来“幕后”更新。Going back to the previous example, once the URL is processed, the active Apache server forwards the request to the Memcache server. If there is a page rewrite flag in Memcache (eg, data expires), then in one embodiment, Memcache will respond immediately (eg, within 200ms) to expired data instead of waiting for several seconds to refresh. When an event occurs, Memcache will trigger a database query from the next set of servers. When doing this, end users typically get the latest data when they hit refresh on their browser. In other words, leaving it up to the end user to re-request the data will give Memcache the necessary time to update "behind the scenes".

图6示出了在虚拟化和投影逻辑221的一个实施例中用于将虚拟数据中心投影到云提供商的各个层。具体地讲,抽象的虚拟数据中心表示601可使用图5A至图5D所示的GUI和/或经由第三方用户界面602(例如,使用第三方所设计的GUI)来构建。在一个实施例中,来自抽象GUI层601的每个对象(例如,图5D所示的图形对象560至599)映射到虚拟装置控制器层603内的一个特定控制器。每个虚拟装置控制器包括虚拟数据结构,该虚拟数据结构包括实现硬件基础部分(例如,路由器、交换机、网关等)所需的数据,以及能够访问数据的接口。例如,所述接口可使用代表性状态转移(REST)或任何其他接口模型来实现。FIG. 6 illustrates the various layers used in one embodiment of the virtualization and projection logic 221 to project a virtual data center to a cloud provider. Specifically, the abstract virtual data center representation 601 may be constructed using the GUIs shown in FIGS. 5A-5D and/or via a third-party user interface 602 (eg, using a GUI designed by a third party). In one embodiment, each object from abstract GUI layer 601 (eg, graphical objects 560 through 599 shown in FIG. 5D ) maps to a specific controller within virtual device controller layer 603 . Each virtual device controller includes a virtual data structure that includes the data needed to implement hardware infrastructure (eg, routers, switches, gateways, etc.), and interfaces that enable access to the data. For example, the interface may be implemented using Representational State Transfer (REST) or any other interface model.

所得的一组虚拟装置控制器603可经由云中介层(cloud mediation layer)604而映射到所投影数据中心605内的对应的物理装置,所述云中介层可使用云API(例如,JClouds)来实现。在一个实施例中,提供单独的“插件”模块来将虚拟装置控制器表示映射和/或转化成能够在由云提供商所提供的资源上实现的格式。因此,在图6中,插件A用于将虚拟数据中心表示映射和/或转化到云提供商A,插件B可用于将虚拟数据中心表示转化和投影到云提供商B。因此,当新的数据中心向中介210注册其服务时,并不需要修改基础虚拟数据中心表示。相反,仅需要新的插件来将现有的虚拟数据中心映射和/或转化到新的物理数据中心。这些插件可在云提供商驻地内(例如,在云提供商LAN上)和/或CAPS 100处的服务器上实现。The resulting set of virtual device controllers 603 can be mapped to corresponding physical devices within the projected data center 605 via a cloud mediation layer 604, which can use cloud APIs (e.g., JClouds) to accomplish. In one embodiment, a separate "plug-in" module is provided to map and/or translate the virtual appliance controller representation into a format that can be implemented on resources provided by the cloud provider. Thus, in FIG. 6 , plugin A is used to map and/or translate the virtual data center representation to cloud provider A, and plugin B can be used to translate and project the virtual data center representation to cloud provider B. Therefore, when a new data center registers its services with the broker 210, the underlying virtual data center representation does not need to be modified. Instead, new plug-ins are only required to map and/or convert existing virtual data centers to new physical data centers. These plug-ins can be implemented within the cloud provider premises (eg, on the cloud provider LAN) and/or on servers at the CAPS 100 .

图7示出了与全局中介210的一个实施例相关的其他细节。如上所述,全局中介210包括数据中心数据库211,所述数据中心数据库包含与每个提供商有关的数据,包括但不限于资源数据(例如,指定可用的处理平台、网络平台、存储平台的类型)、性能数据(例如,基于与处理任务或网络通信任务相关的延迟来测量)、成本(例如,以美元/天或其他使用单位表示)、地理数据(例如,指示地理位置)和可靠性数据(例如,基于特定时间段内的重要报警的平均数量)。FIG. 7 shows additional details related to one embodiment of the global broker 210 . As noted above, the global broker 210 includes a data center database 211 that contains data related to each provider, including but not limited to resource data (e.g., specifying the types of processing platforms, network platforms, storage platforms available) ), performance data (e.g., measured based on latency associated with processing tasks or network communication tasks), cost (e.g., expressed in dollars per day or other unit of use), geographic data (e.g., indicating geographic location), and reliability data (eg, based on the average number of critical alarms over a certain time period).

在一个实施例中,暴露多个应用编程接口(API),以提供对数据中心数据库211的访问,所述应用编程接口包括云提供商接口701、云用户接口702、配置接口703和管理接口704。在一个实施例中,每个接口均包括一组命令,用于在数据库上执行操作(例如,创建记录、删除记录、修改记录等)。云提供商能够经由云提供商接口701访问数据中心数据库211,云用户能够经由云用户接口702访问该数据中心数据库,数据库配置经由配置接口703进行,而管理操作经由管理接口704提供。另外,提供有消息总线705,其允许所有云用户保持对可用资源进行最新查看(例如,通过向云用户收听的队列(下文将论述)提供数据中心结果)。In one embodiment, multiple application programming interfaces (APIs) are exposed to provide access to the data center database 211, including a cloud provider interface 701, a cloud user interface 702, a configuration interface 703, and a management interface 704 . In one embodiment, each interface includes a set of commands for performing operations on the database (eg, create records, delete records, modify records, etc.). The cloud provider can access the data center database 211 via the cloud provider interface 701 , the cloud subscriber can access the data center database via the cloud user interface 702 , database configuration is done via the configuration interface 703 , and management operations are provided via the management interface 704 . In addition, a message bus 705 is provided that allows all cloud users to maintain an up-to-date view of available resources (eg, by providing data center results to a queue (discussed below) that cloud users listen to).

在一个实施例中,管理接口704被CAPS 100用来进行为了系统持续执行所需的任何和所有整理操作功能。可由管理接口支持的功能包括执行以下行为的能力:In one embodiment, the management interface 704 is used by the CAPS 100 to perform any and all grooming functions required for the continued performance of the system. Functionality that may be supported by the management interface includes the ability to:

查看并修改与活跃买家和卖家有关的数据;View and modify data related to active buyers and sellers;

提供限制买家和卖家进行访问的访问控制列表(ACL);Provide access control lists (ACLs) that restrict access for buyers and sellers;

监控消息总线705的通量;monitoring the throughput of the message bus 705;

使其他计算元件和存储元件启动或关闭,以处理不同的负载;Enable or disable other computing elements and storage elements to handle different loads;

管理基于SaaS的数据中心管理器客户端;Manage SaaS-based Data Center Manager clients;

进入低级命令行调试和诊断工具;Access to low-level command-line debugging and diagnostic tools;

关闭系统并准备移至新的数据中心;Shut down the system and prepare to move to a new data center;

查看系统的所有运行实例,包括在多个数据中心中运行的那些;View all running instances of the system, including those running in multiple data centers;

管理失效备援解决方案;和/或manage failover solutions; and/or

出于调试目的静态管理客户。Clients are statically managed for debugging purposes.

在一个实施例中,配置接口703允许CAPS 100提供对数据中心数据库211的更新(例如,为审查后的数据中心和/或合作伙伴数据中心增加新条目,并移除不再在服务中或不再需要的数据中心)。在非合作伙伴类别(例如,未主动意识到CAPS 100利用了其资源的IaaS提供商)中,当发生变化时,由CAPS 100决定是否提供对数据中心数据库211的更新。In one embodiment, configuration interface 703 allows CAPS 100 to provide updates to data center database 211 (e.g., adding new entries for vetted data centers and/or partner data centers, and removing data center as needed). In the non-partner category (eg, an IaaS provider that is not actively aware that CAPS 100 is utilizing its resources), it is up to CAPS 100 to provide updates to data center database 211 when changes occur.

在一个实施例中,使配置技术如数据中心“区域”(亚马逊所用)对于云用户而言不透明。例如,可简单地将区域识别为不同的数据中心。因此,可在一云提供商(例如,亚马逊)的一区域中使用一个虚拟数据中心,且可在一不同的云提供商(例如,Rackspace)中使用一个虚拟数据中心。这种情况的必然结果是,云用户可指定他们希望有单一提供商和不同的站点/区域(例如,使用表明某些站点的亲和性的亲和性规则)。In one embodiment, provisioning techniques such as data center "zones" (as used by Amazon) are made opaque to cloud users. For example, regions can simply be identified as different data centers. Thus, one virtual data center may be used in one region of one cloud provider (eg, Amazon) and one virtual data center may be used in a different cloud provider (eg, Rackspace). A corollary of this is that cloud subscribers can specify that they want a single provider and different sites/regions (eg, using affinity rules indicating the affinity of certain sites).

在一个实施例中,配置接口703所包含的功能包括执行以下行为的能力:In one embodiment, the functionality included in configuration interface 703 includes the ability to:

添加/删除/查看IaaS数据中心(卖家)记录;Add/delete/view IaaS data center (seller) records;

更新静态/动态卖家记录;Update static/dynamic seller records;

强制向买家推送记录;Force push records to buyers;

创建新买家并且任选地创建相关的SaaS基础设施(使用Siaras模板);和/或Create a new buyer and optionally create the associated SaaS infrastructure (using the Siaras template); and/or

查看与注册买家和卖家有关的统计报表。View statistical reports related to registered buyers and sellers.

在一个实施例中,云提供商接口701对想要发布可用服务细节的云提供商开放。API可连接到SaaS门户网站以便手动进入和打开,从用于M2M与自动化系统的集成。此接口的功能可包括添加/删除/查看/更新云提供商记录的能力。In one embodiment, the cloud provider interface 701 is open to cloud providers who want to publish details of available services. APIs can be connected to SaaS portals for manual entry and opening, from M2M integration with automation systems. Functionality of this interface may include the ability to add/delete/view/update cloud provider records.

在一个实施例中,云用户管理接口704对运行被管理的虚拟数据中心的云用户开放。这些系统可在云本身中运行(作为SaaS),也可作为企业应用程序。此接口的目的是为被管理的虚拟数据中心提供方法,来报告虚拟数据中心的当前执行经历。可将该接口实施为一种封闭系统,所述封闭系统只有通过由CAPS 100提供给云用户的管理软件才能被激活(即,客户不能直接访问该接口)。在一个实施例中,云用户接口中所包含的功能包括执行以下行为的能力:In one embodiment, cloud subscriber management interface 704 is exposed to cloud subscribers running managed virtual data centers. These systems can run in the cloud itself (as SaaS) or as enterprise applications. The purpose of this interface is to provide methods for managed virtual data centers to report on the current execution history of the virtual data center. The interface can be implemented as a closed system that can only be activated through management software provided by CAPS 100 to the cloud subscriber (ie, the interface cannot be directly accessed by customers). In one embodiment, the functionality included in the cloud user interface includes the ability to:

报告所观察到的虚拟数据中心性能的更新情况;Report updates on observed virtual data center performance;

报告特定服务提供商所观察到的任何运行中断;Report any disruptions observed by a particular service provider;

报告任何故障以在虚拟数据中心内进行配置(例如,中介系统之间不相容或缺乏所报告的功能或可用的资源);和/或report any failures to configure within the virtual data center (for example, incompatibility between intermediary systems or lack of reported functionality or available resources); and/or

提供客户满意度报告方法和故障报告机制。Provide customer satisfaction reporting methods and fault reporting mechanisms.

在一个实施例中,全局中介负责为云用户进行DNS条目重新定向。这样,可立即对数据中心的迁移进行更新。另外,全局中介210的一个实施例被设计成支持扩展。具体地讲,任何需要多个客户端的接口均支持向外扩展架构。In one embodiment, a global intermediary is responsible for DNS entry redirection for cloud users. This way, data center migrations can be updated immediately. Additionally, one embodiment of the global broker 210 is designed to support extensions. Specifically, any interface that requires multiple clients supports a scale-out architecture.

如上所述,虚拟化和投影组件221可通过将虚拟化表示转化为实现物理数据中心(即插件,其将抽象数据转换为数据中心的物理资源可使用的格式)所需的格式,或通过直接在云提供商上执行虚拟数据中心,来将虚拟数据中心投影在物理数据中心上。As described above, the virtualization and projection component 221 can be implemented by converting the virtualized representation into the format required to implement the physical data center (ie, a plug-in that converts the abstract data into a format usable by the physical resources of the data center), or by directly Implement a virtual data center on the cloud provider to project the virtual data center onto the physical data center.

图8示出了后一种情况,其利用完全虚拟化的实施方式,实施方式包括虚拟数据中心覆盖800,所述虚拟数据中心覆盖在通用云提供商830提供的多个虚拟机821-826上运行。因此,此实施例包括完全重新虚拟化的云层,其中可将虚拟数据中心800的每个组件801-806投影到任何云提供商(从最通用的云提供商到最复杂的云提供商)上。在图8所示的特定示例中,每个组件在通用云提供商830暴露的不同VM上运行。具体地讲,虚拟网关801在VM821上运行。三个不同的内核VM 802、804、805(包含虚拟内核)分别在VM 822、824、825上运行。如图所示,操作系统或其他软件图像811、812和813可分别在内核VM 802、804、805的上面执行。虚拟交换机803在VM 823上运行,而虚拟文件系统806在VM 826上运行。Figure 8 illustrates the latter case, utilizing a fully virtualized implementation comprising a virtual data center overlay 800 over a number of virtual machines 821-826 provided by a common cloud provider 830 run. Thus, this embodiment includes a fully re-virtualized cloud layer where each component 801-806 of the virtual data center 800 can be projected onto any cloud provider (from the most general to the most complex) . In the particular example shown in FIG. 8 , each component runs on a different VM exposed by a generic cloud provider 830 . Specifically, virtual gateway 801 runs on VM821. Three different kernel VMs 802, 804, 805 (including virtual kernels) run on VMs 822, 824, 825 respectively. As shown, operating system or other software images 811, 812, and 813 may execute on top of kernel VMs 802, 804, 805, respectively. Virtual switch 803 runs on VM 823 and virtual file system 806 runs on VM 826 .

如图8所示,形成虚拟数据中心800的虚拟组件801-806中的每一者均可使用第2层隧道协议(L2TP)隧道、安全套接层(SSL)隧道或另一种安全进程间协议来通信,从而在组件之间创建安全隧道。另外,如图所示,虚拟网关801以可通信方式将其他组件802-806经由VM821提供的公共IP接口耦接到公共网络。As shown in FIG. 8, each of the virtual components 801-806 forming the virtual data center 800 may use Layer 2 Tunneling Protocol (L2TP) tunneling, Secure Sockets Layer (SSL) tunneling, or another secure inter-process protocol to communicate, creating a secure tunnel between components. Additionally, as shown, virtual gateway 801 communicatively couples other components 802-806 to a public network via a public IP interface provided by VM 821.

使用虚拟数据中心覆盖有多种好处。首先,由于不需要进行任何转化,因此可将虚拟数据中心覆盖无缝地部署在能够提供一致VM的任何物理数据中心上。可在数据中心服务的各个级层上施加更均匀的SLA和安全分布。另外,可提供实际数据中心的更大控制和可见性,从而随时间推移以更均匀的方式提供。例如,每个实体(例如,vGateway、KVM、vSwitch、vFileSystem等)可包括代理,以连续测量性能和成本。There are several benefits to using a virtual data center overlay. First, since no translation is required, virtual data center overlays can be seamlessly deployed on any physical data center that can provide consistent VMs. A more even distribution of SLAs and security can be imposed across all tiers of data center services. Additionally, greater control and visibility of the actual data center may be provided, and thus in a more uniform manner over time. For example, each entity (eg, vGateway, KVM, vSwitch, vFileSystem, etc.) may include an agent to continuously measure performance and cost.

如上所述,在本发明的一个实施例中实现的文件系统510、572、591为分布式文件系统,其具有在两个(或更多个)数据中心之间通过WAN互连维持同步的内置能力。图9示出了一个此类实施例,所述实施例包括在云提供商900上利用文件系统920的第一虚拟数据中心910和在云提供商901上利用相关文件系统930的第二虚拟数据中心911。文件系统920和930中的每一者均包括分布式文件系统引擎923和933,所述分布式文件系统引擎分别用于使文件系统920的本地部分921与文件系统930的远程部分932同步,并且用于使文件系统930的本地部分931与文件系统920的远程部分922同步。实现同步之后,对文件系统920的本地部分921作出任何改变都在文件系统930的远程部分932中自动反映出来,并且对文件系统930的本地部分931作出任何改变都在文件系统920的远程部分922中自动反映出来。在一个实施例中,文件系统的“本地”组件921、931是由相应的虚拟数据中心910、911本地创建、编辑和/或以其他方式访问的那些组件。相比之下,“远程”组件是由不同虚拟数据中心910、911创建、编辑和/或以其他方式访问的那些组件。As noted above, the file systems 510, 572, 591 implemented in one embodiment of the present invention are distributed file systems with built-in features for maintaining synchronization between two (or more) data centers interconnected by a WAN. ability. Figure 9 shows one such embodiment comprising a first virtual data center 910 utilizing a file system 920 on a cloud provider 900 and a second virtual data center utilizing an associated file system 930 on a cloud provider 901 Center 911. Each of the file systems 920 and 930 includes a distributed file system engine 923 and 933, respectively, for synchronizing the local portion 921 of the file system 920 with the remote portion 932 of the file system 930, and Used to synchronize the local part 931 of the file system 930 with the remote part 922 of the file system 920 . After synchronization is achieved, any changes made to the local portion 921 of the file system 920 are automatically reflected in the remote portion 932 of the file system 930, and any changes made to the local portion 931 of the file system 930 are automatically reflected in the remote portion 922 of the file system 920. automatically reflected. In one embodiment, "local" components 921 , 931 of a file system are those components that are created, edited, and/or otherwise accessed locally by the corresponding virtual datacenter 910 , 911 . In contrast, "remote" components are those components that are created, edited, and/or otherwise accessed by a different virtual datacenter 910, 911.

在一个实施例中,分布式文件系统引擎923、933为Hadoop分布式文件系统(HDFS)引擎,并且本地部分和远程部分实现为Hadoop节点。HDFS是一种分布式可扩展的便携式文件系统,其在多个机器上存储大文件并且通过跨多个主机复制数据而实现可靠性。因此,Hadoop实例在主机上不需要RSID存储。数据节点可互相交谈,以使数据重新平衡、移动副本并且维持高复制的数据。在图9所示的实施方式中,Hadoop协议可用于使文件系统920、930各自的本地部分921和931与远程部分932和922同步。然而,应当注意,本发明的基本原理不限于任何具体的分布式文件系统协议。In one embodiment, the distributed file system engine 923, 933 is a Hadoop distributed file system (HDFS) engine, and the local part and the remote part are implemented as Hadoop nodes. HDFS is a distributed scalable portable file system that stores large files on multiple machines and achieves reliability by replicating data across multiple hosts. Therefore, Hadoop instances do not require RSID storage on the host. Data nodes can talk to each other to rebalance data, move replicas, and maintain highly replicated data. In the embodiment shown in FIG. 9, the Hadoop protocol may be used to synchronize the local portions 921 and 931 of the file systems 920, 930 with the remote portions 932 and 922, respectively. It should be noted, however, that the underlying principles of the invention are not limited to any particular distributed file system protocol.

在本发明的一个实施例中,分布式文件系统(例如上面描述的)用于简化数据中心迁移过程。例如,如图10所示,如果用户选择从云提供商900迁移到新云提供商902,那么一旦完成新的投影(例如,使用本文所述的虚拟数据中心技术),就可使用分布式文件系统943的协议来填充虚拟数据中心912的基础文件系统940。例如,在图10中,可从云提供商901的现有文件系统930的远程部分932填充文件系统940的本地部分941。类似地,可从云提供商901的现有文件系统930的本地部分931填充文件系统940的远程部分942。在一个实施例中,在将云提供商902上线之前,不需要完全填充文件系统940的本地部分941和远程部分942的全部内容。相反,可在运行期间(在将虚拟数据中心912上线之后)创建并填充本地分布式文件系统节点941和远程分布式文件系统节点942。当在本地节点941或远程节点942处接收到数据请求(本地不可得)时,可分别从远程节点932或931取回该数据,从而在运行期间填充本地节点941和远程节点942。因此,可使虚拟数据中心912在云提供商902上比在先前实施方式中(其中,提前需要文件系统940的所有数据)更有效地启动。In one embodiment of the invention, a distributed file system (such as that described above) is used to simplify the data center migration process. For example, as shown in Figure 10, if a user chooses to migrate from cloud provider 900 to a new cloud provider 902, then once the new projection is complete (e.g., using the virtual data center techniques described herein), the distributed file system 943 to populate the underlying file system 940 of the virtual data center 912. For example, in FIG. 10 , local portion 941 of file system 940 may be populated from remote portion 932 of existing file system 930 of cloud provider 901 . Similarly, remote portion 942 of file system 940 may be populated from local portion 931 of existing file system 930 of cloud provider 901 . In one embodiment, the entire contents of the local portion 941 and the remote portion 942 of the file system 940 need not be fully populated prior to bringing the cloud provider 902 online. Instead, local distributed file system nodes 941 and remote distributed file system nodes 942 may be created and populated during runtime (after virtual data center 912 is brought online). When a request for data (not locally available) is received at local node 941 or remote node 942, the data can be retrieved from remote node 932 or 931 respectively, thereby populating local node 941 and remote node 942 during runtime. Thus, virtual data center 912 can be enabled to start up more efficiently on cloud provider 902 than in previous implementations (where all data of file system 940 was required ahead of time).

图11A示出了另一个实施例,所述实施例包括云提供商1100正在运行虚拟数据中心1110,所述虚拟数据中心耦接到分布式文件系统引擎1130管理的文件系统1120(如先前实施例中的那样)。在此实施例中,影子存储系统1101用于存储虚拟数据中心文件系统1120的影子副本1121。以通信方式耦接到虚拟数据中心的分布式文件系统引擎1130的分布式文件系统引擎1131被配置为维持文件系统1120的同步影子副本1121。在一个实施例中,当对本地文件系统1120作出改变时,分布式文件系统引擎1130-1131进行协调以在影子文件系统1121中反映那些改变。此实施例的不同之处在于影子存储器1101本身不是可由终端用户访问的数据中心。相反,该影子存储器仅用于影子存储。FIG. 11A shows another embodiment that includes a cloud provider 1100 running a virtual data center 1110 coupled to a file system 1120 managed by a distributed file system engine 1130 (as in the previous embodiment). as in). In this embodiment, the shadow storage system 1101 is used to store the shadow copy 1121 of the virtual data center file system 1120 . The distributed file system engine 1131 communicatively coupled to the distributed file system engine 1130 of the virtual data center is configured to maintain a synchronized shadow copy 1121 of the file system 1120 . In one embodiment, when changes are made to the local file system 1120, the distributed file system engines 1130-1131 coordinate to reflect those changes in the shadow file system 1121. The difference in this embodiment is that the shadow storage 1101 itself is not a data center accessible by end users. Instead, this shadow memory is only used for shadow storage.

在一个实施例中,影子存储系统1101用于简化数据中心迁移过程。例如,如图11B所示,如果用户选择从云提供商1100迁移到新云提供商1102,那么一旦完成新的投影(例如,使用本文所述的虚拟数据中心技术),就可使用分布式文件系统引擎1132的协议来填充虚拟数据中心1111的基础文件系统1122。例如,在图11B中,可从存储在影子存储系统1101上的文件系统1121的影子副本填充文件系统1122。In one embodiment, shadow storage system 1101 is used to simplify the data center migration process. For example, as shown in Figure 11B, if a user chooses to migrate from cloud provider 1100 to a new cloud provider 1102, then once the new projection is complete (e.g., using the virtual data center techniques described herein), the distributed file The protocol of the system engine 1132 to populate the underlying file system 1122 of the virtual data center 1111. For example, in FIG. 11B , file system 1122 may be populated from a shadow copy of file system 1121 stored on shadow storage system 1101 .

如上述实施例那样,在将云提供商1102上线之前,不需要完全将文件系统1121的全部内容填充到文件系统1122。相反,可在运行期间(在将虚拟数据中心1111上线后)创建并填充分布式文件系统节点1122。当在文件系统1122处接收到数据请求(本地不可得)时,可从影子文件系统1121取回该数据,从而在运行期间填充文件系统1122。因此,可使虚拟数据中心1111在云提供商1102上比在先前实施方式中更有效地启动。As in the above-described embodiments, the file system 1122 does not need to be completely populated with the entire content of the file system 1121 before the cloud provider 1102 is brought online. Instead, distributed file system nodes 1122 may be created and populated during runtime (after virtual data center 1111 is brought online). When a request for data (not locally available) is received at file system 1122, the data may be retrieved from shadow file system 1121, thereby populating file system 1122 during runtime. Thus, virtual data center 1111 can be enabled to be launched more efficiently on cloud provider 1102 than in previous implementations.

如图12A所示,在一个实施例中,云分析和投影服务1000可分别在不同的数据中心1200和1210处,使用其自身的网关装置1250和1251来实现。网关1250随后可用于在执行数据中心内迁移时在数据中心之间建立安全连接,如虚拟专用网络(VPN)连接。在一个实施例中,VPN连接包括购买的WAN加速器链接,诸如提供去重压缩算法(例如,Riverbed)的那些。As shown in FIG. 12A , in one embodiment, the cloud analysis and projection service 1000 can be implemented at different data centers 1200 and 1210 using their own gateway devices 1250 and 1251 , respectively. Gateway 1250 can then be used to establish a secure connection, such as a virtual private network (VPN) connection, between data centers when performing intra-data center migrations. In one embodiment, the VPN connection includes a purchased WAN accelerator link, such as those that provide deduplication compression algorithms (eg, Riverbed).

在数据中心1200中示出了两个租户:具有虚拟数据中心1230和文件系统1220的租户1201,以及具有虚拟数据中心1231和文件系统1221的租户1202。具有虚拟数据中心1232和文件系统1222的另一租户1203位于数据中心1210内。如本文所用,“租户”是注册了本文所述的虚拟数据中心服务的云用户。在所示示例中,专用VPN连接用于将租户1201的虚拟数据中心1230从数据中心1200迁移到数据中心1210。在这种情况下,由于VPN连接(由CAPS100购买)是数据中心之间的专用链接,因此不会给租户1201带来有关数据中心迁移的额外成本。Two tenants are shown in data center 1200 : tenant 1201 with virtual data center 1230 and file system 1220 , and tenant 1202 with virtual data center 1231 and file system 1221 . Another tenant 1203 with virtual data center 1232 and file system 1222 is located in data center 1210 . As used herein, a "tenant" is a cloud user who has signed up for the virtual data center services described herein. In the example shown, a dedicated VPN connection is used to migrate virtual data center 1230 of tenant 1201 from data center 1200 to data center 1210 . In this case, since the VPN connection (purchased by CAPS 100) is a dedicated link between data centers, there will be no additional cost to tenant 1201 regarding data center migration.

如图12B所示,在一个实施例中,除了在云提供商A-C中的每一者处提供本地网关装置1300-1302之外,云分析和投影服务1000可构建/购买网络结构(例如,专用网络基础设施/骨干网路等),所述网络结构包括另外的网关/路由器装置1310-1313,用于支持各个提供商之间的高速安全互连。As shown in Figure 12B, in one embodiment, in addition to providing local gateway devices 1300-1302 at each of the cloud providers A-C, the cloud analysis and projection service 1000 may build/purchase network structures (e.g., dedicated network infrastructure/backbone, etc.), the network structure includes additional gateway/router devices 1310-1313 for supporting high-speed secure interconnection between the various providers.

在一个实施例中,云分析和投影服务1000维持诸如图12C所示的提供商连接表1290,以确定在任何两个云提供商的数据中心之间是否存在专用的高速连接。在图12C所示的具体示例中,提供商1-3均经由专用网络基础设施(例如,由CAPS 100维持/购买)进行互连,而云提供商4和5不存在任何此类的连接。在一个实施例中,云分析和投影服务1000和/或选择引擎220-222可在给出数据中心推荐或选择时咨询表1290。例如,如果数据中心3和5具有类似的成本、性能和可靠性特征,但数据中心3经由专用的高速连接耦接到当前数据中心,那么选择引擎可优先于数据中心5推荐迁移到数据中心3。In one embodiment, the cloud analysis and projection service 1000 maintains a provider connection table 1290 such as that shown in FIG. 12C to determine whether a dedicated high-speed connection exists between any two cloud providers' data centers. In the specific example shown in FIG. 12C , providers 1-3 are all interconnected via a dedicated network infrastructure (eg, maintained/purchased by CAPS 100 ), while cloud providers 4 and 5 do not have any such connections. In one embodiment, cloud analysis and projection service 1000 and/or selection engines 220-222 may consult table 1290 when making a data center recommendation or selection. For example, if data centers 3 and 5 have similar cost, performance, and reliability characteristics, but data center 3 is coupled to the current data center via a dedicated high-speed connection, the selection engine may recommend migration to data center 3 over data center 5 .

如上所述,可利用来自云提供商的反馈来动态更新全局中介210,所述反馈可包括成本、性能和/或可靠性更新。图13A示出了一个实施例,其中性能和/或可靠性更新由在特定租户的虚拟数据中心1301内执行的代理1320-1321动态提供。在此具体实施例中,将代理1320-1321分别插入正在虚拟数据中心1301的资源上执行的每个工作负载1310-1311中。代理1320-1321监控相应的工作负载1310-1311的执行情况并且收集性能数据。例如,代理1320-1321可测量工作负载1310-1311完成执行程序代码所需的时间,并且/或者可检查虚拟数据中心内的其他组件(例如,文件系统1325)并测量从每个组件接收响应所用的时间。随后此信息可经由网关1330返回报告给全局中介210,并且用于计算云提供商1300的归一化性能测量值。As noted above, the global broker 210 can be dynamically updated with feedback from the cloud provider, which can include cost, performance, and/or reliability updates. Figure 13A illustrates an embodiment where performance and/or reliability updates are dynamically provided by agents 1320-1321 executing within a tenant-specific virtual datacenter 1301. In this particular embodiment, an agent 1320-1321 is inserted into each of the workloads 1310-1311 being executed on the resources of the virtual data center 1301, respectively. Agents 1320-1321 monitor the execution of corresponding workloads 1310-1311 and collect performance data. For example, agents 1320-1321 may measure the time it takes for workloads 1310-1311 to complete executing program code, and/or may examine other components within the virtual data center (e.g., file system 1325) and measure the time it takes to receive a response from each component. time. This information can then be reported back to the global intermediary 210 via the gateway 1330 and used to calculate a normalized performance measure for the cloud provider 1300 .

图13B示出了另一个实施例,其中单独的数据收集工作负载1360与虚拟数据中心1301内的其他工作负载1350-1352并行执行,以收集性能数据和/或可靠性数据。数据收集工作负载1360可检查其他工作负载1350-1352和其他数据中心组件(诸如,文件系统1353)并测量接收响应所用的时间量(时间较长表示性能相对较低)。数据收集工作负载1360还可计算执行其本身的程序代码所需的时间量(例如,在程序代码中插入标签或执行其他程序跟踪技术)。由于所述数据收集工作负载在云提供商1300的资源上作为另一个工作负载执行,因此与其本身执行相关的性能表示其他工作负载1350-1352的性能。数据收集工作负载随后将性能结果经由网关1330反馈回全局中介210。Figure 13B illustrates another embodiment in which a single data collection workload 1360 executes in parallel with other workloads 1350-1352 within the virtual data center 1301 to collect performance data and/or reliability data. Data collection workload 1360 may check other workloads 1350-1352 and other data center components (such as file system 1353) and measure the amount of time it takes to receive a response (a longer time indicates relatively lower performance). Data collection workload 1360 may also calculate the amount of time required to execute its own program code (eg, insert tags in the program code or perform other program tracing techniques). Since the data collection workload executes as another workload on the resources of the cloud provider 1300, the performance relative to its own execution is indicative of the performance of the other workloads 1350-1352. The data collection workload then feeds performance results back to the global broker 210 via the gateway 1330 .

在另一个实施例中,网关1330本身可从工作负载1350-1352收集性能数据(例如,如上所述检查工作负载),并将所得数据反馈回全局中介210。In another embodiment, gateway 1330 may itself collect performance data from workloads 1350 - 1352 (eg, inspect workloads as described above), and feed the resulting data back to global broker 210 .

在图13A至图13B所示的两个实施例中,代理1320-1321或数据收集工作负载1360还可监控虚拟数据中心的可靠性。例如,如果在规定时间后没有接收到针对检查的响应,则可确定正被测量的组件不可用。随后可经由网关1330将此可靠性信息传输到全局中介210。In both embodiments shown in Figures 13A-13B, the agents 1320-1321 or the data collection workload 1360 can also monitor the reliability of the virtual data center. For example, if no response to the inspection is received after a specified time, it may be determined that the component being measured is not available. This reliability information may then be transmitted to the global broker 210 via the gateway 1330 .

如上所述,在一个实施例中,CAPS 100架构可用作在线市场,用于购买和销售可使用CAPS 100架构构建的数据中心服务。此外,市场不限于由云用户购买和由实际云提供商销售。而是,在一个实施例中,任何用户或实体均可在开放市场中购买和销售数据中心服务。因此,一特定云提供商可从另一个云提供商(包括如下所讨论的虚拟提供商)购买数据中心服务,从而满足需求。反之,云用户可向另一个云用户或向另一个云提供商销售数据中心服务。例如,一特定云提供商可在预计使用数据中心服务的前几个月出售该数据中心服务(例如,六月份出售将在十二月份/一月份使用的数据中心)。通过使用由CAPS 100提供的开放市场,另一用户或云提供商可购买这些服务并且随后再销售这些服务(例如,盈利或亏损,具体取决于该服务在十二月份/一月份时的市场价格)。这样,CAPS 100就建立了数据中心服务的期货市场。As noted above, in one embodiment, the CAPS 100 architecture can be used as an online marketplace for buying and selling data center services that can be built using the CAPS 100 architecture. Also, the market is not limited to buying by cloud users and selling by actual cloud providers. Rather, in one embodiment, any user or entity can buy and sell data center services in the open marketplace. Accordingly, a particular cloud provider may purchase data center services from another cloud provider (including virtual providers as discussed below) to meet demand. Conversely, a cloud subscriber can sell data center services to another cloud subscriber or to another cloud provider. For example, a particular cloud provider may sell data center services months in advance of expected usage of the data centers (eg, June sells data centers that will be used in December/January). Using the open market provided by CAPS 100, another user or cloud provider can buy these services and then resell them (e.g., for a profit or loss, depending on the market price of the service in December/January ). In this way, CAPS 100 establishes a futures market for data center services.

图14示出了如何将全局中介210和数据中心数据库211配置为能够实现此类在线市场。如前所述,数据中心数据库211包含向CAPS 100注册的云提供商各自的最新记录,所述记录包括资源数据、性能数据、成本数据、地理位置数据、可靠性数据和可能与云用户有关的任何其他数据。记录1401与亚马逊网络服务(AWS)的所有当前信息相关并且包括所述所有当前信息。相比之下,记录1402表示已针对某个规定时间段以特定价格购买了AWS数据中心服务的用户(或另一个云提供商)(识别为虚拟AWS(vAWS)数据库记录)。回到上述示例,此用户可能已提前几个月从AWS购买了十二月份/一月份的数据中心服务,但不打算使用这些数据中心服务(或也许出于仅使用一部分的意图而进行了购买,或在购买一段时间后意识到他/她将不需要全部所购买的服务)。在一个实施例中,已购买数据中心服务的未来(或当前)权限的用户可在全局中介210的数据中心数据库211内注册这些服务的可用性。然后全局中介210可响应于从各种选择引擎220-222生成的数据库查询而包括这些服务。如果这些服务的成本低于当前市场价(所有其他因素相同),那么选择引擎220-222将推荐/选择这些服务,这些服务优于以当前市场价提供的那些服务(假定卖家以较低价格购得,那么这可使卖家获利)。Figure 14 shows how the global broker 210 and data center database 211 can be configured to enable such an online marketplace. As previously stated, the data center database 211 contains the latest records of each of the cloud providers registered with the CAPS 100, including resource data, performance data, cost data, geographic location data, reliability data, and possibly cloud user-related any other data. Record 1401 is related to and includes all current information for Amazon Web Services (AWS). In contrast, record 1402 represents a user (or another cloud provider) (identified as a virtual AWS (vAWS) database record) that has purchased AWS data center services at a specific price for a specified time period. Going back to the above example, this user may have purchased December/January data center services from AWS several months in advance, but did not intend to use them (or perhaps purchased with the intention of only using some of them , or realize after a period of purchase that he/she will not need all of the services purchased). In one embodiment, users who have purchased future (or current) entitlements to data center services may register the availability of these services within the data center database 211 of the global broker 210 . The global broker 210 may then include these services in response to database queries generated from the various selection engines 220-222. If the cost of these services is lower than the current market price (all other factors being equal), then the selection engine 220-222 will recommend/select these services over those offered at the current market price (assuming the seller buys at the lower price) , then this can benefit the seller).

图14示出了与选择引擎与全局中介210之间的通信相关的其他细节。具体地讲,可将查询参数1405从选择引擎220-222中的每一者发送到数据库查询引擎1400,所述数据库查询引擎随后使用这些参数来查询数据中心数据库211。例如,选择引擎220可能对位于纽约和日本的数据中心感兴趣;选择引擎221可能对位于加利福尼亚的数据中心感兴趣;而选择引擎222可能对位于欧洲的数据中心感兴趣。作为响应,数据库查询引擎可执行一个查询(或一系列查询),并从数据库211获取所有满足规定标准的数据中心。在一个实施例中,结果是上述“候选”数据中心(即,满足某个最低初始标准的数据中心;在该情况下,是基于地理位置的数据中心)。FIG. 14 shows further details related to the communication between the selection engine and the global broker 210 . In particular, query parameters 1405 may be sent from each of the selection engines 220-222 to the database query engine 1400, which then queries the data center database 211 using these parameters. For example, selection engine 220 may be interested in data centers located in New York and Japan; selection engine 221 may be interested in data centers located in California; and selection engine 222 may be interested in data centers located in Europe. In response, the database query engine may execute a query (or series of queries) and retrieve from the database 211 all data centers that meet the specified criteria. In one embodiment, the result is a "candidate" data center as described above (ie, a data center that meets some minimum initial criteria; in this case, a data center based on geographic location).

在一个实施例中,数据库查询引擎1400的结果被提供为队列1410的条目,并且选择引擎中的每一者对队列1410的条目进行读取/过滤。在一个实施例中,实施了生产者/消费者架构,其中数据库查询引擎1400用作生产者(将新条目写进队列),选择引擎220-222用作队列的消费者(有时也称为队列的“收听者”)。回到上述示例,选择引擎220将仅从与在纽约和日本的数据中心相关的队列1410中检索那些条目;选择引擎221将仅从与加利福尼亚的数据中心相关的队列1410中检索那些条目;而选择引擎222将仅从与欧洲的数据中心相关的队列1410中检索那些条目。各个选择引擎220-222随后可执行如上所述的过滤/权重操作,以进一步过滤候选数据中心,从而获得对云用户有利的推荐或选择(例如,基于成本、性能、可靠性等进行过滤)。尽管在图14中未明确示出,但每个选择引擎可在队列上生成查询,以仅检索与其搜索有关的那些条目(例如,对于选择引擎220来说,为纽约和日本)。In one embodiment, the results of the database query engines 1400 are provided as entries of the queue 1410 and the entries of the queue 1410 are read/filtered by each of the selection engines. In one embodiment, a producer/consumer architecture is implemented in which the database query engine 1400 acts as a producer (writing new entries to a queue) and the selection engines 220-222 act as consumers of the queue (also sometimes referred to as a queue "listeners"). Going back to the above example, the selection engine 220 will only retrieve those entries from the queue 1410 associated with the data centers in New York and Japan; the selection engine 221 will only retrieve those entries from the queue 1410 associated with the data center in California; The engine 222 will only retrieve those entries from the queue 1410 associated with data centers in Europe. The respective selection engines 220-222 may then perform filtering/weighting operations as described above to further filter candidate data centers for recommendations or selections beneficial to cloud users (eg, based on cost, performance, reliability, etc.). Although not explicitly shown in FIG. 14, each selection engine may generate queries on the queue to retrieve only those entries relevant to its search (eg, for selection engine 220, New York and Japan).

本发明的实施例可包括上文陈述的各种步骤。这些步骤可体现为使通用处理器或专用处理器执行某些步骤的机器可执行指令。或者,这些步骤可由包含用于执行这些步骤的硬连线逻辑的特定硬件组件执行,或由编程的计算机组件和定制硬件组件的任何组合执行。Embodiments of the invention may include the various steps set forth above. These steps may be embodied as machine-executable instructions that cause a general-purpose processor or a special-purpose processor to perform certain steps. Alternatively, the steps may be performed by specific hardware components containing hard-wired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.

本发明的元件还可被提供为用于存储机器可执行程序代码的机器可读介质。机器可读介质可包括但不限于软盘、光盘、CD-ROM和磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡,或者适合于存储电子程序代码的其他类型的介质/机器可读介质。Elements of the present invention may also be provided as a machine-readable medium for storing machine-executable program code. Machine-readable media may include, but are not limited to, floppy disks, optical disks, CD-ROM and magneto-optical disks, ROM, RAM, EPROM, EEPROM, magnetic or optical cards, or other types of media/machine-readable media suitable for storing electronic program code .

在整个前述描述中,出于解释的目的,陈述了许多特定细节以便透彻理解本发明。然而,对于本领域的技术人员来说显而易见的是,可在没有这些特定细节中的一些的情况下实施本发明。例如,对于本领域的技术人员来说显而易见的是,本文所述的功能模块和方法可被实施为软件、硬件或它们的任何组合。此外,虽然本文在移动计算环境的情形下描述本发明的一些实施例,但本发明的基本原理不限于移动计算实施方式。实际上,在一些实施例中,可使用任何类型的客户端或对等数据处理装置,包括(例如)台式计算机或工作站计算机。因此,应依据以下所附权利要求书判定本发明的范围和精神。Throughout the foregoing description, for purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. For example, it is obvious to those skilled in the art that the functional modules and methods described herein can be implemented as software, hardware or any combination thereof. Furthermore, although some embodiments of the invention are described herein in the context of a mobile computing environment, the underlying principles of the invention are not limited to mobile computing implementations. Indeed, in some embodiments any type of client or peer data processing device may be used, including, for example, desktop or workstation computers. Accordingly, the scope and spirit of the invention should be judged from the following appended claims.

Claims (6)

1.一种设备,包括:1. A device comprising: 用于管理数据中心信息的中介组件,所述中介组件接收包含所述数据中心信息的更新并对查询作出响应以提供所述数据中心信息;a mediation component for managing data center information, the mediation component receiving updates containing the data center information and responding to queries to provide the data center information; 选择引擎,所述选择引擎基于从所述中介组件读取的数据中心信息而为云用户执行数据中心选择和/或推荐,其中所述数据中心选择和/或推荐基于终端用户所规定的数据中心要求和/或偏好而作出;以及a selection engine that performs data center selection and/or recommendation for a cloud user based on data center information read from the mediation component, wherein the data center selection and/or recommendation is based on a data center specified by an end user requests and/or preferences; and 投影组件,一旦从所述选择引擎所作出的所述选择和/或推荐中选择数据中心,所述投影组件与所选择的数据中心进行交互并且传输数据以代表用户配置所述数据中心。A projection component, upon selecting a data center from the selections and/or recommendations made by the selection engine, the projection component interacts with the selected data center and transmits data to configure the data center on behalf of the user. 2.一种用于选择数据中心的方法,包括:2. A method for selecting a data center comprising: 生成对与数据中心有关的信息的查询,所述查询指向包含数据中心信息的数据存储;generating a query for information related to the data center, the query pointing to a data store containing the data center information; 使用所述查询在所述数据存储中执行查找以生成一组候选数据中心;performing a lookup in the data store using the query to generate a set of candidate data centers; 基于由所述云用户所规定的要求来为云用户对所述候选数据中心中的一者或多者优先排序,所述要求包括指示出数据中心使用的成本阈值的成本要求、包括性能阈值的性能要求和/或包括可靠性阈值的可靠性要求;以及One or more of the candidate data centers are prioritized for the cloud subscriber based on requirements specified by the cloud subscriber, including cost requirements indicating cost thresholds for data center usage, including performance thresholds performance requirements and/or reliability requirements including reliability thresholds; and 基于所述优先排序为所述云用户选择所述数据中心之一。One of the data centers is selected for the cloud subscriber based on the prioritization. 3.一种虚拟数据中心设备,包括:3. A virtual data center device, comprising: 虚拟数据中心层,所述虚拟数据中心层包括多个虚拟装置控制器和定义所述虚拟装置控制器之间关系的数据;a virtual data center layer comprising a plurality of virtual appliance controllers and data defining relationships between the virtual appliance controllers; 其中每个所述虚拟装置控制器表示物理数据中心资源及其相关配置,组合起来的多个虚拟装置控制器形成虚拟数据中心;Each of the virtual device controllers represents physical data center resources and related configurations, and multiple virtual device controllers combined form a virtual data center; 云中介层,所述云中介层响应于将所述虚拟数据层投影到物理数据中心的命令而将所述多个虚拟装置控制器映射到物理数据中心上的相关数据中心资源。a cloud interposer that maps the plurality of virtual appliance controllers to relevant data center resources on the physical data center in response to a command to project the virtual data layer to the physical data center. 4.一种设备,包括:4. A device comprising: 图形用户界面(GUI),所述图形用户界面包括能由终端用户选择和编辑的多个对象;a graphical user interface (GUI) comprising a plurality of objects selectable and editable by an end user; 虚拟装置控制器层,所述虚拟装置控制器层包括多个虚拟装置控制器,每个虚拟装置控制器表示物理数据中心资源及其相关配置,组合起来的所述多个虚拟装置控制器形成虚拟数据中心;A virtual device controller layer, the virtual device controller layer includes a plurality of virtual device controllers, each virtual device controller represents a physical data center resource and its related configuration, and the combined virtual device controllers form a virtual data center; 其中所述GUI的多个所述对象的每一者表示并映射至虚拟装置控制器层内的特定虚拟装置控制器;并且wherein each of a plurality of said objects of said GUI represents and maps to a particular virtual device controller within a virtual device controller layer; and 其中用户可通过选择与那些资源的所述虚拟装置控制器相关的所述对象而编辑数据中心资源和所述数据中心资源的相关配置。Wherein a user may edit data center resources and associated configurations of said data center resources by selecting said objects associated with said virtual appliance controllers of those resources. 5.一种用于迁移数据中心的设备,包括:5. A device for migrating data centers, comprising: 数据中心投影组件,所述数据中心投影组件引发和管理数据中心之间的迁移;a data center projection component that initiates and manages migration between data centers; 分布式文件系统引擎的在第一数据中心进行配置的第一实例和分布式文件系统引擎的在第二数据中心进行配置的第二实例,所述分布式文件系统引擎的所述第一实例和所述第二实例代表用户而在存储在所述第一数据中心和所述第二数据中心的文件之间保持同步;A first instance of a distributed file system engine configured at a first data center and a second instance of a distributed file system engine configured at a second data center, the first instance of the distributed file system engine and said second instance maintains synchronization between files stored at said first data center and said second data center on behalf of a user; 所述数据中心投影组件通过打开所述分布式文件系统引擎的位于第三数据中心上的第三实例导致从所述第二数据中心到第三数据中心的迁移,所述分布式文件系统的所述第三实例从所述第一数据中心和/或所述第二数据中心向所述第三数据中心填充文件,所述分布式文件系统允许所述数据中心投影组件在存储在所述第一数据中心和所述第二数据中心的全部文件均拷贝到所述第三数据中心之前使所述第二数据中心离线。The data center projection component causes migration from the second data center to a third data center by opening a third instance of the distributed file system engine on a third data center, all of the distributed file system The third example populates files from the first data center and/or the second data center to the third data center, and the distributed file system allows the data center projection component to be stored in the first data center All files of the data center and the second data center are copied to the third data center before the second data center is taken offline. 6.一种用于实现数据中心服务市场的设备,包括:6. An apparatus for enabling a market for data center services, comprising: 管理数据中心信息的中介组件,所述中介组件接收包含所述数据中心信息的更新并对查询作出响应以提供所述数据中心信息;a mediation component that manages data center information, the mediation component receiving updates containing the data center information and responding to queries to provide the data center information; 数据库,所述数据库可由所述中介组件访问,所述数据库存储所述数据中心信息,其中所述数据库中的每个记录包括物理数据中心提供商或虚拟数据中心提供商的数据,a database accessible by the mediation component, the database storing the data center information, wherein each record in the database includes data for a physical data center provider or a virtual data center provider, 物理数据中心提供商的每个记录,所述物理数据中心提供商的每个记录包括识别所述物理数据中心提供商的第一识别代码、规定由所述物理数据中心提供商所提供的资源的资源数据和规定与使用所述资源相关的成本的成本数据;以及each record of a physical data center provider, each record of the physical data center provider including a first identification code identifying the physical data center provider, specifying the resources provided by the physical data center provider resource data and cost data specifying the costs associated with using said resource; and 虚拟数据中心提供商的每个记录,所述虚拟数据中心提供商的每个记录包括识别已购买在规定持续时间内以指定成本使用物理数据中心提供商的资源的权利的用户的第二识别代码,所述记录进一步识别所述物理数据中心提供商和由所述物理数据中心提供商所提供的资源;以及each record of a virtual data center provider that includes a second identification code identifying a user who has purchased the right to use the physical data center provider's resources at a specified cost for a specified duration , the record further identifying the physical data center provider and the resources provided by the physical data center provider; and 选择引擎,所述选择引擎基于从能由所述中介组件访问的数据库中读取的包括所述物理数据中心记录和所述虚拟数据中心记录的数据中心记录为云用户执行数据中心选择和/或推荐,其中所述数据中心选择和/或推荐基于终端用户所规定的数据中心要求和/或偏好作出。a selection engine that performs data center selection and/or Recommendation, wherein the data center selection and/or recommendation is based on data center requirements and/or preferences specified by the end user.
CN201580012267.5A 2014-01-06 2015-01-05 Architecture and method for cloud provider selection and projection Pending CN106462444A (en)

Applications Claiming Priority (25)

Application Number Priority Date Filing Date Title
US201461924122P 2014-01-06 2014-01-06
US201461924133P 2014-01-06 2014-01-06
US201461924137P 2014-01-06 2014-01-06
US201461924128P 2014-01-06 2014-01-06
US201461924143P 2014-01-06 2014-01-06
US201461924125P 2014-01-06 2014-01-06
US61/924,128 2014-01-06
US61/924,137 2014-01-06
US61/924,122 2014-01-06
US61/924,125 2014-01-06
US61/924,143 2014-01-06
US61/924,133 2014-01-06
US14/588,613 US20150195347A1 (en) 2014-01-06 2015-01-02 Architecture and method for cloud provider selection and projection
US14/588,626 2015-01-02
US14/588,620 US20150195141A1 (en) 2014-01-06 2015-01-02 Apparatus and method for data center migration
US14/588,631 US20150193128A1 (en) 2014-01-06 2015-01-02 Virtual data center graphical user interface
US14/588,620 2015-01-02
US14/588,613 2015-01-02
US14/588,626 US20150193246A1 (en) 2014-01-06 2015-01-02 Apparatus and method for data center virtualization
US14/588,607 2015-01-02
US14/588,658 2015-01-02
US14/588,631 2015-01-02
US14/588,607 US20150193862A1 (en) 2014-01-06 2015-01-02 Architecture and method for implementing a marketplace for data center resources
US14/588,658 US20150193466A1 (en) 2014-01-06 2015-01-02 Architecture and method for cloud provider selection and projection
PCT/US2015/010193 WO2015103560A2 (en) 2014-01-06 2015-01-05 Architecture and method for cloud provider selection and projection

Publications (1)

Publication Number Publication Date
CN106462444A true CN106462444A (en) 2017-02-22

Family

ID=57394714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580012267.5A Pending CN106462444A (en) 2014-01-06 2015-01-05 Architecture and method for cloud provider selection and projection

Country Status (3)

Country Link
EP (1) EP3111326A4 (en)
JP (1) JP2017509046A (en)
CN (1) CN106462444A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106936642A (en) * 2017-03-27 2017-07-07 中国电力科学研究院 A kind of method and system for carrying out trust negotiation under complicated cloud environment
CN108491163A (en) * 2018-03-19 2018-09-04 腾讯科技(深圳)有限公司 A kind of big data processing method, device and storage medium
CN111787046A (en) * 2020-03-02 2020-10-16 北京沃东天骏信息技术有限公司 Data center routing method and apparatus

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6939433B2 (en) 2017-11-06 2021-09-22 富士通株式会社 Information processing equipment, information processing systems and programs
US10671495B2 (en) 2018-01-29 2020-06-02 Hewlett Packard Enterprise Development Lp Disaster recovery rehearsal of a workload

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212700A1 (en) * 2002-05-09 2003-11-13 International Business Machines Corporation Virtual controller with SCSI extended copy command
US20050120160A1 (en) * 2003-08-20 2005-06-02 Jerry Plouffe System and method for managing virtual servers
US20110016214A1 (en) * 2009-07-15 2011-01-20 Cluster Resources, Inc. System and method of brokering cloud computing resources
US20110055399A1 (en) * 2009-08-31 2011-03-03 Accenture Global Services Gmbh Provisioner within cloud console--defining images of an enterprise to be operable on different cloud computing providers
US20110252420A1 (en) * 2010-04-07 2011-10-13 Tung Teresa S Cloud reference model framework
US20120198073A1 (en) * 2011-01-27 2012-08-02 Computenext Inc. Dynamically organizing cloud computing resources to facilitate discovery
US20120290460A1 (en) * 2011-05-09 2012-11-15 Curry Jr Steven Lynn Composite Public Cloud, Method and System

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212700A1 (en) * 2002-05-09 2003-11-13 International Business Machines Corporation Virtual controller with SCSI extended copy command
US20050120160A1 (en) * 2003-08-20 2005-06-02 Jerry Plouffe System and method for managing virtual servers
US20110016214A1 (en) * 2009-07-15 2011-01-20 Cluster Resources, Inc. System and method of brokering cloud computing resources
US20110055399A1 (en) * 2009-08-31 2011-03-03 Accenture Global Services Gmbh Provisioner within cloud console--defining images of an enterprise to be operable on different cloud computing providers
US20110252420A1 (en) * 2010-04-07 2011-10-13 Tung Teresa S Cloud reference model framework
US20120198073A1 (en) * 2011-01-27 2012-08-02 Computenext Inc. Dynamically organizing cloud computing resources to facilitate discovery
US20120290460A1 (en) * 2011-05-09 2012-11-15 Curry Jr Steven Lynn Composite Public Cloud, Method and System

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106936642A (en) * 2017-03-27 2017-07-07 中国电力科学研究院 A kind of method and system for carrying out trust negotiation under complicated cloud environment
CN108491163A (en) * 2018-03-19 2018-09-04 腾讯科技(深圳)有限公司 A kind of big data processing method, device and storage medium
CN111787046A (en) * 2020-03-02 2020-10-16 北京沃东天骏信息技术有限公司 Data center routing method and apparatus
CN111787046B (en) * 2020-03-02 2022-09-30 北京沃东天骏信息技术有限公司 Data center routing method and device

Also Published As

Publication number Publication date
EP3111326A2 (en) 2017-01-04
EP3111326A4 (en) 2018-03-21
JP2017509046A (en) 2017-03-30

Similar Documents

Publication Publication Date Title
US20150195347A1 (en) Architecture and method for cloud provider selection and projection
US12069128B2 (en) Automatic scaling of resource instance groups within compute clusters
US20160198003A1 (en) Architecture and method for sharing dedicated public cloud connectivity
US20160197835A1 (en) Architecture and method for virtualization of cloud networking components
US20160197834A1 (en) Architecture and method for traffic engineering between diverse cloud providers
US20150193466A1 (en) Architecture and method for cloud provider selection and projection
US20150193246A1 (en) Apparatus and method for data center virtualization
US11593180B2 (en) Cluster selection for workload deployment
US10768955B1 (en) Executing commands within virtual machine instances
US10771351B2 (en) Fast provisioning service for cloud computing
US10042628B2 (en) Automated upgrade system for a service-based distributed computer system
US20150195141A1 (en) Apparatus and method for data center migration
CN105027108B (en) Instance host configuration
CN112384895A (en) Function portability for implementing a service hub using function checkpoints
Krishnan et al. Google compute engine
WO2016109845A1 (en) Architecture and method for traffic engineering between diverse cloud providers
CN106462444A (en) Architecture and method for cloud provider selection and projection
US20150193862A1 (en) Architecture and method for implementing a marketplace for data center resources
US20150193128A1 (en) Virtual data center graphical user interface
WO2015103560A2 (en) Architecture and method for cloud provider selection and projection
US12413522B2 (en) Method and system for optimizing internal network traffic in Kubernetes
US12299505B2 (en) Decentralized framework for providing application programming interface gateways
US11062323B2 (en) Managing component ownership information across a corresponding life cycle
Banditwattanawong The survey of infrastructure-as-a-service taxonomies from consumer perspective

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170222