首页> 中国专利> 管理用于共享资源的承诺的请求速率

管理用于共享资源的承诺的请求速率

摘要

可以在共享资源环境中为客户动态地调整对各种资源的承诺。客户可以按被承诺的每秒输入/输出操作次数(IOPS)的速率提供数据卷,并仅为该承诺(加任何超额)例如以及所请求的存储量付费。客户可以在此后通过提交适当的请求来调整被承诺的IOPS速率,或者可以基于多个条件中的任一个来自动地调整该速率。可以将客户的数据卷迁移、分割或组合以便提供调整的速率。客户与数据卷的交互无需改变,除了处理请求的速率外,其与速率的调整或数据卷的改变无关。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-04

    授权

    授权

  • 2013-02-13

    实质审查的生效 IPC(主分类):G06Q10/00 申请日:20110329

    实质审查的生效

  • 2012-12-26

    公开

    公开

说明书

相关申请的交叉引用

本专利申请要求2010年3月29日提交的美国专利申请号为 12/749,451的申请和2010年3月29日提交的美国专利申请号为 12/749,449的申请的权益,这两个申请的内容通过引用并入本文。

背景技术

随着如因特网的网络上有数量日益增加的应用和服务可用,数量 日益增加的内容、应用和/或服务提供商致力于发展如远程资源共享 云计算的技术。一般来说,云计算是通过服务(如Web服务)提供 对电子资源的访问的一种途径,其中用于支持这些服务的硬件和/或 软件可动态地伸缩以在任何给定时间满足服务的需求。用户或客户通 常将租借、租用或以其他方式付费来通过云访问资源,并且因此无需 购买和维护用于提供对这些资源的访问的硬件和/或软件。

在一些环境中,多个用户可以共享如数据存储库的资源,其中 例如,这些用户可以同时发送要由同一数据实例执行的多个读和/或 写请求。但是,当同时请求的数量超过处理这些请求的实例的能力时, 可能出现问题。在一个示例中,实例的数据服务器可能进入过载状况, 并且开始对进入请求施加反压以便降低进入请求的速率,并使系统能 够从过载状况恢复。但是,由于推迟,客户可能无法接收到期望或必 要的请求处理速率(例如,满足或以其他方式处理接收的请求),这 可能使客户沮丧,并且在一些情况下,导致客户寻找其他提供商,以 便获取数据存储和类似的资源。某些常规方法尝试在例如特定客户超 过某种使用阈值时限制请求,但是这些方法往往是反应式的且仍可能 导致资源的其他客户体验到速度减慢以及过载状况。此外,常规方法 未向客户提供容易地调整各种资源的速率或分配的能力。

附图简介

下文将参考附图描述根据本发明公开的多种实施例,其中:

图1图示其中能够实现各种实施例的环境;

图2图示能够根据各种实施例使用的管理和主机组件的示范分 隔;

图3图示能够根据各种实施例使用的多个客户的示范分配;

图4图示能够根据各种实施例使用的多个资源实例之间的示范 分配;

图5图示能够根据各种实施例使用的多个客户在单个资源实例 上的示范分配;

图6图示能够根据各种实施例使用的使用多个资源实例以获得 增加的客户承诺的示范分配;

图7图示根据一个实施例用于获取保证的服务级别的示范过程;

图8图示能够根据各种实施例使用的使用多个资源实例以获得 增加的客户承诺的示范分配;

图9图示能够根据各种实施例使用的用于获得增加的客户承诺 的示范分配,其包括迁移数据卷和在多个资源实例之间分割;

图10图示根据一个实施例组合客户的数据卷的示范分配;

图11图示能够利用各种实施例的功能的示范环境。

具体实施方式

根据本发明公开的各种实施例的系统和方法可以克服常规方法 中体验的前文所述和其他缺点中的一个或多个缺点以管理电子环境 中资源共享和分配的多个方面。例如,各种实施例使得用户能够针对 特定资源请求特定的服务质量或处理级别,如每秒输入/输出操作次 数(IOPS)的最小和/或承诺的速率。请求的量可以是任何适合的量, 其可以小于相应资源提供的总量,从而提供比常规方法下所能达到的 更精细的粒度。可以对多个客户指定单个资源,如数据服务器,其中 每个客户潜在地接收保证的服务级别。在各种实施例中,请求单个可 用资源无法提供的速率承诺的客户能够让承诺分散在多个资源或资 源实例上。每个资源能够具有可接受的保证级别(例如,速率承诺), 其可以是该资源上可提供的总量的百分比或部分、可用的全部量或在 一些情况中大于总量。因为客户往往将不会使用整个承诺的量(例如 IOPS的保证速率),所以某些资源能够拥有高于100%可用容量的资 源承诺。此外,还能够向其他客户提供对这些资源的使用。如果资源 的小于全部可用容量的容量被承诺来保证服务级别,则其余客户能够 共享未承诺的容量。当获保证的客户之一正在使用小于保证的量时, 其他客户能够利用此未使用的容量,直到如被保证的客户请求要使用 该容量的时间为止。此类方法提高了对未被承诺的客户的服务质量, 同时降低了提供保证的服务级别的成本。

在某些实施例中,客户能够以与客户的特定性能要求匹配的精细 粒度的方式提供资源。例如,如果客户具有需要300IOPS的数据库, 则该客户可以以300IOPS的被承诺速率来提供数据卷,且仅为该承 诺以及所请求的存储量付费。对于该数据卷,该客户将能够完成在某 个时间段上至少平均300IOPS。如果该客户提出平均500IOPS的请 求,则系统没有压力时该卷仍可以随着时间的流逝完成每秒500次; 但是系统即使处于压力下时仍将随着时间的流逝交付至少被承诺的 300的速率。

在常规系统中,需要某个IOPS速率的客户通常不得不获取适合 数量的物理磁盘并为这些磁盘上的存储量付费。对于典型的工作负荷 而言,客户则不得不多购买可观的存储以获得期望的IOPS速率。使 用各种实施例的方法,客户能够以常规系统下不可能实现的粒度级别 获取对共享存储解决方案的被保证的服务质量。较之购买或租用专用 硬件,更精细的粒度能为客户节省可观的成本。

根据各种实施例的系统和方法还能够自动地(利用由至少一个计 算设备执行的算法和/或适合的逻辑)迁移数据卷、调整资源承诺以 及处理其他的与请求速率承诺或其他服务质量级别相关的那样的任 务。在一些实施例中,客户可能请求承诺级别的变更,或者系统或服 务可能确定要执行承诺级别的变更。根据各种实施例,能够确定各种 资源的容量,并且能够自动地调整对客户的承诺,而无需客户调整或 更改任何参数、应用等以便实施此变更。根据各种实施例,可以至少 部分地根据被承诺的速率或速率的变化来迁移、分割、组合或以其他 方式操控数据卷。可以从控制面来管理变更,例如,通过在数据面中 执行适当的调用。

根据各种实施例的系统和方法可实现对诸如数据存储的资源的 管理访问。在至少一些实施例中,这些方法包括提供块数据存储服务, 该块数据存储服务使用多个服务器存储系统来可靠地存储可被各种 用户、应用、进程和/或服务中的任何一个通过一个或多个网络来访 问和使用的块数据。每个块数据存储服务的用户可以创建均具有指定 量的块数据存储空间的一个或多个块数据存储卷,并且可以开始通过 一个或多个执行程序使用此类块数据存储卷(本文也称为“卷”), 其中至少有一些此类卷具有由多个服务器存储系统中的两个或两个 以上存储的副本,以便增强对于执行程序的卷的可靠性和可用性。作 为一个示例,存储块数据的多个服务器块数据存储系统在一些实施例 中可以被组织成一个或多个池或其他组,其中每个具有共处一地理位 置处(如共处于一个或多个地理分布的数据中心的每一个中)的多个 物理服务器存储系统,并且使用数据中心中的服务器块数据存储系统 上存储的卷的程序可以在该数据中心的一个或多个其他物理计算系 统上执行。

此外,在至少一些实施例中,通过一个或多个网络访问和使用一 个或多个此类非本地块数据存储卷的应用可以各具有关联的节点管 理器,该节点管理器管理程序对这些非本地卷的访问,如块数据存储 服务提供和/或与一个或多个块数据服务(BDS)系统管理器模块协 同运行的节点管理器模块。例如,作为块数据存储服务的客户的第一 用户可以创建第一块数据存储卷,并在一个或多个计算节点上执行被 指示(例如,以串行方式、以同时或其他叠加方式等)访问和使用该 第一卷的一个或多个程序副本。当在计算节点上执行的应用开始使用 非本地卷时,该应用可以安装或以其他方式配备对于该计算节点为本 地且表示该非本地卷的逻辑块数据存储设备,如允许该执行程序以与 连接到该计算节点的任何其他本地硬驱动器或其他物理块数据存储 设备相同的方式与该本地逻辑块数据存储设备交互(例如,来执行读 和写数据访问请求、在该卷上实现文件系统或数据库或其他更高级别 的数据结构等)。例如,在至少一些实施例中,可以通过适合的技术, 如GNBD(“全球网络块设备”)技术的使用以使代表性的逻辑本地 块数据存储设备可供执行程序使用。此外,当应用与该代表性本地逻 辑块数据存储设备交互时,关联的节点管理器可以通过一个或多个网 络与存储有关联的非本地卷的副本的至少一个服务器块数据存储系 统通信(例如,以对于执行程序和/或计算节点透明的方式)以便代 表执行程序对所存储的卷副本执行交互,从而管理这些交互。此外, 在至少一些实施例中,用于管理应用和服务对非本地块数据存储卷的 访问的所述技术的至少其中一些自动地由节点管理器模块的实施例 执行。

在至少一些实施例中,还可以将块数据存储卷(或这些卷的部分) 存储在与用于存储卷副本的服务器块数据存储系统相异的一个或多 个远程归档存储系统上。在各种实施例中,该一个或多个远程归档存 储系统可以由(例如,位于远离数据中心或具有共处一处的服务器块 数据存储系统池的其他地理位置的位置的)块数据存储服务来提供, 或可以由远程长期存储服务提供并由块数据存储来使用,并且在至少 一些实施例中,该归档存储系统可以采用块数据以外的格式存储数据 (例如,可以将卷的一个或多个数据片(chunk)或部分存储为相异 的对象)。

