管理用于共享资源的承诺的请求速率的制作方法

文档序号:6359971阅读:175来源:国知局
专利名称:管理用于共享资源的承诺的请求速率的制作方法
管理用于共享资源的承诺的请求速率相关申请的交叉引用本专利申请要求2010年3月29日提交的美国专利申请号为12/749,451的申请和2010年3月29日提交的美国专利申请号为12/749,449的申请的权益,这两个申请的内容通过引用并入本文。
背景技术
随着如因特网的网络上有数量日益增加的应用和服务可用,数量日益增加的内容、应用和/或服务提供商致力于发展如远程资源共享云计算的技术。一般来说,云计算是通过服务(如Web服务)提供对电子资源的访问的一种途径,其中用于支持这些服务的硬件和/或软件可动态地伸缩以在任何给定时间满足服务的需求。用户或客户通常将租借、租用或以其他方式付费来通过云访问资源,并且因此无需购买和维护用于提供对这些资源的 访问的硬件和/或软件。在一些环境中,多个用户可以共享如数据存储库的资源,其中例如,这些用户可以同时发送要由同一数据实例执行的多个读和/或写请求。但是,当同时请求的数量超过处理这些请求的实例的能力时,可能出现问题。在一个示例中,实例的数据服务器可能进入过载状况,并且开始对进入请求施加反压以便降低进入请求的速率,并使系统能够从过载状况恢复。但是,由于推迟,客户可能无法接收到期望或必要的请求处理速率(例如,满足或以其他方式处理接收的请求),这可能使客户沮丧,并且在一些情况下,导致客户寻找其他提供商,以便获取数据存储和类似的资源。某些常规方法尝试在例如特定客户超过某种使用阈值时限制请求,但是这些方法往往是反应式的且仍可能导致资源的其他客户体验到速度减慢以及过载状况。此外,常规方法未向客户提供容易地调整各种资源的速率或分配的能力。
附图简介下文将参考附图描述根据本发明公开的多种实施例,其中图I图示其中能够实现各种实施例的环境;图2图示能够根据各种实施例使用的管理和主机组件的示范分隔;图3图示能够根据各种实施例使用的多个客户的示范分配;图4图示能够根据各种实施例使用的多个资源实例之间的示范分配;图5图示能够根据各种实施例使用的多个客户在单个资源实例上的示范分配;图6图示能够根据各种实施例使用的使用多个资源实例以获得增加的客户承诺的示范分配;图7图示根据一个实施例用于获取保证的服务级别的示范过程;图8图示能够根据各种实施例使用的使用多个资源实例以获得增加的客户承诺的示范分配;图9图示能够根据各种实施例使用的用于获得增加的客户承诺的示范分配,其包括迁移数据卷和在多个资源实例之间分割;