在一些实施例中,所描述的技术中至少一些代管理多个程序的执 行的程序执行服务而执行,而这些多个程序代程序执行服务的多个用 户而执行。在一些实施例中,程序执行服务可以具有多个共处一处的 物理主机计算系统的组,并且可以如在程序执行服务(“PES”)系 统管理器的控制下,在这些物理主机计算系统上执行用户的程序,正 如下文更详细论述的。在此类实施例中,也是块数据存储服务的用户 的程序执行服务的用户(例如,付费使用程序执行服务的程序执行服 务的客户)可以执行访问和使用块数据存储服务提供的非本地块数据 存储卷的程序。在其他实施例中,单个组织可以(例如,以集成的方 式,如单个服务的一部分)提供程序执行服务能力和块数据存储服务 能力二者其中至少一些,而在又一些其他实施例中,可以在不包含程 序执行服务(例如,在支持该组织的运行的公司或其他组织内部)的 环境中提供块数据存储服务。

此外,在各种实施例中,程序执行所在的主机计算系统可以具有 各种形式。多个此类主机计算系统可以例如共处于一物理位置(例如, 数据中心),并且可以由各与一个或多个主机计算系统的子集关联的 多个节点管理器模块来管理。主机计算系统的至少一些可以各包括足 够的计算资源(例如,易失性存储器、CPU周期或其他CPU使用率 测量、网络带宽、交换空间等)以同时执行多个程序,并且在至少一 些实施例中,计算系统的其中一些或全部可以各具有可用于存储要执 行的程序的本地副本和/或此类程序要使用的数据的一个或多个物理 上连接的本地块数据存储设备(例如,硬盘、磁带驱动器等)。此外, 在一些此类实施例中,主机计算系统的其中至少一些可以各寄存多个 虚拟机计算节点,这些虚拟机计算节点各可以代相异的用户执行一个 或多个程序,其中每个此类主机计算系统具有为该主机计算系统管理 虚拟机的执行超级监管器或其他虚拟机监视器。对于执行多个虚拟机 的主机计算系统,该主机计算系统的关联的节点管理器模块在一些实 施例中可以在多个寄存的虚拟机的至少其中之一上执行(例如,作为 主机计算系统的虚拟机监视器的一部分或与之协同),而在其他情况 中,节点管理器可以在与正在管理的一个或多个其他主机计算系统相 异的物理计算系统上执行。

在各种实施例中,存储卷的服务器块数据存储系统也可以具有各 种形式。在至少一些实施例中,服务器块数据存储系统的其中一些或 全部可以是与执行程序的主机计算系统相似的物理计算系统,并且在 一些此类实施例中,可以各执行服务器存储系统软件以协助在这些服 务器存储系统上提供和维护卷。例如,在至少一些实施例中,例如如 果通过多个交互服务器块数据存储计算系统以分布对等方式提供一 个或多个BDS系统管理器模块,则此类服务器块数据存储计算系统 的其中一个或多个可以执行BDS系统管理器的至少其中一部分。在 其他实施例中,例如,如果通过其他远程物理计算系统(例如,通过 在一个或多个其他计算系统上执行的BDS系统管理器模块)来执行 在这些服务器存储系统上提供和维护卷的至少其中一些工作,则服务 器块数据存储系统的其中至少一些可以是可以没有一些I/O组件和/ 或物理计算系统的其他组件的网络存储设备。此外,在一些实施例中, 至少一些服务器块数据存储系统各维护多个本地硬盘,且跨越在一些 或全部本地硬盘的其中每个的部分将至少一些卷分段。此外,可以使 用各种类型的技术来创建和使用卷,在一些实施例中包括使用LVM (“逻辑卷管理器”)技术。

在至少一些实施例中,一些或全部块数据存储卷各具有存储在两 个或更多个相异服务器块数据存储系统上的副本,以便增强这些卷的 可靠性和可用性。由此,单个服务器块数据存储系统的故障不会导致 执行程序对卷的访问丢失,因为这些执行程序对该卷的使用可以被切 换到具有该卷的副本的另一个可用服务器块数据存储系统。在此类实 施例中,可以采用各种方式在多个服务器块数据存储系统上的多个卷 副本之间保持一致性。例如,在一些实施例中,将服务器块数据存储 系统的其中之一指定为存储卷的主副本,并且在此类实施例中,将其 他一个或多个服务器块数据存储系统指定为存储该卷的镜像副本。具 有主卷副本的服务器块数据存储系统(也称为卷的“主服务器块数据 存储系统”)可以接收并处理对该卷的数据访问请求,并且在一些此 类实施例中,还可以采取措施保持其他镜像卷副本的一致性(例如, 在主卷副本中的数据被修改时,向提供镜像卷副本的其他服务器块数 据存储系统发送更新消息,如采用主从计算关系的方式)。可以使用 各种类型的卷一致性技术,下文将包含其附加的细节。

除了通过在服务器块数据存储系统变得不可用时移动或以其他 方式复制卷副本来保持执行程序对块数据存储卷的可靠且可用的访 问外,块数据存储服务还可以在其他情况中执行其他操作来保持执行 程序对块数据存储卷的访问。例如,如果第一执行程序意外地变得不 可用,则在一些实施例中,块数据存储服务和/或程序执行服务可以 采取措施以使不同的第二执行程序(例如,在不同主机计算系统上执 行的同一程序的第二副本)连接到不可用的第一程序使用的一些或全 部块数据存储卷,以便第二程序能够快速地接管不可用的第一程序的 至少一些操作。在一些情况中,第二程序可以是其执行因现有的第一 程序不可用而启动执行的新程序,而在其他一些情况中,第二程序可 以已经在执行(例如,如果多个程序副本在并发执行以分摊总工作负 荷,如接收按负荷平衡器调解的不同进入客户端请求的多个Web服 务器程序,其中多个程序副本的其中之一被选作第二程序;如果第二 程序是正在执行的程序的备用副本以便允许在不可用情况下从现有 第一程序“热”交换,如在现有第一程序的不可用发生之后,备用程 序副本才会被激活地使用;等等)。此外,在一些实施例中,现有卷 的连接和当前使用被切换到的第二程序可以位于与第一程序相同的 地理位置(例如,相同的数据中心)中的另一个主机物理计算系统上, 而在其他实施例中,第二程序可以位于不同的地理位置处(例如,不 同的数据中心,如与先前或同时移到该其他数据中心且将被该第二程 序使用的卷的副本一起)。此外,在一些实施例中,可以采取其他相 关措施以进一步促进向第二程序切换,如通过将原本目标为不可用的 第一程序的一些通信重定向到第二程序。

正如先前提到的,在至少一些实施例中,一些或所有块数据存储 卷各具有存储在位于一个地理位置处的两个或两个以上相异服务器 块数据存储系统上的副本(如在执行程序将通过定位在同一数据中心 或其他地理位置的所有卷的副本和执行程序来访问卷所在的同一个 数据中心中),可以保持多种期望的数据访问特征(例如,基于该数 据中心或其他地理位置处的一个或多个内部网络),如时延和吞吐量。 例如,在至少一些实施例中,所描述的技术可以提供对非本地块数据 存储的访问,其具有与本地物理块数据存储设备的访问特征相似或更 佳的访问特征,但是具有类似于或超过RAID(“独立(或低成本) 磁盘的冗余阵列”)系统和/或专用SAN(“存储区域网络”)的可 靠性特征的更大可靠性以及远远较低成本。在其他实施例中,代之可 以采用其他方式存储至少一些卷的主副本和镜像副本,如存储在不同 地理位置(例如,不同的数据中心),以便如即使整个数据中心变得 不可用的情况下仍进一步保持卷的可用性。在可以将卷副本存储在不 同地理位置处的实施例中,在一些情况中用户可能请求特定程序应在 特定卷附近(例如,在主卷副本所在的同一个数据中心处)执行,或 特定卷因位于特定执行程序附近,以便如为执行程序与主卷副本之间 的通信提供相对较高网络带宽和相对较低时延。

此外,在一些实施例中,可以基于费用或其他付费方式向至少一 些用户提供对所描述技术的一些或全部的访问。例如,用户可以支付 一次性费用、周期性(例如,月付)费用和/或一种或多种类型的基 于使用的费用以使用块数据存储服务来存储和访问卷、使用程序执行 服务来执行程序和/或使用(例如,由远程长期存储服务提供的)归 档存储系统来存储卷的长期备份或其他快照副本。费用可以基于一个 或多个因素和活动,如下列非排他性列表中指示的:基于卷的大小, 以便创建卷(例如,按一次性费用)、拥有卷的当前存储和/或使用 (例如月费)等;基于卷的非大小特征,如镜像副本的数量、存储主 卷副本和/或镜像卷副本的服务器块数据存储系统的特征(例如,数 据访问速率、存储大小等)和/或创建卷的方式(例如,为空的新卷、 作为现有卷的副本的新卷、作为快照卷副本的副本的新卷等);基于 快照卷副本的大小,如为了创建快照卷副本(例如,按一次性费用) 和/或拥有卷的当前存储(例如月费)等;基于一个或多个快照卷副 本的非大小特征,如单个卷的快照数量、快照副本相对于一个或多个 先有快照副本是否为增量等;基于卷的使用,如传送到卷和/或从卷 传送的数据的量(例如,来反映所使用的网络带宽的量)、发送到卷 的数据访问请求的数量、连接到并使用卷的执行程序的数量(无论是 顺序地还是并发地)等;基于传送到快照和/或从快照传送的数据的 量,如以与针对卷的方式相似的方式;等等。此外,在多种实施例中, 所提供的访问可以具有多种形式;如,一次性购买费用、当前租借费 用和/或基于另一种当前订费。此外,在至少一些实施例和情况中, 第一组一个或多个用户可以在收费的基础上向其他用户提供数据,如 为了向接收对第一组的一个或多个用户创建的当前卷和/或历史快照 卷副本的访问(例如,通过允许他们制作作为卷的副本和/或快照卷 副本的副本的新卷;通过允许他们使用一个或多个已创建的卷;等等) 的其他用户收费,无论是一次性购买费用、当前租借费用,还是基于 另一种当前订费。

在一些实施例中,可以由块数据存储服务、程序执行服务和/或 远程长期存储服务来提供一个或多个应用编程接口(API),如为了 允许其他程序通过编程方式启动要执行的各种类型的操作(例如,按 其他程序的用户所指令的)。此类操作可以允许调用先前描述的类型 的功能性的其中一些或全部,并且包括但不限于如下类型的操作:创 建、删除、连接、断开或描述卷;创建、删除、复制或描述快照;指 定卷和/或快照的访问权或其他元数据;管理程序的执行;提供付费 以获取其他类型的功能性;获取有关一个或多个服务的功能的使用和 /或有关为此使用支付或欠下的费用的报告和其他信息;等等。通过 API提供的操作可以被诸如程序执行服务的主机计算系统上的执行 程序和/或被块数据存储服务和/或程序执行服务使用的一个或多个地 理位置外部的客户和/或其他用户的计算系统调用。

图1图示根据多种实施例的示范网络配置100,其中多个计算系 统可工作以执行多种程序、应用和/或服务,并且还可工作以便如在 块数据存储服务和/或程序执行服务的控制下,访问可靠的非本地块 数据存储。具体来说,在此示例中,程序执行服务管理位于数据中心 102内的多种主机计算系统上的程序的执行,并且块数据存储服务使 用该数据中心处的多个其他服务器块数据存储系统以向这些执行程 序提供可靠的非本地块数据存储。还可以使用该数据中心外部的多个 远程归档存储系统来存储至少一些块数据存储卷的至少一些部分的 附加副本。

在本示例中,数据中心102包括多个机架104,在本示范实施例 中,每个机架包括多个主机计算设备106以及可选的机架支持计算系 统134。在本示例中,图示的机架104上的主机计算系统106各寄存 一个或多个虚拟机110,以及与主机计算系统上的虚拟机关联的用于 管理这些虚拟机的相异节点管理器模块108。在本示例中,一个或多 个其他主机计算系统116还可以各寄存一个或多个虚拟机110。每个 虚拟机110可以作为用于为用户(未示出,如程序执行服务的客户) 执行一个或多个程序副本(未示出)的独立计算节点。此外,本示例 数据中心102还包括不包括相异虚拟机但可各作为用于为用户执行 的一个或多个程序(未示出)的计算节点的附加主机计算系统114。 在本示例中,在与主机计算系统114和116相异的计算系统(未示出) 上执行的节点管理器模块112与这些主机计算系统关联,以便以如与 主机计算系统106的节点管理器模块108相似的方式来管理由这些主 机计算系统提供的计算节点。机架支持计算系统134可以为其机架 102本地的其他计算系统提供多种实用工具服务(例如,程序执行的 长期程序存储、计量和其他监视和/或机架本地的其他计算系统执行 的非本地块数据存储访问的长期程序存储、计量和其他监视等)以及 可能地向位于数据中心中的其他计算系统提供多种实用工具服务。每 个计算系统还可以具有一个或多个本地连接的存储设备(未示出), 如为了存储执行程序以及多种其他组件创建的或以其他方式使用的 程序和/或数据的本地副本。

在本示例中,还图示可选计算系统118,其执行程序执行服务的 PES系统管理器模块以协助管理位于数据中心内的主机计算系统提 供(或可选地在位于一个或多个其他数据中心128中的计算系统或该 数据中心外的其他远程计算系统132上)的计算节点上程序的执行。 正如其他地方更详细论述的,PES系统管理器模块除了管理程序的执 行外还可以提供多种服务,包括用户账户的管理(例如,创建、删除、 计费等);要执行的程序的注册、存储和分发;与程序执行相关的性 能和审计数据的收集和处理;为程序的执行从客户或其他用户获取付 费;等等。在一些实施例中,PES系统管理器模块可以与节点管理器 模块108和112协作以管理与这些节点管理器模块关联的计算节点上 的程序执行,而在其他实施例中,这些节点管理器模块可以不协助管 理程序的此类执行。

在本示例中,数据中心102还包括计算系统124,计算系统124 执行块数据存储服务的块数据存储(“BDS”)系统管理器模块以协 助管理非本地块数据存储对于在由位于数据中心内的主机计算系统 提供(或可选地在位于一个或多个其他数据中心128中的计算系统或 该数据中心外的其他远程计算系统132上)的计算节点上执行的程序 的可用性。具体来说,在本示例中,数据中心102包括多个服务器块 数据存储系统122的池,其中每个服务器块数据存储系统具有在存储 一个或多个卷副本120时使用的本地块存储。对卷副本120的访问通 过内部网络126向在多种计算节点110和114上执行的程序提供。正 如其他地方更详细论述的,BDS系统管理器模块可以提供与提供非 本地块数据存储功能性相关的多种服务,包括用户账户的管理(例如, 创建、删除、计费等);创建、使用和删除块数据存储卷和这些卷的 快照副本;与使用块数据存储卷和这些卷的快照副本相关的性能和审 计数据的收集和处理;从使用块数据存储卷和这些卷的快照副本的客 户或其他用户获取付费;等等。在一些实施例中,BDS系统管理器 模块可以与节点管理器模块协作以管理关联的计算节点上执行的程 序对卷的使用,而在其他实施例中,该节点管理器模块可以不用于管 理此类卷使用。此外,在其他实施例中,可以采用其他方式来构造一 个或多个BDS系统管理器模块,如具有单个数据中心执行的BDS系 统管理器的多个实例(例如,由位于数据中心内的主机计算系统提供 的计算节点上执行的程序分摊非本地块数据存储的管理),和/或如 使BDS系统管理器模块的至少一些功能性以分布式方式由服务器块 数据存储系统122的其中一些或全部上执行的软件来提供(例如,以 对等方式,计算系统124上无任何单独的集中式BDS系统管理器模 块)。

在本示例中,多种主机计算系统、服务器块数据存储系统和计算 系统经由数据中心的一个或多个内部网络126来互连,一个或多个内 部网络126包括未示出的多种联网设备(例如,路由器、交换机、网 关等)。此外,在本示例中,内部网络126连接到外部网络130(例 如,因特网或其他公共网络),并且数据中心102还可以在数据中心 与外部网络之间的互连中包括一个或多个可选设备(例如,网络代理、 负荷平衡器、网络地址解析设备等)。在本示例中,数据中心102经 由外部网络130连接到一个或多个其他数据中心128,一个或多个其 他数据中心128可以各包括结合数据中心102图示的计算系统和存储 系统的其中一些或全部以及该数据中心外部的其他远程计算系统 132。其他计算系统132可以由各方出于各种目的来运行,例如由数 据中心的运营商或第三方(例如程序执行服务和/或块数据存储服务 的客户)运行。此外,这些其他计算系统的其中一个或多个可以是归 档存储系统(例如,作为可远程网络访问的存储服务的部分),块数 据存储服务可以如在一个或多个其他计算系统上执行的或该数据中 心的一个或多个计算系统上执行的一个或多个归档管理器模块(未示 出)的控制下与该归档存储系统交互,正如其他地方更详细描述的。 此外,虽然此处未示出,但是在至少一些实施例中,服务器块数据存 储系统122的至少其中一些还可以与一个或多个其他网络或其他连 接介质互连,如服务器存储系统122可以用来共享卷数据(例如,为 了复制卷的副本和/或保持卷的主副本与镜像副本之间的一致性)的 高带宽连接,其中在至少一些此类实施例中,此类高带宽连接对于多 种主机计算系统不可用。

应认识到的是,出于解释的目的,图1的示例已被简化,并且主 机计算系统、服务器块数据存储系统和其他设备的数量和组织可能比 图1所示的规模大很多。例如,作为一个说明性实施例,每个数据中 心可以有约4,000个计算系统,其中这些计算系统的其中至少一些是 可以各寄存十五个虚拟机的主机计算系统,和/或这些计算系统的其 中一些是可以各存储若干卷副本的服务器块数据存储系统。如果每个 寄存的虚拟机执行一个程序,则此类数据中心可以同时执行多达六万 个程序副本。此外,可以将数百或数千个(或更多)卷存储在服务器 块数据存储系统上,这取决于服务器存储系统的数量、卷的大小和每 个卷的镜像副本的数量。应认识到的是,在其他实施例中,可以使用 其他数量的计算系统、程序和卷。

图2图示根据多种实施例的示范环境200,其包括适用于管理向 可使用的客户端提供和使用可靠非本地块数据存储功能性的计算系 统。在本示例中,将管理系统202(如包括一个或多个面向外部的客 户接口的一个或多个服务器计算机)编程以执行至少一个BDS系统 管理器模块204的实施例以管理对主机计算系统208上和/或至少一 些其他计算系统218上执行的程序提供非本地块数据存储功能性,如 对服务器块数据存储系统220提供的块数据存储卷(未示出)的非本 地块数据存储功能性。本示例中的每个主机计算系统208还执行节点 管理器模块210的实施例以管理主机计算系统上执行的程序214对非 本地块数据存储卷的其中至少一些的访问,如该访问通过网络216(例 如,包括计算系统202、208、220和可选地其他计算系统218的其中 至少一些的数据中心的内部网络,未示出)以与BDS系统管理器模 块204协调的方式进行。而在其他实施例中,节点管理器模块210的 其中一些或全部可以管理一个或多个其他计算系统(例如,其他计算 系统218)。

此外,还图示多个服务器块数据存储系统220,其可以各存储执 行程序214使用的非本地块数据存储卷(未示出)的其中至少一些, 其中在本示例中也通过网络216提供对这些卷的访问。服务器块数据 存储系统220的其中一个或多个还可以各存储管理服务器块数据存 储系统的其中一个或多个的操作的服务器软件组件(未示出)以及这 些服务器块数据存储系统存储的数据的多种信息(未示出)。因此, 在至少一些实施例中,图2的服务器计算系统202可以对应于图1的 计算系统124,图1的节点管理器模块108和112的其中一个或多个 可以对应于图2的节点管理器模块210,和/或图2的服务器块数据存 储计算系统220的其中一个或多个可以对应于图1的服务器块数据存 储系统122。此外,在本示范实施例中,图示多个归档存储系统222, 其可以存储服务器块数据存储系统220上存储的至少一些块数据存 储卷的至少一部分的快照副本和/或其他副本。归档存储系统222还 可以与计算系统202、208和220的其中一些或全部交互,并且在一 些实施例中,归档存储系统222可以是(例如,远程存储服务(未示 出)的)通过一个或多个其他外部网络(未示出)与计算系统交互的 远程归档存储系统。

在至少一些实施例中,其他计算系统218还可以包括多种类型的 其他接近或远程计算系统,包括块数据存储服务的客户或其他用户与 管理和/或主机系统交互所经用的计算系统。此外,其他计算系统218 的其中一个或多个还可以执行PES系统管理器模块以便协调主机计 算系统208和/或其他主机计算系统218上的程序执行,或者,可以 由管理系统202或图示的其他计算系统之一执行此类PES系统管理 器模块,虽然本示例中未图示PES系统管理器模块。