图10图示根据一个实施例组合客户的数据卷的示范分配;图11图示能够利用各种实施例的功能的示范环境。
具体实施例方式根据本发明公开的各种实施例的系统和方法可以克服常规方法中体验的前文所述和其他缺点中的一个或多个缺点以管理电子环境中资源共享和分配的多个方面。例如,各种实施例使得用户能够针对特定资源请求特定的服务质量或处理级别,如每秒输入/输出操作次数(IOPS)的最小和/或承诺的速率。请求的量可以是任何适合的量,其可以小于相应资源提供的总量,从而提供比常规方法下所能达到的更精细的粒度。可以对多个客户
指定单个资源,如数据服务器,其中每个客户潜在地接收保证的服务级别。在各种实施例中,请求单个可用资源无法提供的速率承诺的客户能够让承诺分散在多个资源或资源实例上。每个资源能够具有可接受的保证级别(例如,速率承诺),其可以是该资源上可提供的总量的百分比或部分、可用的全部量或在一些情况中大于总量。因为客户往往将不会使用整个承诺的量(例如IOPS的保证速率),所以某些资源能够拥有高于100%可用容量的资源承诺。此外,还能够向其他客户提供对这些资源的使用。如果资源的小于全部可用容量的容量被承诺来保证服务级别,则其余客户能够共享未承诺的容量。当获保证的客户之一正在使用小于保证的量时,其他客户能够利用此未使用的容量,直到如被保证的客户请求要使用该容量的时间为止。此类方法提高了对未被承诺的客户的服务质量,同时降低了提供保证的服务级别的成本。在某些实施例中,客户能够以与客户的特定性能要求匹配的精细粒度的方式提供资源。例如,如果客户具有需要300I0PS的数据库,则该客户可以以300I0PS的被承诺速率来提供数据卷,且仅为该承诺以及所请求的存储量付费。对于该数据卷,该客户将能够完成在某个时间段上至少平均300I0PS。如果该客户提出平均500I0PS的请求,则系统没有压力时该卷仍可以随着时间的流逝完成每秒500次;但是系统即使处于压力下时仍将随着时间的流逝交付至少被承诺的300的速率。在常规系统中,需要某个IOPS速率的客户通常不得不获取适合数量的物理磁盘并为这些磁盘上的存储量付费。对于典型的工作负荷而言,客户则不得不多购买可观的存储以获得期望的IOPS速率。使用各种实施例的方法,客户能够以常规系统下不可能实现的粒度级别获取对共享存储解决方案的被保证的服务质量。较之购买或租用专用硬件,更精细的粒度能为客户节省可观的成本。根据各种实施例的系统和方法还能够自动地(利用由至少一个计算设备执行的算法和/或适合的逻辑)迁移数据卷、调整资源承诺以及处理其他的与请求速率承诺或其他服务质量级别相关的那样的任务。在一些实施例中,客户可能请求承诺级别的变更,或者系统或服务可能确定要执行承诺级别的变更。根据各种实施例,能够确定各种资源的容量,并且能够自动地调整对客户的承诺,而无需客户调整或更改任何参数、应用等以便实施此变更。根据各种实施例,可以至少部分地根据被承诺的速率或速率的变化来迁移、分割、组合或以其他方式操控数据卷。可以从控制面来管理变更,例如,通过在数据面中执行适当的调用。根据各种实施例的系统和方法可实现对诸如数据存储的资源的管理访问。在至少一些实施例中,这些方法包括提供块数据存储服务,该块数据存储服务使用多个服务器存储系统来可靠地存储可被各种用户、应用、进程和/或服务中的任何一个通过一个或多个网络来访问和使用的块数据。每个块数据存储服务的用户可以创建均具有指定量的块数据存储空间的一个或多个块数据存储卷,并且可以开始通过一个或多个执行程序使用此类块数据存储卷(本文也称为“卷”),其中至少有一些此类卷具有由多个服务器存储系统中的两个或两个以上存储的副本,以便增强对于执行程序的卷的可靠性和可用性。作为一个示例,存储块数据的多个服务器块数据存储系统在一些实施例中可以被组织成一个或多个池或其他组,其中每个具有共处一地理位置处(如共处于一个或多个地理分布的数据中心的每一个中)的多个物理服务器存储系统,并且使用数据中心中的服务器块数据存储系统上存储的卷的程序可以在该数据中心的一个或多个其他物理计算系统上执行。此外,在至少一些实施例中,通过一个或多个网络访问和使用一个或多个此类非本地块数据存储卷的应用可以各具有关联的节点管理器,该节点管理器管理程序对这些非本地卷的访问,如块数据存储服务提供和/或与一个或多个块数据服务(BDS)系统管理器模块协同运行的节点管理器模块。例如,作为块数据存储服务的客户的第一用户可以创建 第一块数据存储卷,并在一个或多个计算节点上执行被指示(例如,以串行方式、以同时或其他叠加方式等)访问和使用该第一卷的一个或多个程序副本。当在计算节点上执行的应用开始使用非本地卷时,该应用可以安装或以其他方式配备对于该计算节点为本地且表示该非本地卷的逻辑块数据存储设备,如允许该执行程序以与连接到该计算节点的任何其他本地硬驱动器或其他物理块数据存储设备相同的方式与该本地逻辑块数据存储设备交互(例如,来执行读和写数据访问请求、在该卷上实现文件系统或数据库或其他更高级别的数据结构等)。例如,在至少一些实施例中,可以通过适合的技术,如GNBD(“全球网络块设备”)技术的使用以使代表性的逻辑本地块数据存储设备可供执行程序使用。此外,当应用与该代表性本地逻辑块数据存储设备交互时,关联的节点管理器可以通过一个或多个网络与存储有关联的非本地卷的副本的至少一个服务器块数据存储系统通信(例如,以对于执行程序和/或计算节点透明的方式)以便代表执行程序对所存储的卷副本执行交互,从而管理这些交互。此外,在至少一些实施例中,用于管理应用和服务对非本地块数据存储卷的访问的所述技术的至少其中一些自动地由节点管理器模块的实施例执行。在至少一些实施例中,还可以将块数据存储卷(或这些卷的部分)存储在与用于存储卷副本的服务器块数据存储系统相异的一个或多个远程归档存储系统上。在各种实施例中,该一个或多个远程归档存储系统可以由(例如,位于远离数据中心或具有共处一处的服务器块数据存储系统池的其他地理位置的位置的)块数据存储服务来提供,或可以由远程长期存储服务提供并由块数据存储来使用,并且在至少一些实施例中,该归档存储系统可以采用块数据以外的格式存储数据(例如,可以将卷的一个或多个数据片(chunk)或部分存储为相异的对象)。在一些实施例中,所描述的技术中至少一些代管理多个程序的执行的程序执行服务而执行,而这些多个程序代程序执行服务的多个用户而执行。在一些实施例中,程序执行服务可以具有多个共处一处的物理主机计算系统的组,并且可以如在程序执行服务(“PES”)系统管理器的控制下,在这些物理主机计算系统上执行用户的程序,正如下文更详细论述的。在此类实施例中,也是块数据存储服务的用户的程序执行服务的用户(例如,付费使用程序执行服务的程序执行服务的客户)可以执行访问和使用块数据存储服务提供的非本地块数据存储卷的程序。在其他实施例中,单个组织可以(例如,以集成的方式,如单个服务的一部分)提供程序执行服务能力和块数据存储服务能力二者其中至少一些,而在又一些其他实施例中,可以在不包含程序执行服务(例如,在支持该组织的运行的公司或其他组织内部)的环境中提供块数据存储服务。此外,在各种实施例中,程序执行所在的主机计算系统可以具有各种形式。多个此类主机计算系统可以例如共处于一物理位置(例如,数据中心),并且可以由各与一个或多个主机计算系统的子集关联的多个节点管理器模块来管理。主机计算系统的至少一些可以各包括足够的计算资源(例如,易失性存储器、CPU周期或其他CPU使用率测量、网络带宽、交换空间等)以同时执行多个程序,并且在至少一些实施例中,计算系统的其中一些或全部可以各具有可用于存储要执行的程序的本地副本和/或此类程序要使用的数据的一个或多个物理上连接的本地块数据存储设备(例如,硬盘、磁带驱动器等)。此外,在一些此类实施例中,主机计算系统的其中至少一些可以各寄存多个虚拟机计算节点,这些虚拟机计算
节点各可以代相异的用户执行一个或多个程序,其中每个此类主机计算系统具有为该主机计算系统管理虚拟机的执行超级监管器或其他虚拟机监视器。对于执行多个虚拟机的主机计算系统,该主机计算系统的关联的节点管理器模块在一些实施例中可以在多个寄存的虚拟机的至少其中之一上执行(例如,作为主机计算系统的虚拟机监视器的一部分或与之协同),而在其他情况中,节点管理器可以在与正在管理的一个或多个其他主机计算系统相异的物理计算系统上执行。在各种实施例中,存储卷的服务器块数据存储系统也可以具有各种形式。在至少一些实施例中,服务器块数据存储系统的其中一些或全部可以是与执行程序的主机计算系统相似的物理计算系统,并且在一些此类实施例中,可以各执行服务器存储系统软件以协助在这些服务器存储系统上提供和维护卷。例如,在至少一些实施例中,例如如果通过多个交互服务器块数据存储计算系统以分布对等方式提供一个或多个BDS系统管理器模块,则此类服务器块数据存储计算系统的其中一个或多个可以执行BDS系统管理器的至少其中一部分。在其他实施例中,例如,如果通过其他远程物理计算系统(例如,通过在一个或多个其他计算系统上执行的BDS系统管理器模块)来执行在这些服务器存储系统上提供和维护卷的至少其中一些工作,则服务器块数据存储系统的其中至少一些可以是可以没有一些I/O组件和/或物理计算系统的其他组件的网络存储设备。此外,在一些实施例中,至少一些服务器块数据存储系统各维护多个本地硬盘,且跨越在一些或全部本地硬盘的其中每个的部分将至少一些卷分段。此外,可以使用各种类型的技术来创建和使用卷,在一些实施例中包括使用LVM (“逻辑卷管理器”)技术。在至少一些实施例中,一些或全部块数据存储卷各具有存储在两个或更多个相异服务器块数据存储系统上的副本,以便增强这些卷的可靠性和可用性。由此,单个服务器块数据存储系统的故障不会导致执行程序对卷的访问丢失,因为这些执行程序对该卷的使用可以被切换到具有该卷的副本的另一个可用服务器块数据存储系统。在此类实施例中,可以采用各种方式在多个服务器块数据存储系统上的多个卷副本之间保持一致性。例如,在一些实施例中,将服务器块数据存储系统的其中之一指定为存储卷的主副本,并且在此类实施例中,将其他一个或多个服务器块数据存储系统指定为存储该卷的镜像副本。具有主卷副本的服务器块数据存储系统(也称为卷的“主服务器块数据存储系统”)可以接收并处理对该卷的数据访问请求,并且在一些此类实施例中,还可以采取措施保持其他镜像卷副本的一致性(例如,在主卷副本中的数据被修改时,向提供镜像卷副本的其他服务器块数据存储系统发送更新消息,如采用主从计算关系的方式)。可以使用各种类型的卷一致性技术,下文将包含其附加的细节。除了通过在服务器块数据存储系统变得不可用时移动或以其他方式复制卷副本来保持执行程序对块数据存储卷的可靠且可用的访问外,块数据存储服务还可以在其他情况中执行其他操作来保持执行程序对块数据存储卷的访问。例如,如果第一执行程序意外地变得不可用,则在一些实施例中,块数据存储服务和/或程序执行服务可以采取措施以使不同的第二执行程序(例如,在不同主机计算系统上执行的同一程序的第二副本)连接到不可用的第一程序使用的一些或全部块数据存储卷,以便第二程序能够快速地接管不可用的第一程序的至少一些操作。在一些情况中,第二程序可以是其执行因现有的第一程序不可用而启动执行的新程序,而在其他一些情况中,第二程序可以已经在执行(例如,如果多个程序副本在并发执行以分摊总工作负荷,如接收按负荷平衡器调解的不同进入客户端请 求的多个Web服务器程序,其中多个程序副本的其中之一被选作第二程序;如果第二程序是正在执行的程序的备用副本以便允许在不可用情况下从现有第一程序“热”交换,如在现有第一程序的不可用发生之后,备用程序副本才会被激活地使用;等等)。此外,在一些实施例中,现有卷的连接和当前使用被切换到的第二程序可以位于与第一程序相同的地理位置(例如,相同的数据中心)中的另一个主机物理计算系统上,而在其他实施例中,第二程序可以位于不同的地理位置处(例如,不同的数据中心,如与先前或同时移到该其他数据中心且将被该第二程序使用的卷的副本一起)。此外,在一些实施例中,可以采取其他相关措施以进一步促进向第二程序切换,如通过将原本目标为不可用的第一程序的一些通信重定向到第二程序。正如先前提到的,在至少一些实施例中,一些或所有块数据存储卷各具有存储在位于一个地理位置处的两个或两个以上相异服务器块数据存储系统上的副本(如在执行程序将通过定位在同一数据中心或其他地理位置的所有卷的副本和执行程序来访问卷所在的同一个数据中心中),可以保持多种期望的数据访问特征(例如,基于该数据中心或其他地理位置处的一个或多个内部网络),如时延和吞吐量。例如,在至少一些实施例中,所描述的技术可以提供对非本地块数据存储的访问,其具有与本地物理块数据存储设备的访问特征相似或更佳的访问特征,但是具有类似于或超过RAID (“独立(或低成本)磁盘的冗余阵列”)系统和/或专用SAN (“存储区域网络”)的可靠性特征的更大可靠性以及远远较低成本。在其他实施例中,代之可以采用其他方式存储至少一些卷的主副本和镜像副本,如存储在不同地理位置(例如,不同的数据中心),以便如即使整个数据中心变得不可用的情况下仍进一步保持卷的可用性。在可以将卷副本存储在不同地理位置处的实施例中,在一些情况中用户可能请求特定程序应在特定卷附近(例如,在主卷副本所在的同一个数据中心处)执行,或特定卷因位于特定执行程序附近,以便如为执行程序与主卷副本之间的通信提供相对较高网络带宽和相对较低时延。此外,在一些实施例中,可以基于费用或其他付费方式向至少一些用户提供对所描述技术的一些或全部的访问。例如,用户可以支付一次性费用、周期性(例如,月付)费用和/或一种或多种类型的基于使用的费用以使用块数据存储服务来存储和访问卷、使用程序执行服务来执行程序和/或使用(例如,由远程长期存储服务提供的)归档存储系统来存储卷的长期备份或其他快照副本。费用可以基于一个或多个因素和活动,如下列非排他性列表中指示的基于卷的大小,以便创建卷(例如,按一次性费用)、拥有卷的当前存储和/或使用(例如月费)等;基于卷的非大小特征,如镜像副本的数量、存储主卷副本和/或镜像卷副本的服务器块数据存储系统的特征(例如,数据访问速率、存储大小等)和/或创建卷的方式(例如,为空的新卷、作为现有卷的副本的新卷、作为快照卷副本的副本的新卷等);基于快照卷副本的大小,如为了创建快照卷副本(例如,按一次性费用)和/或拥有卷的当前存储(例如月费)等;基于一个或多个快照卷副本的非大小特征,如单个卷的快照数量、快照副本相对于一个或多个先有快照副本是否为增量等;基于卷的使用,如传送到卷和/或从卷传送的数据的量(例如,来反映所使用的网络带宽的量)、发送到卷的数据访问请求的数量、连接到并使用卷的执行程序的数量(无论是顺序地还是并发地)等;基于传送到快照和/或从快照传送的数据的量,如以与针对卷的方式相似的方式;等等。此外,在多种实施例中,所 提供的访问可以具有多种形式;如,一次性购买费用、当前租借费用和/或基于另一种当前订费。此外,在至少一些实施例和情况中,第一组一个或多个用户可以在收费的基础上向其他用户提供数据,如为了向接收对第一组的一个或多个用户创建的当前卷和/或历史快照卷副本的访问(例如,通过允许他们制作作为卷的副本和/或快照卷副本的副本的新卷;通过允许他们使用一个或多个已创建的卷;等等)的其他用户收费,无论是一次性购买费用、当前租借费用,还是基于另一种当前订费。在一些实施例中,可以由块数据存储服务、程序执行服务和/或远程长期存储服务来提供一个或多个应用编程接口(API),如为了允许其他程序通过编程方式启动要执行的各种类型的操作(例如,按其他程序的用户所指令的)。此类操作可以允许调用先前描述的类型的功能性的其中一些或全部,并且包括但不限于如下类型的操作创建、删除、连接、断开或描述卷;创建、删除、复制或描述快照;指定卷和/或快照的访问权或其他元数据;管理程序的执行;提供付费以获取其他类型的功能性;获取有关一个或多个服务的功能的使用和/或有关为此使用支付或欠下的费用的报告和其他信息;等等。通过API提供的操作可以被诸如程序执行服务的主机计算系统上的执行程序和/或被块数据存储服务和/或程序执行服务使用的一个或多个地理位置外部的客户和/或其他用户的计算系统调用。图I图示根据多种实施例的示范网络配置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可以用来共享卷数据(例如,为了复制卷的副本和/或保持卷的主副本与镜像副本之间的一致性)的高带宽连接,其中在至少一些此类实施例中,此类高带宽连接对于多种主机计算系统不可用。应认识到的是,出于解释的目的,图I的示例已被简化,并且主机计算系统、服务器块数据存储系统和其他设备的数量和组织可能比图I所示的规模大很多。例如,作为一个说明性实施例,每个数据中心可以有约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可以对应于图I的计算系统124,图I的节点管理器模块108和112的其中一个或多个可以对应于图2的节点管理器模块210,和/或图2的服务器块数据存储计算系统220的其中一个或多个可以对应于图I的服务器块数据存储系统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,这使客户能够指定允许他们指定以分配的存储的量,例如介于IGB与ITB之间按IGB递增的值。控制面的组件(如BDS系统管理器模块)可以在数据面中调用以从可用资源分配期望的存储量,并且能够向客户提供该数据卷的标识符。在一些实施例中,客户从而就能够使用操作系统为硬盘驱动器和类似存储设备提供的方案,调用“AttachVolume”或类似API,其中客户为诸如实例标识符、卷标识符和设备名称的参数提供值,具体取决于如实例的操作系统的因素,从功能性和命名的视角来看,该调用从物理硬盘驱动器与从实例内一样无明显差异。一旦客户将数据卷连接到提供的实例,客户就能够执行多种功能性,如构建文件系统,如数据系统的原始存储一样使用或通常情况下利用常规存储设备执行的任何其他此类活动。当客户不再需要该数据卷时,或出于任何其他适合的原因,客户可以调用“DetatchVolume”或类似API,这可以使得该实例与该卷的关联性被移除。在一些实施例中,客户然后就能够连接新实例或执行任何多个其他此类活动。因为在一些实施例中,该数据 卷将无法独立于实例,所以如果当前关联的实例出现故障,则客户能够将卷连接到新实例。在某些方法中,请求数据卷的客户无法选择或请求特定类型的卷或特定类型的性能。客户通常被授权一定存储量,并且性能遵循“尽力服务”类型的方法,其中基于请求时的容量、负荷和系统的其他此类因素来执行客户请求。对于每个客户,通常按每个单位尺度金额相同的方式收费,如每月每千兆字节的存储量相同美元金额,以及每月每次I/O请求相同的金额,并按如每月百万请求的增量计以一定金额费用。
但是,正如上文论述的,此类方法在如实例等待要处理的请求的数量超过处理这些请求的实例的能力的情况下可能构成问题。即使客户位于该客户的期望或分配的请求次数内,而向该实例提交请求的其他客户仍可能超过他们的分配,从而产生过载情况,其中该实例的数据服务器可能开始将压力推回给进入请求以便降低进入请求的速率,并使系统能够从过载情况恢复。因此,设备上具有待处理请求的每个客户可能体验到请求处理速率(“请求速率”)的下降,以及如可用存储的下降的其他问题。根据多种实施例的系统和方法通过使得每个客户能够指定一个或多个承诺的请求速率或其他性能保证来使客户能够确保最低性能级别。除了最小存储量外,每个客户还可以购买承诺的操作速率,如特定的每秒输入/输出(I/o)操作的次数(I0PS)。在先前的系统中,通过将整个机器专用于客户连同专用的带宽等来获得性能保证,这常常是过度的。本文论述的实施例能够让客户按任何适合的粒度级别来购买性能保证。通过管理客户在多种资源上的性能分配,根据多种实施例的系统和方法能够使客户按如1I0PS与5,000I0PS之间的任何适合的级别来购买具有IOPS保证的卷。通过分配部分的磁盘、磁 盘主轴和其他此类资源,系统能够向客户提供保证的存储和/或IOPS级别。根据多种实施例的系统和方法使用户能够共享资源,从而能够按常规解决方案下不可能的粒度级别对这些资源提供特定的保证或承诺。在多种情况中,客户可能期望指定最小处理速率,如最小每秒I/O操作次数(I0PS)。根据多种实施例的方法能够承诺按至少承诺的性能级别提供所需的期望数量的服务器和其他资源。通过对性能级别的承诺,客户能够接收到不受共享设备或资源的其他客户的性能影响的一致性服务质量级别。即使在过载情况中,该客户仍能够接收到至少保证的级别的服务。保证的服务量可以取决于多种因素,以及客户指定并为其付费的量。例如,图3图示示范分布300,其中在若干客户中间分配服务器302的处理容量。在本示例中,确定服务器具有约500I0PS的容量。此值可以是估算值或平均值,并且可以基于监视的性能或其他此类信息随时间推移确定或调整。虽然在一些实施例中可以分配全部500I0PS,在其他实施例中,可能期望仅分配总容量的阈值量、百分比或其他部分作为保证。因为每个请求的处理时间可能变化,所以任何给定时间的IOPS的数量也可能变化,从而分配全部500I0PS可能导致短暂时间期间由于正在处理请求的性质等原因实际性能约为450I0PS时客户无法接收到对他们的保证。在本示例中,系统可能能够分配500I0PS中的最多400可用于服务器302。正如可见到的,客户A已获分配承诺的200I0PS,客户B已获分配承诺的100I0PS,且客户C已获分配承诺的55I0PS。服务器上的其余客户则能够利用“尽力服务性能”或类似方法共享剩余的145I0PS (平均来说)。共享剩余IOPS的客户的数量可以基于多种因素来选定或限制,以使其余客户仍能够在大百分比的时间里获得满意的性能级别。但是,在许多情况中,客户A、B和C将不会都利用他们的全部承诺的容量。这些客户的每一个可能付费保证一定级别的性能,以使该级别在需要时可用,但通常实际上将不在接近该峰值容量的情况下运行。在此情况中,其余的客户D-Z实际能够共享多于剩余的145I0PS的速率,因为这些客户能够利用承诺的IOPS中当前未使用的可用容量。这提供另一个优点,因为客户能够接收到保证的性能级别,但是这些级别未完全被利用时,余下的容量能够被用于服务于其他客户请求。这种方法使得普通客户(无保证)接收到提高的性能,而无需提供商购买额外的容量或在很大部分时间提供未被利用的容量。在一些实施例中,客户A-C中的任一个可能超出其性能保证。例如,客户A可能一段时间期间提交约250I0PS的请求。对于承诺的速率以上的50I0PS,在一些实施例中,这些请求可以被视为正常请求,并按与客户D-Z的请求相同的性能级别来处理。在过载情况中,则可以将任何处理中的瓶颈、减速或其他下降应用于不受保证限制的145左右的I0PS。对客户A、B和C的保证级别将不受影响,因为过量流量调整是针对非承诺的部分而进行的。相应地,对于具有非保证服务级别的客户可以按每次请求、每个时间段等的较低价格收费。在其他实施例中,当客户A-C中任一个超出其性能保证时,客户可能接收到“混合的”或其他级别的服务。在客户的每个请求被个别地或无前后关联地处理,使得超出承诺的速率的任何单个请求可被作为无承诺的速率的请求来处理的情况中,可能存在对该客户的其他请求的负面影响。例如,如果客户A拥有250I0PS的承诺速率并在一个时间点上一秒内发出251个请求,则超出速率承诺的该单个请求可能比其他请求处理得慢很多,如用20ms而非Ims处理。如果客户应用期望约Ims的性能级别而对于一个请求体验到减速,则这可能也影响其他请求的处理,并且即使客户仅在短暂时间期间稍微超出阈值,仍可能导致对 该应用的显著减速或其他问题。根据多种实施例的系统和方法通过向具有速率保证而又超出这些保证的客户提供“加速”或混合的速率,这样提供介于承诺的速率与非承诺的速率之间的服务级别。例如,具有速率保证的客户可能有置于非承诺的请求的“队列”前面或与之接近的任何过量请求。在其他实施例中,该客户可能接收到这些请求的较低速率承诺,如可能体验到约5ms的延迟,这并非以承诺的速率内的请求相同的速率来得到处理,但是比没有承诺的速率的客户更快地得到处理。在一些实施例中,可以将延迟的量与超额的量以及客户在获保证的速率之上的时长相关,以提供至少某种程度与超额的量成比例的相对均匀的性能下降。例如,具有100I0PS的保证的速率而一直以每秒500次的速率发送请求的客户可能不会接收到与具有250I0PS的保证的速率且偶尔因少数请求超限的客户一样的加速。在一些实施例中,可以向客户提供针对任何超额的相同的速率,但是可以对每个此类请求收取额外的费用。在多种实施例的范围内,许多其他变化也是可能的。为了管理承诺,控制面的组件可以实质上对数据面中的特定服务器或其他资源设置预留。在图3中,其中三个客户需要总共承诺的355I0PS,控制面可以例如对一个服务器预留该级别,并将余下的分配给该服务器上获提供资源的任何其他客户。控制面还可以确保由于空间限制、需要产生的I/O的数量或任何其他此类因素,不会将比服务器处理能力更多的卷分配到服务器。在一些情况中,客户可能需要超出对给定资源的“可承诺”容量的保证的服务级另O。例如,图3中说明服务器能够分配400I0PS但其中355已分配给客户A-C。如果另一个客户需要300I0PS,则该数值将超过服务器允许的数量(以及平均容量)。因此,客户无法在该服务器得到期望的承诺。但是,使用控制面的管理组件,可以跨多个服务器分配承诺速率。例如,在图4的分配400中,示出客户A从用户设备402发送请求300I0PS的保证的请求。在一些实施例中,控制面可以搜索可用的服务器以确定服务器是否有300I0PS剩余可用于给予保证。如果没有,则控制面可以尝试将IOPS分散在尽可能少的服务器上。在此情况中,控制面确定将IOPS保证分配到三个服务器上,其中第一服务器404提供100I0PS的保证,第二服务器406提供125IOPS的保证,并且第三服务器408提供75IOPS的保证。因此,卷无需像许多常规系统中那样驻留在单个服务器上,而是可以将其在多个服务器上分区。跨多个服务器的分配还使客户能够利用更大的数据卷,如50万亿字节而非I万亿字节,因为数据能够被分散在多个服务器上。在此类实施例中,客户可以购买IGB与50TB之间的存储,例如按期望的承诺速率,如OIOPS和5000I0PS之间的速率。基于客户选定的这些值的其中一个或多个值,控制面可以确定适合的(如果不是最优的)方式使用数据面中的可用资源提供这些保证。在一些实施例中,可以对承诺的速率分配服务器的容量的最高100%。可以预测和/或监视非承诺使用的量,使得可以将多个客户分配到已完全承诺的资源,只要这些客户愿意仅在资源变得可用时取用它们即可。某些客户可能并不关心具体来说对于某些写操作何时发生I0PS,使得在获知一些客户可能将不会利用其全部获保证的级别的情况下,他们愿意支付较低的费率来利用获得最高100%保证的资源。这种方法帮助提供商通过在以其他方式被“完全”承诺的资源上分配非承诺的IOPS来最大化每个资源的利用。此外,不同类型的客户将有不同的需求。例如,如果磁盘具有100TB的空间且 100I0PS的容量,则第一客户可能需要存储很少访问的90TB的度假照片。该客户可能有兴趣购买90TB存储空间连同非承诺级别的IOPS。另一个用户可能需要将会持续使用的ITB数据库,从而该用户可能需要约100I0PS。在本示例中,可以向第一客户出售90%的存储空间,并且可以对另一个客户分配磁盘的90% (或更多)IOPS作为承诺。由于客户的性质,可以在同一个磁盘上向他们二者提供资源,其中在其他情况下他们可能各需要专用的磁盘。使其他人能够利用对客户已承诺的分配中的未使用部分也能够使得该客户获益,因为该客户可能无需对完整分配付费,并且因此能够接收到低于专用资源所需的成本。此夕卜,客户仍将接收到被保证的服务级别。当客户处于全承诺级别时,该设备上的其他客户将需要降低其请求速率或每次请求需要等待更长时间。在一些实施例中,可以完全承诺资源,并且仍可以在该设备上向其他用户提供资源以利用该资源的未使用部分。在其中准确地预测和监视支持这种使用的一些情况中,甚至可以对资源承诺超过100%,其中分配的客户的实际使用将几乎从未等于或超过100%的使用率。在此类实施例中,在资源被过载的不可能事件的情况中可以有能够偶尔处理任何超额的其他资源。为了就新资源(或资源的新实例)作出承诺,可以使用某些缺省信息来作出承诺。使用相对保守的数值作为缺省值可能是令人期望的,以便防止将资源过度承诺。例如,控制面组件可以使用特定类型的每个磁盘主轴可以处理100-120I0PS的通用缺省信息。如果每个服务器有十二个主轴,则每个服务器可以有约1200-1440I0PS可用。控制面组件可以在最初是保守的,并且可以分配第一量,如最高400I0PS,直到获得有关资源的性能和使用情况的更多信息。在某些示例中,客户利用率约为10%,从而在许多情况中,客户仅使用可用IOPS的10%。由此,将40%专用于保证的IOPS仍将比实际使用情况多四倍,并且因此可能仍是保守的数值。数据面中的每个服务器可以跟踪该服务器上的可用空间的量,并且可以存储对该服务器承诺的IOPS的数量。因此,当要创建新卷时,控制面组件可以确定服务器在该400I0PS中具有该服务器愿意对该卷承诺的足够可用容量。一个实施例中的方法是随机地或以特定次序查询服务器,它们是否能够取得特定数量的I0PS,并且持续此操作直到找到能够接受该IOPS的服务器为止。但是,当该信息也被存储在控制面中时,控制面可以首先选择适合的服务器,然后联系该服务器以取得该卷。在一些情况中,具有承诺的IOPS速率或其他资源承诺的客户可能期望或需要调整该速率。例如,客户应用可支持附加的用户或可将附加的功能性推送到云上。在另一个示例中,当客户不再需要当前承诺的容量时,客户可能期望减少承诺的IOPS的数量。在又一个示例中,客户可能在峰值使用期间想要较高承诺的速率,而在其余时间期望较低的承诺速率。也可能出现多种其他情况,其中客户可能期望更改承诺的速率。正如所论述的,许多常规系统要求需要更大承诺的速率的用户购买或以其他方式获得附加的硬件,这对于用户常常是不合算的,并且可能获取、安装和/或激活要花费相当多的时间。相似地,需要较低承诺的用户常常受困于已经购买的硬件,或需自行尝试转售该硬件以便弥补一些支出。根据多种实施例的系统和方法使速率承诺能够响应客户请求、建立的阈值、使用情况变化或多种其他此类条件或输入中任一个被动态地调整。该系统能够按需自动地调整 资源,如为了提供或分配附加的资源、添加或移动数据卷、将客户分散到多个资源上或本文描述和建议的多种其他此类操作的任何一种。多种实施例中的系统包括可工作以监视数据环境中的资源的使用情况以及基于建立的条件调整资源的利用的至少一个监视组件。控制面还可以包括一个或多个接口(例如,Web服务API),以使客户能够请求特定变更或建立进行此类变更时使用的条件。在多种实施例的范围内,还可以使用多种其他方法。图5图示示范情况500,其中四个不同客户中每一个客户拥有对公共服务器502的保证的速率。在本示例中,服务器具有400I0PS的(可承诺)速率容量,并且每个客户拥有100I0PS的被承诺的速率。正如上文论述的,在多种实施例中,许多客户未利用其全部被承诺的分配,从而可以承诺服务器的全部容量,因为这些客户中一个或多个客户的任何超额可以有可能地使用承诺给其他用户中的一个或多个用户的未使用容量来处理。但是在某些情况中,可能期望调整对利用该服务器的客户的至少其中之一提供速率承诺的方式。如果例如其中这些客户的其中之一需要更高速率承诺,则服务器上没有足够的可承诺容量用于支持更高的速率。在此类情况中,可以自动地将需要附加速率承诺的数据卷迁移到另一个服务器,而无需客户方面知道或采取任何措施。在第一示例600中,如图6所示,图5中的客户A要接收从100I0PS到200I0PS的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的原100I0PS仍由服务器X 502提供。但是,对于附加的100I0PS,将附加的请求分配到第二服务器,S卩服务器Y 802。在本示例中,第二服务器实例处理其他客户的请求,但是具有处理客户A的附加分配的足够可用和可承诺容量。正如上文论述的,在一些实施例中,可以通过分析控制面的数据存储中存储的数据以查找提供附加承诺的速率的适合服务器来选择第二服务器实例。在其他实施例中,可以个别地联系多个服务器,直到找到至少能够接受对客户的附加资源承诺的服务器。在一些情况中,请求的承诺增加无法由单个资源实例提供。例如,接着图5的初始起点,每个服务器只能承诺400I0PS。如果客户A需要从100I0PS增加到600I0PS,则承诺的速率将无法由单个资源来提供。因此,如果原100I0PS继续由第一服务器实例502来提供,则需要至少两个附加的资源实例。但是,在一些实施例中,基于如减少管理复杂性和映射等原因,期望的是将客户划分或分配在尽可能少的资源上。图9图示示范分配900,其中从服务器X 502移除客户A的请求,并将数据卷迁移和拆分,并将全部承诺的速率指定在两个资源实例上。虽然其他相关分配也可以被使用并且也应当很明显,但这里将400I0PS指定到服务器Y 902,并且将200I0PS指定到第三资源实例服务器Z 904。通过从第一资源实例502移动初始请求,系统能够使用两个资源实例而非三个来提供所请求的速率承诺。 正如应该显见到的,基于多个类似原因的任何一个,给定用户的速率承诺还可能减少。因此,可以实质上采用相反的方式使用上文用于增加承诺的方法的其中至少一些来减少承诺。例如,在图6中其中用户具有均匀地分拆在两个资源实例上的200I0PS,如果用户的速率降低到100I0PS,则系统可以选择任一个实例以保持100I0PS承诺并允许另一个释放承诺。如果速率下降到大于在这两个服务器其中之一上可提供的100I0PS的级别,如150I0PS的速率,则系统可以将100I0PS置于一个服务器上,并且将另外的50I0PS置于当前第二服务器上,或者将这些IOPS移到具有约50I0PS的第三服务器上,以便更充分地利用第三服务器并增加第二服务器上的可用容量。在图9的情况中,用户从服务器X上的100I0PS移到服务器Y上的400I0PS和服务器Z上的200I0PS。如果用户移回到200I0PS或400I0PS,则系统只需利用已经具有分配给客户的该量的服务器,并释放另一个服务器上的承诺。如果用户下降到100I0PS,则系统可以将服务器Y或Z上的分配减少到100I0PS,或如果服务器X仍具有100I0PS可用,则可以将客户移回到服务器X,以便将服务器X的利用率最大化并且将服务器Y和Z上的可用容量最大化。在其他情况中,系统可以决定将客户移到具有最接近地匹配期望的IOPS级别的容量的再一个服务器(未不出)。除了在调整容量时移动、合并或以其他方式管理现有资源外,根据多种实施例的系统和方法还可以监视可用资源中的改变,并响应这些改变来更新资源分配。例如,图10图示其中客户具有400I0PS的承诺的速率的示范分配1000。使用三个不同的服务器1002、1004,1006来提供承诺的速率。在一些实施例中,系统可以检测何时资源实例变得可用,如服务器Z 1008示出具有400I0PS的可承诺容量。某些实施例中的系统可以分析现有分配以尝试将现有客户合并到更少的设备和/或实例上,而不是将新客户请求分配到新近可用的资源实例。在本示例中,确定服务器Z 808具有400的可用I0PS,并且客户A具有分散在三个服务器上的400I0PS的被承诺的速率。为了尽可能多地合并,系统可以决定利用服务器Z来为客户A提供所有400I0PS。这种方法可以帮助降低管理和映射多种资源实例的复杂性等,正如上文论述的。将客户合并到较少的设备上的决定可以由多个事件中的任何一个触发。在一些实施例中,控制面可以周期性地与每个资源实例通信以便确定何时可用容量中变化使得合并可能。在一些实施例中,当资源实例的承诺有减少时,如当用户降低被承诺的速率或不再利用该资源时,则可以在控制环境的任务队列中建立一个任务来检查Admin数据存储或其他位置中的承诺,确定是否可能进行任何合并。无论何时,只要在数据环境中提供新的资源实例,则可以利用相似的方法,如为了在控制环境中存储新记录。还可以使用多种其他方法,如为了周期性地分析控制环境中存储的承诺信息以确定可能的合并方法。但是,在用户仅需要临时增加或减少承诺的情况中,系统可能不会决定合并,以便最小化数据的复制、映射更新等。因此,在多种实施例中可以利用某些条件(例如,承诺使用情况、当前承诺级别的时间长度等)来确定是否要合并用于任何给定用户的资源。正如所论述的,在多种实施例的范围内,可以基于多个类似原因中的任何一个,分配不同的承诺级别或迁移数据卷。例如,客户可能明确地请求资源承诺的变更,如向管理系统的适合API发送Web请求。客户还可以联系能够代客户提交此类请求的管理员或其他授权用户。在多种实施例中,可以至少部分地由于数据面中的资源的多个不同方面的任何一个以及这些资源的使用情况中检测到的变化而进行调整。例如,特定资源实例可能在比可 接受的时间更长的时间中处于过载情况,如该特定资源实例可能基于指定的条件或阈值。在此类情况中,系统可以决定将至少一个客户移到不同的实例,以便减少经常过载资源实例上的平均负荷。在其他实施例中,客户可能频繁超过承诺的速率,使得系统可以决定将该客户的数据卷迁移到具有更大容量的资源。在一些实施例中,系统可以自动地调整对多个不同用户的速率或其他资源承诺。例如,客户可能愿意在不同时间为不同级别的承诺付费,但是可能不愿在客户未在使用多少承诺的容量时为最高承诺速率付费。在一个这种实施例中,客户可以选择能够用于多个不同时间的承诺速率的两种或两种以上级别、层次或其他值。例如,如果承诺的速率被用到容量的至少75%,则客户可能愿意为最高500I0PS的承诺的速率付费。如果一段时间使用率小于75%,则承诺的速率可以下降到较低的值,如350I0PS的承诺的速率。速率可以保持在350I0PS,直到一段时间内使用率下降到350I0PS的75%以下,在此期间,速率可调整到200I0PS,或直到一段时间内使用率上升到承诺的速率的至少110%,在此时间,承诺的速率可调整回500I0PS。提高或降低承诺的速率所需的时间段可以是不同的,因为例如客户可能偏好于拥有尽可能大的用于请求的承诺的速率或只在绝对必要时才为更高承诺的速率付费。此外,在多种实施例的范围内,可以有任何适合的阈值、层次的数量、可能的速率或其他此类值。在一些实施例中,可以将速率承诺的增加与客户的I/O请求的处理性能相联系。例如,具有指定承诺速率的客户,只要其I/o请求还在以及时的方式被处理,则可能不希望增加速率。正如所论述的,只要资源上有足够未被承诺的容量或有未使用的已承诺的容量,则可以及时的方式处理过量的请求。例如,如果资源进入过载情况,则过量的请求无法以及时的方式处理,且可能将其减速以便尝试从过量负荷恢复。客户可以在此情况中对系统授权以自动地在同一个资源或不同的资源上增加承诺的速率,以便确保来自该客户的后续请求及时地被处理。相似地,可以监视多种资源的使用情况,以便在存在容量的情况下,客户可以自动地降低到较低承诺的速率,只要任何过量请求将可能无显著延迟地被处理即可。
通过按变化的粒度提供承诺,提供商能够提供多种不同定价方案。例如,用户可以为每个承诺的IOPS支付某个金额,如为每个保证的IOPS支付O. 30美元,而无论用户实际是否使用该金额。因此,如果用户购买一个月100I0PS的承诺,则该用户将支付30美元,而无论实际使用与否,因为用户是为承诺付费。还可以使用多种其他定价方法,如多种层次化定价方案。在其他实施例中,用户可以对一级别承诺的IOPS支付额外费用,但是该金额可以被其他用户利用其未使用的承诺的金额抵扣。例如,用户可以为一个月100I0PS支付30美元,但是如果平均其他用户利用了分配给该客户的承诺的IOPS的25,则该客户可以得到如每IOPS O. 05美元的减价,总计月费为25美元。如果在特定时间期间调整费率,则对客户的计费可以反映该期间分配的不同费率。正如所论述的,客户也可以仔细检查其被承诺的量。在多种实施例的范围内,还可以对这些额外IOPS使用多种定价方法。在一个实施例中,对于过量I0PS,以与没有被承诺的IOPS的任何客户相同的价格对客户收费(例如,每IOPS O. 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服务器和业务应用服务器。服务器还可以能够响应来自用户设备的请求执行程序或脚本,如执行可以作为以任何编程语言(如Java 、C、c#或C++)或任何脚本语言(如Perl、Python或TCL)及其组合编写的一个或多个脚本或程序来实现的一个或多个Web应用。服务器还可以包括数据库服务器,包括而不限于可从Oracle 、Microsoft 、Sybase 和IBM 以商业渠道获取的那些数据库服务器。该环境可以包括多种数据存储和其他存储器和存储介质,正如上文论述的。它们可以驻留在多个不同位置,如在这些计算机的其中一个或多个本地(和/或驻留在其中)的存储介质或在网络上对于任何一个或全部计算机为远程的存储介质。在一组特定实施例中,信息可以驻留在本领域技术人员熟知的存储区域网络(“SAN”)中。相似地,可以在适合的情况下,将用于执行属于这些计算机、服务器或其他网络设备的功能的任何必需文件存储在本地和/或存储在远程位置。在系统包括计算机化设备的情况中,每个此类设备可以包括经由总线电稱合的硬件元件,这些元件包括例如至少一个中央处理单元(CPU)、至少一个输入设备(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出设备(例如,显示设备、打印机或扬声器)。此类系统还可以包括一个或多个存储设备,如磁盘驱动器、光存储设备和固态存储设备(如随机存取存储器(“RAM”)或只读存储器(“ROM”)),以及移动介质设备、存储卡、闪存卡等。
此类设备还可以包括计算机可读存储介质读取器、通信设备(例如,调制解调器、网络卡(无线或有线)、红外线通信设备等)和如上所述的工作存储器。该计算机可读存储介质读取器可以与计算机可读存储介质连接或配置成接纳计算机可读存储介质,该计算机可读存储介质代表用于临时性地和/或永久性地包含、存储、传送和检索计算机可读信息的远程、本地、固定和/或移动存储设备以及存储介质。该系统和多种设备通常还将包括位于至少一个工作存储器设备内的多个软件应用、模块、服务或其他元件,包括操作系统和应用程序(如客户端应用或Web浏览器)。应该认识到,备选实施例可以具有源自上文所描述的多种变化。例如,还可以使用定制的硬件和/或可以在硬件、软件(包括便携式软件,如applet)或这二者中实现特定元件。此外,可以采用至其他计算设备(如网络输入/输出设备)的连接。用于包含代码或代码的部分的存储介质和计算机可读介质可以包括本领域中众所周知或使用的任何适合的介质,包括存储介质和通信介质,如但不限于以用于存储和/或传输如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、移动和不可移动介质,包括RAM、ROM、EEPR0M、闪存或其他存储技术、 CD-ROM、数字多功能光盘(DVD )或其他光存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备或能够用于存储期望的信息且能够被系统设备访问的任何其他介质。基于本文提供的发明公开和教导,本领域技术人员能够认识到用于实现这些多种实施例的其他方式和/或方法。因此,本说明书和附图应视为说明性意义的而非限制性意义的。但是,将显见的是在不背离权利要求中提出的本发明的更宽精神和范围的前提下可以对其进行多种修改和更改。条目I. 一种用于调整共享的计算资源的使用的计算机实现的方法,其包括在配置有可执行指令的一个或多个计算机系统的控制下,接收客户的对于一种类型的资源调整的承诺的请求速率的请求,所述客户具有所述类型的资源的当前承诺的请求速率,所述请求能够指定与所述类型的资源的一个或多个实例的容量中任何部分对应的承诺的请求速率;如果所述调整的承诺的请求速率小于所述当前承诺的请求速率,则自动地为所述客户降低用于所述类型的资源的至少一个实例的所述承诺的请求速率;如果所述请求涉及提高所述承诺的请求速率,则自动地承诺所述类型的资源的至少一个实例的可用可承诺速率容量中的至少一部分以获取所述调整的承诺的请求速率;以及为所述客户存储所述调整的承诺的请求速率的信息,以便在管理所述客户的请求处理的速率时使用。条目2.如条目I所述的计算机实现的方法,其中降低所述承诺的请求速率包括,当更少数量的实例即可用于提供所述承诺的请求速率时,减少为所述客户提供所述承诺的请求速率的所述类型的资源的实例的数量。条目3.如条目I所述的计算机实现的方法,其中提高或降低所述承诺的请求速率包括,自动地将至少一个请求处理承诺移到为所述客户提供所述承诺的请求速率的所述类型的资源的不同实例。
条目4.如条目I所述的计算机实现的方法,其中所述调整的承诺的请求速率能够由单个确定的实例或各提供所请求的承诺的请求速率的至少一部分的多个确定的实例来提供,每个确定的实例还能够在所述实例的请求容量允许用于附加用户时拥有共享所述资源的所述附加用户。条目5.如条目I所述的计算机实现的方法,其中一种类型的资源的所述承诺的请求速率是承诺的数据服务器的每秒输入/输出操作次数(IOPS)的速率。条目6.如条目I所述的计算机实现的方法,其中每个实例能够支持用于多个客户 的承诺的请求速率,每个实例还能够支持没有承诺的请求速率的附加客户的请求。条目7.如条目I所述的计算机实现的方法,其中至少一个实例配置成使用所述实例的所述容量中未承诺的或未使用的部分来处理没有承诺的请求速率的客户的请求,以及其中在过载情况中,以正常速率处理具有承诺的请求速率的客户的请求,并且将没有承诺的请求速率的客户的请求降速来克服所述过载情况。条目8.如条目I所述的计算机实现的方法,其中具有承诺的请求速率的客户能够超出所述承诺的请求速率,超过所述承诺的请求速率的任何请求以用于没有速率承诺的请求的速率或以介于用于具有速率承诺的请求的速率和用于没有速率承诺的请求的速率之间的混合速率来予以处理。条目9.如条目I所述的计算机实现的方法,其中确定所述类型的资源的至少一个实例的可用可承诺请求容量包括,随机地联系实例以获取容量或承诺信息的至少其中之
O条目10.如条目I所述的计算机实现的方法,还包括至少部分地基于对所述客户的所述类型的资源的所述承诺的请求速率来对所述客户收费。条目11. 一种用于调整共享的计算资源的使用的系统,其包括至少一个处理器;以及存储器,其包括在被所述至少一个处理器执行时使所述系统执行如下操作的指令接收客户的对于一种类型的资源的调整的承诺的速率的请求,所述客户具有用于所述类型的资源的当前承诺的速率,所述请求能够指定与所述类型的资源的一个或多个实例的容量中任何部分对应的承诺的速率;如果所述调整的承诺的速率小于所述当前承诺的速率,则自动地为所述客户降低用于所述类型的资源的至少一个实例的所述承诺的速率;如果所述请求涉及提高所述承诺的速率,则自动地承诺所述类型的资源的至少一个实例的可用可承诺速率容量中的至少一部分以获取所述调整的承诺的速率;以及为所述客户存储所述调整的承诺的速率的信息,以便在管理所述客户的请求处理的速率时使用。条目12.如条目11所述的系统,其中降低所述承诺的速率包括,当更少数量的实例即可用于提供所述承诺的速率时,减少用于为所述客户提供所述承诺的速率的所述类型的资源的实例的数量,并且其中提高或降低所述承诺的速率包括,自动地将至少一个使用承诺移到为所述客户提供所述承诺的速率的所述类型的资源的不同实例。条目13. —种用于管理共享的计算资源的使用的计算机实现的方法,其包括
在配置有可执行指令的一个或多个计算机系统的控制下,接收对于用于一种类型的资源的承诺的使用速率的请求,所述请求能够指定与所述类型的资源的一个或多个实例的使用容量中任何部分对应的承诺的使用速率;确定所述类型的资源的可工作以提供所请求的承诺的使用速率的至少一部分的至少一个实例;以及当所述至少一个确定的实例能够提供所述承诺的使用速率时,将所述所请求的承诺的使用速率的至少一部分指定到每个确定的实例,其中所述承诺的使用速率能够由单个确定的实例或各提供所述所请求的承诺的使用速率的至少一部分的多个确定的实例来提供,每个确定的实例还能够在所述实例的使用容量允许用于附加用户时拥有共享所述资源的所述附加用户,以及其中用户能够请求实质上独立于所述类型的资源的任何单个实例的所述容量的 承诺的使用速率。条目14.如条目13所述的计算机实现的方法,其中用于一种类型的资源的所述承诺的使用速率是承诺的数据服务器的每秒输入/输出操作次数(IOPS)的速率。条目15.如条目13所述的计算机实现的方法,其中确定所述类型的资源的可工作以提供所述所请求的承诺的使用速率的至少一部分的至少一个实例包括,确定实例的所述容量中有至少可允许的部分未承诺给其他用户的至少一个实例。条目16.如条目13所述的计算机实现的方法,其中如果确定没有实例的组合能够提供与所述请求对应的所述承诺的使用速率,则拒绝所述请求。条目17.如条目13所述的计算机实现的方法,其中具有承诺的使用速率的用户能够超出所述承诺的使用速率,超过所述承诺的使用速率的任何请求以用于没有速率承诺的请求的速率或以介于用于具有速率承诺的请求的速率和用于没有速率承诺的请求的速率之间的混合速率来予以处理。条目18. —种用于管理共享的计算资源的使用的系统,其包括至少一个处理器;以及存储器,其包括在被所述至少一个处理器执行时使所述系统执行如下操作的指令接收对于用于一种类型的资源的承诺的使用速率的请求,所述请求能够指定与所述类型的资源的一个或多个实例的使用容量中任何部分对应的承诺的使用速率;确定所述类型的资源的可工作以提供所请求的承诺的使用速率的至少一部分的至少一个实例;以及当所述至少一个确定的实例能够提供所述承诺的使用速率时,将所述所请求的承诺的使用速率的至少一部分指定到每个确定的实例,其中所述承诺的使用速率能够由单个确定的实例或各提供所述所请求的承诺的使用速率的至少一部分的多个确定的实例来提供,每个确定的实例还能够在所述实例的使用容量允许用于附加用户时拥有共享所述资源的所述附加用户,以及其中用户能够请求实质上独立于所述类型的资源的任何单个实例的所述容量的承诺的使用速率。条目19.如条目18所述的系统,其中确定所述类型的资源的可工作以提供所述所请求的承诺的使用速率的至少一部分的至少一个实例包括,确定实例的所述容量中有至少可允许的部分未承诺给其他用户的至少一个实例。条目20.如条目18所述的系统,其中至少一个实例配置成使用所述实例的所述容量中未承诺的或未使用的部分来处理没有承诺的请求速率的用户的请求,以及其中在过载情况中,以正常速率处理具有承诺的使用速率的用户的请求,并且将 没有承诺的使用速率的用户的请求降速来克服所述过载情况。
权利要求
1.一种用于调整共享的计算资源的使用的计算机实现的方法,其包括 在配置有可执行指令的一个或多个计算机系统的控制下, 接收客户的对于一种类型的资源调整的承诺的请求速率的请求,所述客户具有用于所述类型的资源的当前承诺的请求速率,所述请求能够指定与所述类型的资源的一个或多个实例的容量中任何部分对应的承诺的请求速率; 如果所述调整的承诺的请求速率小于所述当前承诺的请求速率,则自动地为所述客户降低用于所述类型的资源的至少一个实例的所述承诺的请求速率; 如果所述请求涉及提高所述承诺的请求速率,则自动地承诺所述类型的资源的至少一个实例的可用可承诺速率容量中的至少一部分以获取所述调整的承诺的请求速率;以及 为所述客户存储所述调整的承诺的请求速率的信息,以便在管理所述客户的请求处理的速率时使用。
2.如权利要求I所述的计算机实现的方法,其中 降低所述承诺的请求速率包括,当更少数量的实例即可用于提供所述承诺的请求速率时,减少为所述客户提供所述承诺的请求速率的所述类型的资源的实例的数量。
3.如权利要求I所述的计算机实现的方法,其中 提高或降低所述承诺的请求速率包括,自动地将至少一个请求处理承诺移到为所述客户提供所述承诺的请求速率的所述类型的资源的不同实例。
4.如权利要求I所述的计算机实现的方法,其中所述调整的承诺的请求速率能够由单个确定的实例或各提供所请求的承诺的请求速率的至少一部分的多个确定的实例来提供,每个确定的实例还能够在所述实例的请求容量允许用于附加用户时拥有共享所述资源的所述附加用户。
5.如权利要求I所述的计算机实现的方法,其中对于一种类型的资源的所述承诺的请求速率是承诺的数据服务器的每秒输入/输出操作次数(IOPS)的速率。
6.如权利要求I所述的计算机实现的方法,其中每个实例能够支持对于多个客户的承诺的请求速率,每个实例还能够支持没有承诺的请求速率的附加客户的请求。
7.如权利要求I所述的计算机实现的方法,其中至少一个实例配置成使用所述实例的容量中未承诺的或未使用的部分来处理没有承诺的请求速率的客户的请求,以及 在过载情况中,以正常速率处理具有承诺的请求速率的客户的请求,并且将没有承诺的请求速率的客户的请求降速来克服所述过载情况。
8.如权利要求I所述的计算机实现的方法,其中具有承诺的请求速率的客户能够超出所述承诺的请求速率,超过所述承诺的请求速率的任何请求以用于没有速率承诺的请求的速率或以介于用于具有速率承诺的请求的速率和用于没有速率承诺的请求的速率之间的混合速率来予以处理。
9.如权利要求I所述的计算机实现的方法,其中确定所述类型的资源的至少一个实例的可用可承诺请求容量包括,随机地联系实例以获取容量或承诺信息的至少其中之一。
10.如权利要求I所述的计算机实现的方法,还包括 至少部分地基于对于所述客户的用于所述类型的资源的所述承诺的请求速率来对所述客户收费。
11.一种用于调整共享的计算资源的使用的系统,其包括至少一个处理器;以及 存储器,其包括在被所述至少一个处理器执行时使所述系统执行如下操作的指令 接收客户的对于一种类型的资源调整的承诺的速率的请求,所述客户具有用于所述类型的资源的当前承诺的速率,所述请求能够指定与所述类型的资源的一个或多个实例的容量中任何部分对应的承诺的速率; 如果所述调整的承诺的速率小于所述当前承诺的速率,则自动地为所述客户降低用于所述类型的资源的至少一个实例的所述承诺的速率; 如果所述请求涉及提高所述承诺的速率,则自动地承诺所述类型的资源的至少一个实例的可用可承诺速率容量中的至少一部分以获取所述调整的承诺的速率;以及 为所述客户存储所述调整的承诺的速率的信息,以便在管理所述客户的请求处理的速率时使用。
12.如权利要求11所述的系统,其中降低所述承诺的速率包括,当更少数量的实例即可用于提供所述承诺的速率时,减少为所述客户提供所述承诺的速率的所述类型的资源的实例的数量,以及 其中提高或降低所述承诺的速率包括,自动地将至少一个使用承诺移到为所述客户提供所述承诺的速率的所述类型的资源的不同实例。
13.一种用于管理共享的计算资源的使用的计算机实现的方法,其包括 在配置有可执行指令的一个或多个计算机系统的控制下, 接收对于用于一种类型的资源的承诺的使用速率的请求,所述请求能够指定与所述类型的资源的一个或多个实例的使用容量中任何部分对应的承诺的使用速率; 确定所述类型的资源的可工作以提供所请求的承诺的使用速率的至少一部分的至少一个实例;以及 当所述至少一个确定的实例能够提供所述承诺的使用速率时,将所述所请求的承诺的使用速率的至少一部分指定到每个确定的实例, 其中所述承诺的使用速率能够由单个确定的实例或各提供所述所请求的承诺的使用速率的至少一部分的多个确定的实例来提供,每个确定的实例还能够在所述实例的使用容量允许用于附加用户时拥有共享所述资源的所述附加用户,以及 其中用户能够请求实质上独立于所述类型的资源的任何单个实例的所述容量的承诺的使用速率。
14.如权利要求13所述的计算机实现的方法,其中用于一种类型的资源的所述承诺的使用速率是承诺的数据服务器的每秒输入/输出操作次数(IOPS)的速率。
15.如权利要求13所述的计算机实现的方法,其中确定所述类型的资源的可工作以提供所述所请求的承诺的使用速率的至少一部分的至少一个实例包括,确定实例的所述容量中有至少可允许的部分未承诺给其他用户的至少一个实例。
16.如权利要求13所述的计算机实现的方法,其中如果确定没有实例的组合能够提供与所述请求对应的承诺的使用速率,则拒绝所述请求。
17.如权利要求13所述的计算机实现的方法,其中具有承诺的使用速率的用户能够超出所述承诺的使用速率,超过所述承诺的使用速率的任何请求以用于没有速率承诺的请求的速率或以介于用于具有速率承诺的请求的速率和用于没有速率承诺的请求的速率之间的混合速率来予以处理。
18.一种用于管理共享的计算资源的使用的系统,其包括 至少一个处理器;以及 存储器,其包括在被所述至少一个处理器执行时使所述系统执行如下操作的指令 接收对于用于一种类型的资源的承诺的使用速率的请求,所述请求能够指定与所述类型的资源的一个或多个实例的使用容量中任何部分对应的承诺的使用速率; 确定所述类型的资源的可工作以提供所请求的承诺的使用速率的至少一部分的至少一个实例;以及 当所述至少一个确定的实例能够提供所述承诺的使用速率时,将所述所请求的承诺的使用速率的至少一部分指定到每个确定的实例, 其中所述承诺的使用速率能够由单个确定的实例或各提供所述所请求的承诺的使用速率的至少一部分的多个确定的实例来提供,每个确定的实例还能够在所述实例的使用容量允许用于附加用户时拥有共享所述资源的所述附加用户,以及 其中用户能够请求实质上独立于所述类型的资源的任何单个实例的所述容量的承诺的使用速率。
19.如权利要求18所述的系统,其中确定所述类型的资源的可工作以提供所述所请求的承诺的使用速率的至少一部分的至少一个实例包括,确定实例的所述容量中有至少可允许的部分未承诺给其他用户的至少一个实例。
20.如权利要求18所述的系统,其中至少一个实例配置成使用所述实例的所述容量中未承诺的或未使用的部分来处理没有承诺的请求速率的用户的请求,以及 其中在过载情况中,以正常速率处理具有承诺的使用速率的用户的请求,并且将没有承诺的使用速率的用户的请求降速来克服所述过载情况。
全文摘要
可以在共享资源环境中为客户动态地调整对各种资源的承诺。客户可以按被承诺的每秒输入/输出操作次数(IOPS)的速率提供数据卷,并仅为该承诺(加任何超额)例如以及所请求的存储量付费。客户可以在此后通过提交适当的请求来调整被承诺的IOPS速率,或者可以基于多个条件中的任一个来自动地调整该速率。可以将客户的数据卷迁移、分割或组合以便提供调整的速率。客户与数据卷的交互无需改变,除了处理请求的速率外,其与速率的调整或数据卷的改变无关。
文档编号G06Q10/00GK102844772SQ201180015186
公开日2012年12月26日 申请日期2011年3月29日 优先权日2010年3月29日
发明者T·A·瑟滕, R·彼得森-琼斯, J·R·汉米尔顿, S·贾殷, M·S·卡门, D·N·桑德兰, D·魏, F·卡塔诺 申请人:亚马逊技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1