在图示的实施例中,节点管理器模块210在存储器中执行以便如 代程序执行服务和/或块数据存储服务的客户,管理计算系统上的存 储器中执行的一个或多个其他程序214。在一些实施例中,计算系统 208的其中一些或全部可以寄存多个虚拟机,并且如果是这样的话, 每个执行程序214可以是相异寄存的虚拟机计算节点上执行的完全 虚拟机映像(例如,具有操作系统和一个或多个应用程序)。节点管 理器模块210可以相似地在另一个寄存的虚拟机(如管理其他寄存的 虚拟机的有特权的虚拟机监视器)上执行。在其他实施例中,执行程 序副本214和节点管理器模块210可以作为单个计算系统208上执行 的单个操作系统(未示出)上的相异进程来执行。

归档存储系统222可工作以执行至少一个归档管理器模块224, 以便如代块数据存储服务的和/或提供归档存储系统的相异存储服务 的客户,管理归档存储系统的其中一个或多个的操作。而在其他实施 例中,归档管理器模块224可以在如其他计算系统218之一的另一个 计算系统上执行,或与BDS系统管理器模块204协同在管理系统202 上执行。此外,虽然此处未图示,但是在一些实施例中,可以将有关 归档存储系统222存储的数据的多种信息维护在归档存储系统的存 储中或其他位置。

BDS系统管理器模块204和节点管理器模块210可以采取多种 措施以管理可靠非本地块数据存储功能性对客户端(例如,执行程序) 的提供和/或使用,正如其他地方更详细描述的。在本示例中,BDS 系统管理器模块204可以维护数据库206,数据库206包含有关服务 器块数据存储系统220上和/或归档存储系统222上存储的卷的(例 如,管理卷时使用的)信息,并且还可以存储有关块数据存储服务的 用户或其他方面的多种其他信息(未示出)。在其他实施例中,有关 卷的信息可以由卷所在的计算系统上的节点管理器模块210和/或其 他计算系统采用其他方式(如分布式方式)来存储。此外,在本示例 中,主机计算系统208上的每个节点管理器模块210可以存储有关连 接到该主机计算系统且被该主机计算系统上的执行程序214使用的 当前卷的信息212,如为了协调与提供这些卷的主副本的服务器块数 据存储系统220的交互,以及确定在主卷副本变得不可用的情况下如 何切换到卷的镜像副本。虽然此处未示出,但是每个主机计算系统还 可以包括用于连接到该主机计算系统且被该计算系统上执行的程序 使用的每个卷的相异逻辑本地块数据存储设备接口,该接口可以进一 步对执行程序显示为与提供本地存储的一个或多个其他本地物理连 接的存储设备之间难以区分。

可以使用如结合图1-2描述的环境来提供和管理不同客户之间共 享的资源。在一个实施例中,可以使用多个数据服务器来提供虚拟化 存储系统,这些数据服务器各具有与之连接的多个存储设备(例如, 存储磁盘)。例如,该存储系统可以将存储作为Web服务暴露给客 户。客户则可以提交Web服务请求或其他适合的请求或调用,以便 在这些服务器上分配存储和/或从为这些客户提供的实例访问该存 储。在某些实施例中,用户能够访问这些存储设备的数据卷,如同这 些存储设备是常规块设备一样。因为这些数据卷对于客户实例将看似 好像每个卷是磁盘驱动器或相似的块设备,所以可以利用偏移量、长 度和其他此类常规块设备方面来寻址这些卷。此外,此类系统可以提 供本文中将称为“写后读”一致性的功能,其中一旦数据被写入到这 些数据卷之一时,保证能够从该数据读取该数据。此类系统可以提供 相对较低时延,如小于10毫秒的时延。此类系统因此以多种方式实 现传统存储区域网络(SAN)的功能,但是性能和可伸缩性得以提高。

使用图2所示的管理系统,客户能够向系统的Web服务层的适 合API进行Web服务调用以提供数据卷并将该卷连接到该客户的数 据实例。该管理系统可以视为驻留在控制面或控制环境中,而数据卷 和块存储设备驻留在单独的数据面或数据环境中。在一个示例中,具 有至少一个提供的实例的客户可以经由Web服务来调用 “CreateVolume”或类似API,这使客户能够指定允许他们指定以分 配的存储的量,例如介于1GB与1TB之间按1GB递增的值。控制面 的组件(如BDS系统管理器模块)可以在数据面中调用以从可用资 源分配期望的存储量,并且能够向客户提供该数据卷的标识符。在一 些实施例中,客户从而就能够使用操作系统为硬盘驱动器和类似存储 设备提供的方案,调用“AttachVolume”或类似API,其中客户为诸 如实例标识符、卷标识符和设备名称的参数提供值,具体取决于如实 例的操作系统的因素,从功能性和命名的视角来看,该调用从物理硬 盘驱动器与从实例内一样无明显差异。一旦客户将数据卷连接到提供 的实例,客户就能够执行多种功能性,如构建文件系统,如数据系统 的原始存储一样使用或通常情况下利用常规存储设备执行的任何其 他此类活动。当客户不再需要该数据卷时,或出于任何其他适合的原 因,客户可以调用“DetatchVolume”或类似API,这可以使得该实 例与该卷的关联性被移除。在一些实施例中,客户然后就能够连接新 实例或执行任何多个其他此类活动。因为在一些实施例中,该数据卷 将无法独立于实例,所以如果当前关联的实例出现故障,则客户能够 将卷连接到新实例。

在某些方法中,请求数据卷的客户无法选择或请求特定类型的卷 或特定类型的性能。客户通常被授权一定存储量,并且性能遵循“尽 力服务”类型的方法,其中基于请求时的容量、负荷和系统的其他此 类因素来执行客户请求。对于每个客户,通常按每个单位尺度金额相 同的方式收费,如每月每千兆字节的存储量相同美元金额,以及每月 每次I/O请求相同的金额,并按如每月百万请求的增量计以一定金额 费用。

但是,正如上文论述的,此类方法在如实例等待要处理的请求的 数量超过处理这些请求的实例的能力的情况下可能构成问题。即使客 户位于该客户的期望或分配的请求次数内,而向该实例提交请求的其 他客户仍可能超过他们的分配,从而产生过载情况,其中该实例的数 据服务器可能开始将压力推回给进入请求以便降低进入请求的速率, 并使系统能够从过载情况恢复。因此,设备上具有待处理请求的每个 客户可能体验到请求处理速率(“请求速率”)的下降,以及如可用 存储的下降的其他问题。

根据多种实施例的系统和方法通过使得每个客户能够指定一个 或多个承诺的请求速率或其他性能保证来使客户能够确保最低性能 级别。除了最小存储量外,每个客户还可以购买承诺的操作速率,如 特定的每秒输入/输出(I/O)操作的次数(IOPS)。在先前的系统中, 通过将整个机器专用于客户连同专用的带宽等来获得性能保证,这常 常是过度的。本文论述的实施例能够让客户按任何适合的粒度级别来 购买性能保证。通过管理客户在多种资源上的性能分配,根据多种实 施例的系统和方法能够使客户按如1IOPS与5,000IOPS之间的任何 适合的级别来购买具有IOPS保证的卷。通过分配部分的磁盘、磁盘 主轴和其他此类资源,系统能够向客户提供保证的存储和/或IOPS级 别。

根据多种实施例的系统和方法使用户能够共享资源,从而能够按 常规解决方案下不可能的粒度级别对这些资源提供特定的保证或承 诺。在多种情况中,客户可能期望指定最小处理速率,如最小每秒I/O 操作次数(IOPS)。根据多种实施例的方法能够承诺按至少承诺的 性能级别提供所需的期望数量的服务器和其他资源。通过对性能级别 的承诺,客户能够接收到不受共享设备或资源的其他客户的性能影响 的一致性服务质量级别。即使在过载情况中,该客户仍能够接收到至 少保证的级别的服务。保证的服务量可以取决于多种因素,以及客户 指定并为其付费的量。

例如,图3图示示范分布300,其中在若干客户中间分配服务器 302的处理容量。在本示例中,确定服务器具有约500IOPS的容量。 此值可以是估算值或平均值,并且可以基于监视的性能或其他此类信 息随时间推移确定或调整。虽然在一些实施例中可以分配全部500 IOPS,在其他实施例中,可能期望仅分配总容量的阈值量、百分比 或其他部分作为保证。因为每个请求的处理时间可能变化,所以任何 给定时间的IOPS的数量也可能变化,从而分配全部500IOPS可能导 致短暂时间期间由于正在处理请求的性质等原因实际性能约为450 IOPS时客户无法接收到对他们的保证。

在本示例中,系统可能能够分配500IOPS中的最多400可用于 服务器302。正如可见到的,客户A已获分配承诺的200IOPS,客户 B已获分配承诺的100IOPS,且客户C已获分配承诺的55IOPS。服 务器上的其余客户则能够利用“尽力服务性能”或类似方法共享剩余 的145IOPS(平均来说)。共享剩余IOPS的客户的数量可以基于多 种因素来选定或限制,以使其余客户仍能够在大百分比的时间里获得 满意的性能级别。

但是,在许多情况中,客户A、B和C将不会都利用他们的全部 承诺的容量。这些客户的每一个可能付费保证一定级别的性能,以使 该级别在需要时可用,但通常实际上将不在接近该峰值容量的情况下 运行。在此情况中,其余的客户D-Z实际能够共享多于剩余的145 IOPS的速率,因为这些客户能够利用承诺的IOPS中当前未使用的可 用容量。这提供另一个优点,因为客户能够接收到保证的性能级别, 但是这些级别未完全被利用时,余下的容量能够被用于服务于其他客 户请求。这种方法使得普通客户(无保证)接收到提高的性能,而无 需提供商购买额外的容量或在很大部分时间提供未被利用的容量。

在一些实施例中,客户A-C中的任一个可能超出其性能保证。 例如,客户A可能一段时间期间提交约250IOPS的请求。对于承诺 的速率以上的50IOPS,在一些实施例中,这些请求可以被视为正常 请求,并按与客户D-Z的请求相同的性能级别来处理。在过载情况 中,则可以将任何处理中的瓶颈、减速或其他下降应用于不受保证限 制的145左右的IOPS。对客户A、B和C的保证级别将不受影响, 因为过量流量调整是针对非承诺的部分而进行的。相应地,对于具有 非保证服务级别的客户可以按每次请求、每个时间段等的较低价格收 费。

在其他实施例中,当客户A-C中任一个超出其性能保证时,客 户可能接收到“混合的”或其他级别的服务。在客户的每个请求被个 别地或无前后关联地处理,使得超出承诺的速率的任何单个请求可被 作为无承诺的速率的请求来处理的情况中,可能存在对该客户的其他 请求的负面影响。例如,如果客户A拥有250IOPS的承诺速率并在 一个时间点上一秒内发出251个请求,则超出速率承诺的该单个请求 可能比其他请求处理得慢很多,如用20ms而非1ms处理。如果客 户应用期望约1ms的性能级别而对于一个请求体验到减速,则这可 能也影响其他请求的处理,并且即使客户仅在短暂时间期间稍微超出 阈值,仍可能导致对该应用的显著减速或其他问题。

根据多种实施例的系统和方法通过向具有速率保证而又超出这 些保证的客户提供“加速”或混合的速率,这样提供介于承诺的速率 与非承诺的速率之间的服务级别。例如,具有速率保证的客户可能有 置于非承诺的请求的“队列”前面或与之接近的任何过量请求。在其 他实施例中,该客户可能接收到这些请求的较低速率承诺,如可能体 验到约5ms的延迟,这并非以承诺的速率内的请求相同的速率来得 到处理,但是比没有承诺的速率的客户更快地得到处理。在一些实施 例中,可以将延迟的量与超额的量以及客户在获保证的速率之上的时 长相关,以提供至少某种程度与超额的量成比例的相对均匀的性能下 降。例如,具有100IOPS的保证的速率而一直以每秒500次的速率 发送请求的客户可能不会接收到与具有250IOPS的保证的速率且偶 尔因少数请求超限的客户一样的加速。在一些实施例中,可以向客户 提供针对任何超额的相同的速率,但是可以对每个此类请求收取额外 的费用。在多种实施例的范围内,许多其他变化也是可能的。

为了管理承诺,控制面的组件可以实质上对数据面中的特定服务 器或其他资源设置预留。在图3中,其中三个客户需要总共承诺的 355IOPS,控制面可以例如对一个服务器预留该级别,并将余下的分 配给该服务器上获提供资源的任何其他客户。控制面还可以确保由于 空间限制、需要产生的I/O的数量或任何其他此类因素,不会将比服 务器处理能力更多的卷分配到服务器。

在一些情况中,客户可能需要超出对给定资源的“可承诺”容量 的保证的服务级别。例如,图3中说明服务器能够分配400IOPS但 其中355已分配给客户A-C。如果另一个客户需要300IOPS,则该数 值将超过服务器允许的数量(以及平均容量)。因此,客户无法在该 服务器得到期望的承诺。但是,使用控制面的管理组件,可以跨多个 服务器分配承诺速率。例如,在图4的分配400中,示出客户A从 用户设备402发送请求300IOPS的保证的请求。在一些实施例中, 控制面可以搜索可用的服务器以确定服务器是否有300IOPS剩余可 用于给予保证。如果没有,则控制面可以尝试将IOPS分散在尽可能 少的服务器上。在此情况中,控制面确定将IOPS保证分配到三个服 务器上,其中第一服务器404提供100IOPS的保证,第二服务器406 提供125IOPS的保证,并且第三服务器408提供75IOPS的保证。 因此,卷无需像许多常规系统中那样驻留在单个服务器上,而是可以 将其在多个服务器上分区。跨多个服务器的分配还使客户能够利用更 大的数据卷,如50万亿字节而非1万亿字节,因为数据能够被分散 在多个服务器上。在此类实施例中,客户可以购买1GB与50TB之 间的存储,例如按期望的承诺速率,如0IOPS和5000IOPS之间的 速率。基于客户选定的这些值的其中一个或多个值,控制面可以确定 适合的(如果不是最优的)方式使用数据面中的可用资源提供这些保 证。

在一些实施例中,可以对承诺的速率分配服务器的容量的最高 100%。可以预测和/或监视非承诺使用的量,使得可以将多个客户分 配到已完全承诺的资源,只要这些客户愿意仅在资源变得可用时取用 它们即可。某些客户可能并不关心具体来说对于某些写操作何时发生 IOPS,使得在获知一些客户可能将不会利用其全部获保证的级别的 情况下,他们愿意支付较低的费率来利用获得最高100%保证的资源。 这种方法帮助提供商通过在以其他方式被“完全”承诺的资源上分配 非承诺的IOPS来最大化每个资源的利用。

此外,不同类型的客户将有不同的需求。例如,如果磁盘具有 100TB的空间且100IOPS的容量,则第一客户可能需要存储很少访 问的90TB的度假照片。该客户可能有兴趣购买90TB存储空间连同 非承诺级别的IOPS。另一个用户可能需要将会持续使用的1TB数据 库,从而该用户可能需要约100IOPS。在本示例中,可以向第一客 户出售90%的存储空间,并且可以对另一个客户分配磁盘的90%(或 更多)IOPS作为承诺。由于客户的性质,可以在同一个磁盘上向他 们二者提供资源,其中在其他情况下他们可能各需要专用的磁盘。

使其他人能够利用对客户已承诺的分配中的未使用部分也能够 使得该客户获益,因为该客户可能无需对完整分配付费,并且因此能 够接收到低于专用资源所需的成本。此外,客户仍将接收到被保证的 服务级别。当客户处于全承诺级别时,该设备上的其他客户将需要降 低其请求速率或每次请求需要等待更长时间。在一些实施例中,可以 完全承诺资源,并且仍可以在该设备上向其他用户提供资源以利用该 资源的未使用部分。在其中准确地预测和监视支持这种使用的一些情 况中,甚至可以对资源承诺超过100%,其中分配的客户的实际使用 将几乎从未等于或超过100%的使用率。在此类实施例中,在资源被 过载的不可能事件的情况中可以有能够偶尔处理任何超额的其他资 源。

为了就新资源(或资源的新实例)作出承诺,可以使用某些缺省 信息来作出承诺。使用相对保守的数值作为缺省值可能是令人期望 的,以便防止将资源过度承诺。例如,控制面组件可以使用特定类型 的每个磁盘主轴可以处理100-120IOPS的通用缺省信息。如果每个 服务器有十二个主轴,则每个服务器可以有约1200-1440IOPS可用。 控制面组件可以在最初是保守的,并且可以分配第一量,如最高400 IOPS,直到获得有关资源的性能和使用情况的更多信息。在某些示 例中,客户利用率约为10%,从而在许多情况中,客户仅使用可用 IOPS的10%。由此,将40%专用于保证的IOPS仍将比实际使用情 况多四倍,并且因此可能仍是保守的数值。数据面中的每个服务器可 以跟踪该服务器上的可用空间的量,并且可以存储对该服务器承诺的 IOPS的数量。因此,当要创建新卷时,控制面组件可以确定服务器 在该400IOPS中具有该服务器愿意对该卷承诺的足够可用容量。一 个实施例中的方法是随机地或以特定次序查询服务器,它们是否能够 取得特定数量的IOPS,并且持续此操作直到找到能够接受该IOPS 的服务器为止。但是,当该信息也被存储在控制面中时,控制面可以 首先选择适合的服务器,然后联系该服务器以取得该卷。

在一些情况中,具有承诺的IOPS速率或其他资源承诺的客户可 能期望或需要调整该速率。例如,客户应用可支持附加的用户或可将 附加的功能性推送到云上。在另一个示例中,当客户不再需要当前承 诺的容量时,客户可能期望减少承诺的IOPS的数量。在又一个示例 中,客户可能在峰值使用期间想要较高承诺的速率,而在其余时间期 望较低的承诺速率。也可能出现多种其他情况,其中客户可能期望更 改承诺的速率。

正如所论述的,许多常规系统要求需要更大承诺的速率的用户购 买或以其他方式获得附加的硬件,这对于用户常常是不合算的,并且 可能获取、安装和/或激活要花费相当多的时间。相似地,需要较低 承诺的用户常常受困于已经购买的硬件,或需自行尝试转售该硬件以 便弥补一些支出。

根据多种实施例的系统和方法使速率承诺能够响应客户请求、建 立的阈值、使用情况变化或多种其他此类条件或输入中任一个被动态 地调整。该系统能够按需自动地调整资源,如为了提供或分配附加的 资源、添加或移动数据卷、将客户分散到多个资源上或本文描述和建 议的多种其他此类操作的任何一种。多种实施例中的系统包括可工作 以监视数据环境中的资源的使用情况以及基于建立的条件调整资源 的利用的至少一个监视组件。控制面还可以包括一个或多个接口(例 如,Web服务API),以使客户能够请求特定变更或建立进行此类变 更时使用的条件。在多种实施例的范围内,还可以使用多种其他方法。

图5图示示范情况500,其中四个不同客户中每一个客户拥有对 公共服务器502的保证的速率。在本示例中,服务器具有400IOPS 的(可承诺)速率容量,并且每个客户拥有100IOPS的被承诺的速 率。正如上文论述的,在多种实施例中,许多客户未利用其全部被承 诺的分配,从而可以承诺服务器的全部容量,因为这些客户中一个或 多个客户的任何超额可以有可能地使用承诺给其他用户中的一个或 多个用户的未使用容量来处理。

但是在某些情况中,可能期望调整对利用该服务器的客户的至少 其中之一提供速率承诺的方式。如果例如其中这些客户的其中之一需 要更高速率承诺,则服务器上没有足够的可承诺容量用于支持更高的 速率。在此类情况中,可以自动地将需要附加速率承诺的数据卷迁移 到另一个服务器,而无需客户方面知道或采取任何措施。

在第一示例600中,如图6所示,图5中的客户A要接收从100 IOPS到200IOPS的IOPS速率承诺增加。正如可见到的,当前服务 器实例502的全部可承诺容量已经被分配,使得该服务器无法为客户 A提供附加的承诺。在本实施例中,该系统(或服务)找到具有为客 户A提供全部速率承诺的所需可用容量的资源实例602。因此,管理 系统的进程或工作流(或另一个此类组件或进程)可以迁移数据卷, 并使得客户I/O请求被定向到第二服务器实例602,并由第二服务器 实例602来处理,而对于对应的客户端应用等无需任何更改。管理进 程可以促成执行任何适合的操作,如为了提供新数据实例和/或移动 客户数据,更新数据面中的地址映射等,以使客户能够接收更高承诺 速率,而无需客户方面采取任何措施或更改。

使用如上文论述的那些组件,图7图示根据多种实施例的示范过 程700,通过示范过程700,能够为给定客户更新对资源的保证的服 务级别或承诺的处理速率。正如应该理解的,图示的步骤是示例,并 且在多种实施例的范围内,可以采用相似或替代次序或并行地执行附 加的、更少或替代步骤。此外,可以使用控制面或类似数据控制应用 或服务对任何适合的组件或元件来执行该过程,如至少一个数据实 例、存储库或数据环境(此处为数据面)中的其他此类数据源。虽然 术语“客户”在本文中用于指代特定数据或由系统寄存的数据存储或 实例的“拥有者”,但是应该理解,术语客户仅是为了方便而使用, 并且在多种实施例中,可以允许任何适合的用户或开发者访问控制面 和数据面。

在用户请求触发速率变更的实施例中,通过多个API或其他此类 面向客户的接口组件其中之一来接收Web服务调用或类似请求702。 在需要的情况下,可以分析请求以确定处理请求所需的任何操作。正 如所论述的,这可以采用分析请求的Web服务层的组件的形式来确 定正在被请求的操作。在接收请求的API对应于要执行的特定操作的 实施例中,Web服务层能够从请求中提取信息以便在确定要执行的操 作的方面或参数时使用。

一旦确定了一个或多个所请求(或所需)的操作,则系统可以确 定客户当前正在使用的资源(例如服务器)704,以及资源的附加可 承诺容量706。正如所论述的,在一些实施例中,这包括对管理系统 可访问的数据存储中的表或其他此类存储库进行搜索,以确定资源是 否具有期望的容量。在其他实施例中,这可以包括个别地联系服务器。 即使容量可以由多个资源实例来提供,但是至少从管理角度来看仍希 望尝试使用客户已经在使用的资源提供附加的速率承诺,而非将客户 请求分散在另一个资源上。如果该客户正在使用的当前资源具有附加 的可承诺容量来满足请求708,则该过程可以促使资源分配附加承诺 710,从而附加速率能够即刻可供客户使用。可以将承诺变更的信息 存储到管理系统可访问的表中718。

如果分配给客户的资源上没有足够的可承诺容量,则该过程可以 尝试查找具有满足新速率请求712的容量的至少一个资源。在一些实 施例中,如果单个资源实例可用且能够提供期望的容量,则可以将客 户分配转移到该单个资源实例,而非分散在多个实例上。在其他实施 例中,可以通过提供另一个可用资源实例的附加容量来提供附加的容 量。在一些实施例中,在可能的情况下,该系统可以尝试将客户的分 配合并,以便最小化或至少减少分配给单个客户的实例的数量。在多 种实施例的范围内,还可以使用多种其他方法。

当找到能够提供附加承诺的至少一个附加资源实例时,该过程可 以促使资源分配附加承诺714。产生附加资源的映射信息以便正确地 定向客户的请求716。可以将承诺变更的信息存储到管理系统可访问 的表或存储库中718。在应用承诺并执行任何必需的配置或提供操作 之后,客户就能够直接访问应用了该保证的资源,并且可以使用增加 的承诺处理后续请求720。正如所提到的,可以向用户提供DNS地 址和端口号,例如以便如果操作导致数据的移动或另一个相似操作, 则客户或应用能够继续使用相同的DNS地址,其将被定向到适合的 位置。

在一些实施例中,可以不将客户分配到单个资源实例。例如,可 能没有足够容量的单个实例满足全部的承诺。在其他情况中,可以将 系统配置成如果可能的话,则使用单个资源添加附加的容量,同时将 现有客户保留在当前资源上,从而最小化卷改变等。在其他实施例中, 在分配附加的资源之前,系统可能优先地使用现有资源实例的容量。

图8图示其中出于任何上文或其他适合的原因不由单个资源实 例提供全部承诺的示例800。同样,使用图5的初始示范分配作为起 点,在本示例中,客户A的原100IOPS仍由服务器X 502提供。但 是,对于附加的100IOPS,将附加的请求分配到第二服务器,即服 务器Y 802。在本示例中,第二服务器实例处理其他客户的请求,但 是具有处理客户A的附加分配的足够可用和可承诺容量。正如上文 论述的,在一些实施例中,可以通过分析控制面的数据存储中存储的 数据以查找提供附加承诺的速率的适合服务器来选择第二服务器实 例。在其他实施例中,可以个别地联系多个服务器,直到找到至少能 够接受对客户的附加资源承诺的服务器。

在一些情况中,请求的承诺增加无法由单个资源实例提供。例如, 接着图5的初始起点,每个服务器只能承诺400IOPS。如果客户A 需要从100IOPS增加到600IOPS,则承诺的速率将无法由单个资源 来提供。因此,如果原100IOPS继续由第一服务器实例502来提供, 则需要至少两个附加的资源实例。但是,在一些实施例中,基于如减 少管理复杂性和映射等原因,期望的是将客户划分或分配在尽可能少 的资源上。图9图示示范分配900,其中从服务器X 502移除客户A 的请求,并将数据卷迁移和拆分,并将全部承诺的速率指定在两个资 源实例上。虽然其他相关分配也可以被使用并且也应当很明显,但这 里将400IOPS指定到服务器Y 902,并且将200IOPS指定到第三资 源实例服务器Z 904。通过从第一资源实例502移动初始请求,系统 能够使用两个资源实例而非三个来提供所请求的速率承诺。

正如应该显见到的,基于多个类似原因的任何一个,给定用户的 速率承诺还可能减少。因此,可以实质上采用相反的方式使用上文用 于增加承诺的方法的其中至少一些来减少承诺。例如,在图6中其中 用户具有均匀地分拆在两个资源实例上的200IOPS,如果用户的速 率降低到100IOPS,则系统可以选择任一个实例以保持100IOPS承 诺并允许另一个释放承诺。如果速率下降到大于在这两个服务器其中 之一上可提供的100IOPS的级别,如150IOPS的速率,则系统可以 将100IOPS置于一个服务器上,并且将另外的50IOPS置于当前第 二服务器上,或者将这些IOPS移到具有约50IOPS的第三服务器上, 以便更充分地利用第三服务器并增加第二服务器上的可用容量。

在图9的情况中,用户从服务器X上的100IOPS移到服务器Y 上的400IOPS和服务器Z上的200IOPS。如果用户移回到200IOPS 或400IOPS,则系统只需利用已经具有分配给客户的该量的服务器, 并释放另一个服务器上的承诺。如果用户下降到100IOPS,则系统 可以将服务器Y或Z上的分配减少到100IOPS,或如果服务器X仍 具有100IOPS可用,则可以将客户移回到服务器X,以便将服务器 X的利用率最大化并且将服务器Y和Z上的可用容量最大化。在其 他情况中,系统可以决定将客户移到具有最接近地匹配期望的IOPS 级别的容量的再一个服务器(未示出)。

除了在调整容量时移动、合并或以其他方式管理现有资源外,根 据多种实施例的系统和方法还可以监视可用资源中的改变,并响应这 些改变来更新资源分配。例如,图10图示其中客户具有400IOPS的 承诺的速率的示范分配1000。使用三个不同的服务器1002、1004、 1006来提供承诺的速率。在一些实施例中,系统可以检测何时资源 实例变得可用,如服务器Z 1008示出具有400IOPS的可承诺容量。 某些实施例中的系统可以分析现有分配以尝试将现有客户合并到更 少的设备和/或实例上,而不是将新客户请求分配到新近可用的资源 实例。在本示例中,确定服务器Z 808具有400的可用IOPS,并且 客户A具有分散在三个服务器上的400IOPS的被承诺的速率。为了 尽可能多地合并,系统可以决定利用服务器Z来为客户A提供所有 400IOPS。这种方法可以帮助降低管理和映射多种资源实例的复杂性 等,正如上文论述的。

将客户合并到较少的设备上的决定可以由多个事件中的任何一 个触发。在一些实施例中,控制面可以周期性地与每个资源实例通信 以便确定何时可用容量中变化使得合并可能。在一些实施例中,当资 源实例的承诺有减少时,如当用户降低被承诺的速率或不再利用该资 源时,则可以在控制环境的任务队列中建立一个任务来检查Admin 数据存储或其他位置中的承诺,确定是否可能进行任何合并。无论何 时,只要在数据环境中提供新的资源实例,则可以利用相似的方法, 如为了在控制环境中存储新记录。还可以使用多种其他方法,如为了 周期性地分析控制环境中存储的承诺信息以确定可能的合并方法。但 是,在用户仅需要临时增加或减少承诺的情况中,系统可能不会决定 合并,以便最小化数据的复制、映射更新等。因此,在多种实施例中 可以利用某些条件(例如,承诺使用情况、当前承诺级别的时间长度 等)来确定是否要合并用于任何给定用户的资源。

正如所论述的,在多种实施例的范围内,可以基于多个类似原因 中的任何一个,分配不同的承诺级别或迁移数据卷。例如,客户可能 明确地请求资源承诺的变更,如向管理系统的适合API发送Web请 求。客户还可以联系能够代客户提交此类请求的管理员或其他授权用 户。

在多种实施例中,可以至少部分地由于数据面中的资源的多个不 同方面的任何一个以及这些资源的使用情况中检测到的变化而进行 调整。例如,特定资源实例可能在比可接受的时间更长的时间中处于 过载情况,如该特定资源实例可能基于指定的条件或阈值。在此类情 况中,系统可以决定将至少一个客户移到不同的实例,以便减少经常 过载资源实例上的平均负荷。在其他实施例中,客户可能频繁超过承 诺的速率,使得系统可以决定将该客户的数据卷迁移到具有更大容量 的资源。

在一些实施例中,系统可以自动地调整对多个不同用户的速率或 其他资源承诺。例如,客户可能愿意在不同时间为不同级别的承诺付 费,但是可能不愿在客户未在使用多少承诺的容量时为最高承诺速率 付费。在一个这种实施例中,客户可以选择能够用于多个不同时间的 承诺速率的两种或两种以上级别、层次或其他值。例如,如果承诺的 速率被用到容量的至少75%,则客户可能愿意为最高500IOPS的承 诺的速率付费。如果一段时间使用率小于75%,则承诺的速率可以下 降到较低的值,如350IOPS的承诺的速率。速率可以保持在350 IOPS,直到一段时间内使用率下降到350IOPS的75%以下,在此期 间,速率可调整到200IOPS,或直到一段时间内使用率上升到承诺 的速率的至少110%,在此时间,承诺的速率可调整回500IOPS。提 高或降低承诺的速率所需的时间段可以是不同的,因为例如客户可能 偏好于拥有尽可能大的用于请求的承诺的速率或只在绝对必要时才 为更高承诺的速率付费。此外,在多种实施例的范围内,可以有任何 适合的阈值、层次的数量、可能的速率或其他此类值。

在一些实施例中,可以将速率承诺的增加与客户的I/O请求的处 理性能相联系。例如,具有指定承诺速率的客户,只要其I/O请求还 在以及时的方式被处理,则可能不希望增加速率。正如所论述的,只 要资源上有足够未被承诺的容量或有未使用的已承诺的容量,则可以 及时的方式处理过量的请求。例如,如果资源进入过载情况,则过量 的请求无法以及时的方式处理,且可能将其减速以便尝试从过量负荷 恢复。客户可以在此情况中对系统授权以自动地在同一个资源或不同 的资源上增加承诺的速率,以便确保来自该客户的后续请求及时地被 处理。相似地,可以监视多种资源的使用情况,以便在存在容量的情 况下,客户可以自动地降低到较低承诺的速率,只要任何过量请求将 可能无显著延迟地被处理即可。

通过按变化的粒度提供承诺,提供商能够提供多种不同定价方 案。例如,用户可以为每个承诺的IOPS支付某个金额,如为每个保 证的IOPS支付0.30美元,而无论用户实际是否使用该金额。因此, 如果用户购买一个月100IOPS的承诺,则该用户将支付30美元,而 无论实际使用与否,因为用户是为承诺付费。还可以使用多种其他定 价方法,如多种层次化定价方案。在其他实施例中,用户可以对一级 别承诺的IOPS支付额外费用,但是该金额可以被其他用户利用其未 使用的承诺的金额抵扣。例如,用户可以为一个月100IOPS支付30 美元,但是如果平均其他用户利用了分配给该客户的承诺的IOPS的 25,则该客户可以得到如每IOPS 0.05美元的减价,总计月费为25 美元。如果在特定时间期间调整费率,则对客户的计费可以反映该期 间分配的不同费率。

正如所论述的,客户也可以仔细检查其被承诺的量。在多种实施 例的范围内,还可以对这些额外IOPS使用多种定价方法。在一个实 施例中,对于过量IOPS,以与没有被承诺的IOPS的任何客户相同的 价格对客户收费(例如,每IOPS 0.10美元),并且将客户请求以与 这些请求相同的方式处理。在其他实施例中,客户可以选择为每IOPS 支付额外费用使其与其他请求一起被处理,但是被赋予高于标准请求 的优先级。在一些实施例中,客户可以支付额外费用以使他们的过量 请求在另一个客户的可用的承诺的资源内得以处理,以使这些请求将 被作为承诺的请求来处理,只要该资源上的至少一个其他客户低于其 承诺级别。虽然客户可能希望能够在需要的情况下激增请求速率,但 是在某些实施例中,用户可能被限制在某个最高级别,不管是为了限 制客户的成本、确保服务质量的级别,还是出于其他此类原因。能够 超过保证的级别还可以使正在规划系统或应用的客户受益,因为客户 可以确定需求的各方面,而不会明显地遭遇服务质量上的问题。

图11图示能够利用和/或运用根据多种实施例的多个方面的环境 1100的示例。正如将认识到的,虽然出于解释的目的而使用了基于 Web的环境,但是也可以在适合的情况下使用不同环境来实现多种实 施例。所示的环境1100包括测试或开发部分(或端)和生产部分。 生产部分包括电子客户端设备1102,其可以包括可工作以通过适合 的网络1104发送和接收请求、消息或信息以及将信息传回给设备的 用户的任何适合的设备。此类客户端设备的示例包括个人计算机、蜂 窝电话、手持消息传送设备、膝上型计算机、机顶盒、个人数字助理、 电子书阅读器等。该网络可以包括任何适合的网络,包括内联网、因 特网、蜂窝网络、局域网或任何其他此类网络或其组合。用于此类系 统的组件可以至少部分地根据所选的网络和/或环境的类型而定。用 于经由此类网络通信的协议和组件是众所周知的,并且在本文将不予 以详细论述。通过网络的通信可以通过有线或无线连接及其组合来实 现。在本示例中,该网络包括因特网,因为环境包括用于接收请求并 对此响应提供内容服务的Web服务器1106,虽然对于其他网络,可 以如本领域技术人员所显见的,使用提供类似目的的替代设备。

图示的环境包括至少一个应用服务器1108和数据存储1110。应 该理解,可以有若干个应用服务器、层或其他元件、过程或组件,它 们可以链接或以其他方式配置,并且可以交互来执行如从适合的数据 存储获取数据的任务。正如本文所使用的,术语“数据存储”指代能 够存储、访问和检索数据的任何设备或设备的组合,其可以包括任何 标准、分布式或集群式环境中的任何组合和数量的数据服务器、数据 库、数据存储设备和数据存储介质。该应用服务器可以包括用于根据 需要与数据存储集成来执行客户端设备的一个或多个应用的方面和 处理应用的大部分数据访问和业务逻辑的任何适合的硬件和软件。该 应用服务器与数据存储协同来提供访问控制服务,以及能够产生如文 本、图形、音频和/或视频等内容以传输给用户,在本示例中,该内 容可以通过Web服务器以HTML、XML或另一种适合的结构化语言 的形式提供给用户。处理所有请求和响应以及在客户端设备1102和 应用服务器1108之间交付内容可以由Web服务器来处理。应该理解, Web和应用服务器并非必需的而仅仅是示范组件,因为本文论述的结 构化代码可以在任何适合的设备或主机机器上执行,正如本文其他地 方所论述的。此外,可以采用如下方式来建立该环境的架构:使得能 够将测试自动化框架作为服务来提供,而用户或应用可以订阅该服 务。测试自动化框架能够作为本文论述的多种测试模式的任何一种的 实现来提供,虽然正如本文论述或建议的,也可以使用多种其他实现。

该环境还包括开发和/或测试端,其包括允许如开发者、数据管 理员或测试人员的用户访问系统的用户设备1118。用户设备1118可 以是任何适合的设备或机器,如上文结合客户端设备1102描述的。 例如,该环境还包括开发服务器1120,其功能与应用服务器1108相 似,但是通常在开发和测试期间运行代码,然后才能在生产端部署和 执行该代码,并且外部用户才能够访问该代码。在一些实施例中,应 用服务器可以用作开发服务器,并且可以不使用单独的生产阶段和测 试阶段。

数据存储1110可以包括用于存储与特定方面相关的数据的若干 单独的数据表、数据库或其他数据存储机构和介质。例如,图示的数 据存储包括用于存储生产数据1112和用户信息1116的机构,其可以 用于为生产端提供内容。该数据存储还示出为包括用于存储测试数据 1114的机构,测试数据1114可以与用户信息一起用于测试端。应该 理解,可以有可能需要存储在数据存储中的许多其他方面,如页映像 信息和访问权信息方面,其可以根据情况存储在任何上文列出的机构 中或存储在数据存储1110中的附加机构中。数据存储1110可通过与 之关联的逻辑工作以从应用服务器1108或开发服务器1120接收指 令,并对此响应以获取、更新或以其他方式处理数据。在一个示例中, 用户可以提交针对某种类型的项目的搜索请求。在此情况中,数据存 储可以访问用户信息以验证用户的身份,并且可以访问目录细节信息 以获取与该类型的项目有关的信息。然后可以将该信息返回给用户, 如在用户能够通过用户设备1102上的浏览器查看的Web页面上的结 果列表中。可以在浏览器的专用页面或窗口中查看所关注的特定项目 的信息。

每个服务器通常将包括操作系统,操作系统为该服务器的总体管 理和操作提供可执行程序指令,并且每个服务器通常将包括存储指令 的计算机可读介质,这些指令在被服务器的处理器执行时允许服务器 执行其所需功能。服务器的操作系统和总体功能性的适合实现是众所 周知的或可通过商业渠道获取的,并且尤其根据本文公开,可由本领 域普通技术人员容易地实现。

一个实施例中的环境是分布式计算环境,其利用若干个计算机系 统和组件,这些计算机系统和组件使用一个或多个计算机网络或直接 连接经由通信链路互连。但是,本领域技术人员将认识到,此类系统 在具有比图11所示更少或更多数量的组件的系统中同样能够很好地 工作。因此,图11中的系统1100的图示应该被视为本质上是说明性 的,而非对本发明公开范围的限制。

如图11所示的环境对于如电子交易市场的提供商是有用的,其 中可以使用多个主机来执行如提供内容、认证用户、执行支付交易或 执行任何多种其他此类任务的任务。这些主机的其中一些可以配置成 提供相同的功能性,而另一些服务器可以配置成执行至少一些不同的 功能。在此类情况中的电子环境可以包括附加的组件和/或其他布置, 如图2的配置200中所示那些,下文对此进行详细论述。

正如上文所论述的,这些多种实施例可以在范围广泛的操作环境 中实现,在一些情况中,其可以包括能够用于操作任何数量的应用 的一个或多个用户计算机、计算设备或处理设备。用户或客户端设备 可以包括任何多个通用个人计算机(如运行标准操作系统的桌上型或 膝上型计算机)以及运行移动软件且能够支持多个联网和消息传送协 议的蜂窝、无线和手持设备。此类系统还可以包括运行任何多种商业 渠道可获取的操作系统和以如开发和数据库管理为目的的其他公知 应用的多个工作站。这些设备还可以包括其他电子设备,如伪终端、 瘦客户端、游戏系统和能够通过网络通信的其他设备。

还可以将多个不同方面作为至少一个服务或Web服务的一部分 来实现,如可以是面向服务的体系结构的一部分。如Web服务的服 务可以使用任何适合类型的消息传送,如使用可扩充标记语言 (XML)格式且使用如SOAP(“简单对象访问协议”的简称)的适 合协议交换的消息来通信。此类服务提供或执行的进程可以采用任何 适合的语言来编写,如采用Web服务描述语言(WSDL)。使用如 WSDL的语言能够实现如在多种SOAP框架中自动化生成客户端代 码的功能性。

大多数实施例利用本领域技术人员熟知的至少一个网络来支持 使用多种商业渠道可获取的协议(如,TCP/IP、OSI、FTP、UPnP、 NFS、CIFS和AppleTalk)的任何一种进行通信。该网络可以是例如, 局域网、广域网、虚拟专用网络、因特网、内联网、外联网、公共交 换电话网、红外线网络、无线网络及其任何组合。

在利用Web服务器的实施例中,Web服务器可以运行多种服务 器或中间层应用的任何一种,包括HTTP服务器、FTP服务器、CGI 服务器、数据服务器、Java服务器和业务应用服务器。服务器还可以 能够响应来自用户设备的请求执行程序或脚本,如执行可以作为以任 何编程语言(如C、C#或C++)或任何脚本语言(如Perl、 Python或TCL)及其组合编写的一个或多个脚本或程序来实现的一 个或多个Web应用。服务器还可以包括数据库服务器,包括而不限 于可从和以商业渠道获取的那 些数据库服务器。

该环境可以包括多种数据存储和其他存储器和存储介质,正如上 文论述的。它们可以驻留在多个不同位置,如在这些计算机的其中一 个或多个本地(和/或驻留在其中)的存储介质或在网络上对于任何 一个或全部计算机为远程的存储介质。在一组特定实施例中,信息可 以驻留在本领域技术人员熟知的存储区域网络(“SAN”)中。相似 地,可以在适合的情况下,将用于执行属于这些计算机、服务器或其 他网络设备的功能的任何必需文件存储在本地和/或存储在远程位 置。在系统包括计算机化设备的情况中,每个此类设备可以包括经由 总线电耦合的硬件元件,这些元件包括例如至少一个中央处理单元 (CPU)、至少一个输入设备(例如,鼠标、键盘、控制器、触摸屏 或小键盘)和至少一个输出设备(例如,显示设备、打印机或扬声器)。 此类系统还可以包括一个或多个存储设备,如磁盘驱动器、光存储设 备和固态存储设备(如随机存取存储器(“RAM”)或只读存储器 (“ROM”)),以及移动介质设备、存储卡、闪存卡等。

此类设备还可以包括计算机可读存储介质读取器、通信设备(例 如,调制解调器、网络卡(无线或有线)、红外线通信设备等)和如 上所述的工作存储器。该计算机可读存储介质读取器可以与计算机可 读存储介质连接或配置成接纳计算机可读存储介质,该计算机可读存 储介质代表用于临时性地和/或永久性地包含、存储、传送和检索计 算机可读信息的远程、本地、固定和/或移动存储设备以及存储介质。 该系统和多种设备通常还将包括位于至少一个工作存储器设备内的 多个软件应用、模块、服务或其他元件,包括操作系统和应用程序(如 客户端应用或Web浏览器)。应该认识到,备选实施例可以具有源 自上文所描述的多种变化。例如,还可以使用定制的硬件和/或可以 在硬件、软件(包括便携式软件,如applet)或这二者中实现特定元 件。此外,可以采用至其他计算设备(如网络输入/输出设备)的连 接。

用于包含代码或代码的部分的存储介质和计算机可读介质可以 包括本领域中众所周知或使用的任何适合的介质,包括存储介质和通 信介质,如但不限于以用于存储和/或传输如计算机可读指令、数据 结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和 非易失性、移动和不可移动介质,包括RAM、ROM、EEPROM、闪 存或其他存储技术、CD-ROM、数字多功能光盘(DVD)或其他光 存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备或能够用 于存储期望的信息且能够被系统设备访问的任何其他介质。基于本文 提供的发明公开和教导,本领域技术人员能够认识到用于实现这些多 种实施例的其他方式和/或方法。

因此,本说明书和附图应视为说明性意义的而非限制性意义的。 但是,将显见的是在不背离权利要求中提出的本发明的更宽精神和范 围的前提下可以对其进行多种修改和更改。

条目1.一种用于调整共享的计算资源的使用的计算机实现的方 法,其包括:

在配置有可执行指令的一个或多个计算机系统的控制下,接收客 户的对于一种类型的资源调整的承诺的请求速率的请求,所述客户具 有所述类型的资源的当前承诺的请求速率,所述请求能够指定与所述 类型的资源的一个或多个实例的容量中任何部分对应的承诺的请求 速率;

如果所述调整的承诺的请求速率小于所述当前承诺的请求速率, 则自动地为所述客户降低用于所述类型的资源的至少一个实例的所 述承诺的请求速率;

如果所述请求涉及提高所述承诺的请求速率,则自动地承诺所述 类型的资源的至少一个实例的可用可承诺速率容量中的至少一部分 以获取所述调整的承诺的请求速率;以及

为所述客户存储所述调整的承诺的请求速率的信息,以便在管理 所述客户的请求处理的速率时使用。

条目2.如条目1所述的计算机实现的方法,其中降低所述承诺 的请求速率包括,当更少数量的实例即可用于提供所述承诺的请求速 率时,减少为所述客户提供所述承诺的请求速率的所述类型的资源的 实例的数量。

条目3.如条目1所述的计算机实现的方法,其中提高或降低所 述承诺的请求速率包括,自动地将至少一个请求处理承诺移到为所述 客户提供所述承诺的请求速率的所述类型的资源的不同实例。

条目4.如条目1所述的计算机实现的方法,其中所述调整的承 诺的请求速率能够由单个确定的实例或各提供所请求的承诺的请求 速率的至少一部分的多个确定的实例来提供,每个确定的实例还能够 在所述实例的请求容量允许用于附加用户时拥有共享所述资源的所 述附加用户。

条目5.如条目1所述的计算机实现的方法,其中一种类型的资 源的所述承诺的请求速率是承诺的数据服务器的每秒输入/输出操作 次数(IOPS)的速率。

条目6.如条目1所述的计算机实现的方法,其中每个实例能够 支持用于多个客户的承诺的请求速率,每个实例还能够支持没有承诺 的请求速率的附加客户的请求。

条目7.如条目1所述的计算机实现的方法,其中至少一个实例 配置成使用所述实例的所述容量中未承诺的或未使用的部分来处理 没有承诺的请求速率的客户的请求,以及

其中在过载情况中,以正常速率处理具有承诺的请求速率的客户 的请求,并且将没有承诺的请求速率的客户的请求降速来克服所述过 载情况。

条目8.如条目1所述的计算机实现的方法,其中具有承诺的请 求速率的客户能够超出所述承诺的请求速率,超过所述承诺的请求速 率的任何请求以用于没有速率承诺的请求的速率或以介于用于具有 速率承诺的请求的速率和用于没有速率承诺的请求的速率之间的混 合速率来予以处理。

条目9.如条目1所述的计算机实现的方法,其中确定所述类型 的资源的至少一个实例的可用可承诺请求容量包括,随机地联系实例 以获取容量或承诺信息的至少其中之一。

条目10.如条目1所述的计算机实现的方法,还包括:至少部分 地基于对所述客户的所述类型的资源的所述承诺的请求速率来对所 述客户收费。

条目11.一种用于调整共享的计算资源的使用的系统,其包括:

至少一个处理器;以及

存储器,其包括在被所述至少一个处理器执行时使所述系统执行 如下操作的指令:

接收客户的对于一种类型的资源的调整的承诺的速率的请求,所 述客户具有用于所述类型的资源的当前承诺的速率,所述请求能够指 定与所述类型的资源的一个或多个实例的容量中任何部分对应的承 诺的速率;

如果所述调整的承诺的速率小于所述当前承诺的速率,则自动地 为所述客户降低用于所述类型的资源的至少一个实例的所述承诺的 速率;

如果所述请求涉及提高所述承诺的速率,则自动地承诺所述类型 的资源的至少一个实例的可用可承诺速率容量中的至少一部分以获 取所述调整的承诺的速率;以及

为所述客户存储所述调整的承诺的速率的信息,以便在管理所述 客户的请求处理的速率时使用。

条目12.如条目11所述的系统,其中降低所述承诺的速率包括, 当更少数量的实例即可用于提供所述承诺的速率时,减少用于为所述 客户提供所述承诺的速率的所述类型的资源的实例的数量,并且其中 提高或降低所述承诺的速率包括,自动地将至少一个使用承诺移到为 所述客户提供所述承诺的速率的所述类型的资源的不同实例。

条目13.一种用于管理共享的计算资源的使用的计算机实现的 方法,其包括:

在配置有可执行指令的一个或多个计算机系统的控制下,

接收对于用于一种类型的资源的承诺的使用速率的请求,所述请 求能够指定与所述类型的资源的一个或多个实例的使用容量中任何 部分对应的承诺的使用速率;

确定所述类型的资源的可工作以提供所请求的承诺的使用速率 的至少一部分的至少一个实例;以及

当所述至少一个确定的实例能够提供所述承诺的使用速率时,将 所述所请求的承诺的使用速率的至少一部分指定到每个确定的实例,

其中所述承诺的使用速率能够由单个确定的实例或各提供所述 所请求的承诺的使用速率的至少一部分的多个确定的实例来提供,每 个确定的实例还能够在所述实例的使用容量允许用于附加用户时拥 有共享所述资源的所述附加用户,以及

其中用户能够请求实质上独立于所述类型的资源的任何单个实 例的所述容量的承诺的使用速率。

条目14.如条目13所述的计算机实现的方法,其中用于一种类 型的资源的所述承诺的使用速率是承诺的数据服务器的每秒输入/输 出操作次数(IOPS)的速率。

条目15.如条目13所述的计算机实现的方法,其中确定所述类 型的资源的可工作以提供所述所请求的承诺的使用速率的至少一部 分的至少一个实例包括,确定实例的所述容量中有至少可允许的部分 未承诺给其他用户的至少一个实例。

条目16.如条目13所述的计算机实现的方法,其中如果确定没 有实例的组合能够提供与所述请求对应的所述承诺的使用速率,则拒 绝所述请求。

条目17.如条目13所述的计算机实现的方法,其中具有承诺的 使用速率的用户能够超出所述承诺的使用速率,超过所述承诺的使用 速率的任何请求以用于没有速率承诺的请求的速率或以介于用于具 有速率承诺的请求的速率和用于没有速率承诺的请求的速率之间的 混合速率来予以处理。

条目18.一种用于管理共享的计算资源的使用的系统,其包括:

至少一个处理器;以及

存储器,其包括在被所述至少一个处理器执行时使所述系统执行 如下操作的指令:

接收对于用于一种类型的资源的承诺的使用速率的请求,所述请 求能够指定与所述类型的资源的一个或多个实例的使用容量中任何 部分对应的承诺的使用速率;

确定所述类型的资源的可工作以提供所请求的承诺的使用速率 的至少一部分的至少一个实例;以及

当所述至少一个确定的实例能够提供所述承诺的使用速率时,将 所述所请求的承诺的使用速率的至少一部分指定到每个确定的实例,

其中所述承诺的使用速率能够由单个确定的实例或各提供所述 所请求的承诺的使用速率的至少一部分的多个确定的实例来提供,每 个确定的实例还能够在所述实例的使用容量允许用于附加用户时拥 有共享所述资源的所述附加用户,以及

其中用户能够请求实质上独立于所述类型的资源的任何单个实 例的所述容量的承诺的使用速率。

条目19.如条目18所述的系统,其中确定所述类型的资源的可 工作以提供所述所请求的承诺的使用速率的至少一部分的至少一个 实例包括,确定实例的所述容量中有至少可允许的部分未承诺给其他 用户的至少一个实例。

条目20.如条目18所述的系统,其中至少一个实例配置成使用 所述实例的所述容量中未承诺的或未使用的部分来处理没有承诺的 请求速率的用户的请求,以及

其中在过载情况中,以正常速率处理具有承诺的使用速率的用户 的请求,并且将没有承诺的使用速率的用户的请求降速来克服所述过 载情况。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号