背景技术:
近年来,诸如数据中心之类的云平台已经从提供简单的按需计算演进到提供大量服务选择。例如,网络存储、监视、负载平衡和弹性高速缓存。这些服务常常使用诸如网络内中间盒如加密设备和负载平衡器之类的资源以及诸如终端设备如网络存储服务器之类的资源来实现。此类服务的采用跨越从小型数据中心到企业数据中心的宽泛规模都是常见的。虽然占用方(tenant)(即这些云计算服务的客户)可以在这些服务之上构建他们的应用,但这样做导致了一个主要缺点:由对竞争资源的共享访问所引起的易失性应用性能。这种缺乏隔离也损害了提供者,因为过载的资源更容易失败,并且服务级别协议不能被满足。
下面描述的实施例不限于解决已知数据中心资源控制系统的任何或所有缺点的实现。
技术实现要素:
以下提供了本公开的简化概述,以便向读者提供基本理解。该概述不是本公开的广泛综述,并且它不标识关键/紧要的元件或描绘本说明书的范围。其唯一目的是以简化形式呈现本文所公开的概念的选择,作为稍后呈现的更详细描述的序言。
例如,描述了用于虚拟数据中心的资源控制,其中多个虚拟数据中心被实现在物理数据中心中以满足保证。在示例中,每个虚拟数据中心指定具有吞吐量保证的多个不同类型的资源,该吞吐量保证通过针对在物理数据中心中被实现的虚拟数据中心的个体流计算流分配而被满足。例如,对于被流使用的数据中心的多个不同类型的物理资源中的每一个,流分配具有流可以使用的物理资源的量。流是数据中心的端点之间的路径,消息沿着该路径被发送以实现服务。在示例中,将流分配被发送到数据中心中的实施器,实施器使用流分配来控制流中的业务速率。工作的其他元素的示例是cpu时间,存储操作,高速缓存分配。流消耗一个或多个共享资源的一部分,并且本文描述的示例相对于其他需求和绝对参数来管理该共享。
在各种示例中,共享资源的可用容量被动态地估计。在一些示例中,流分配使用涉及局部的每个虚拟数据中心分配以及然后的全局分配的两阶段过程来计算,以使用任何剩余的数据中心资源。术语“容量”在这里指的是性能容量或可用容量,而不是资源的大小。
通过参考结合附图考虑的以下详细描述,许多伴随的特征将更容易理解,同样也变得更好理解。
附图说明
从下面根据附图阅读的详细描述将更好地理解本说明书,其中:
图1是被布置为向占用方提供多个虚拟数据中心的数据中心的示意图;
图2是图1的数据中心的逻辑集中化控制器的示意图;
图3是数据中心的多个计算服务器的示意图,并且具有计算服务器之一的分解图;
图4是诸如图1的虚拟数据中心之一的虚拟数据中心的示意图;
图5是示出了两个示例端到端流的图4的虚拟数据中心的示意图;
图6是在图2的逻辑集中化控制器处用于生成和发送指令到数据中心的计算服务器处的实施器的方法的流程图;
图7是在图2的逻辑集中化控制器处用于计算局部流分配的方法的流程图;
图8是在图2的逻辑集中化控制器处用于计算全局流分配的方法的流程图;
图9是在图2的逻辑集中化控制器的容量估计器处的方法的流程图;
图10是在图2的逻辑集中化控制器的需求估计器处的过程以及在实施器处的过程的流程图;
图11是数据中心的端到端流、实施器、和在实施器处的过程的示意图;
图12示出了其中可以实现集中化数据中心控制器的实施例的示例性基于计算的设备。
相同的附图标记用于指示附图中的类似部件。
具体实施方式
以下结合附图提供的详细描述旨在作为对本示例的描述,并且不旨在表示可以构建或利用本示例的仅有形式。该描述阐述了示例的功能以及用于构造和操作该示例的步骤的序列。然而,可以通过不同的示例来实现相同或等同的功能和序列。
在下面描述的示例中,描述了用于在数据中心处使用的算法和装备,其使得能够向数据中心占用方提供专用虚拟数据中心。虚拟数据中心描述了端到端保证,其在一些示例中在新的度量中来指定。例如,占用方可以为虚拟数据中心的每个资源指定最小或绝对吞吐量保证。本文所描述的算法和装备使得保证能够独立于占用方的工作负载,并且力图确保在不同类型的分布式数据中心资源和中间数据中心网络之间保持这些保证。以前的方法尚未使得能够以这种方式提供虚拟数据中心。
图1是被布置为向占用方提供多个虚拟数据中心110的数据中心108的示意图。虚拟数据中心是对占用方期望租用的物理数据中心的不同类型的资源的性能的要求规范。下面参考图4给出关于虚拟数据中心的更多细节。数据中心108包括多个不同类型的资源。这些包括计算服务器104和与计算服务器互连的网络资源102以及附加资源106。在图1的示例中,为了清楚起见,示出了四个计算服务器104,但是任意两个或更多个计算服务器可以被使用。
附加资源106可以是网络内资源或端点资源。资源的非穷举示例列表是:网络链路,加密设备,负载平衡器,联网存储服务器,密钥值对存储。因此,数据中心具有不同类型的资源。每个资源具有可随时间变化的容量和将请求的特性映射到在资源处服务该请求的(按照令牌的)成本的成本函数。
数据中心108包括逻辑集中化控制器100,其使用软件和/或硬件来计算机实现并且连接到网络资源102。逻辑集中化控制器可以是如图1所描绘的单个实体,或者它可以分布在数据中心108中的多个实体之中。逻辑集中化控制器100将虚拟数据中心110映射到物理数据中心108。它还执行资源分配过程,使得由不同的虚拟数据中心共享的物理数据中心的资源被有效地使用,同时满足虚拟数据中心的要求/保证。以控制间隔重复资源分配过程,使得数据中心中的改变可以被考虑。
虚拟数据中心具有将在物理数据中心中使用诸如网络资源、加密设备、负载平衡器、密钥值对存储以及其他之类的多个资源来实现的业务的一个或多个虚拟端到端流。逻辑集中化控制器指定可以由在物理数据中心中以重复的控制间隔实现的端到端流所使用的多个不同类型的数据中心资源的量。在一些示例中,作为分配过程的一部分,其考虑了数据中心资源的容量估计(其可以是动态的)。也可以监视和考虑与端到端流相关联的需求。逻辑集中化控制器向物理数据中心中的端到端流的端点处的速率控制器发送指令,指定可以使用的流的不同资源的量。速率控制器调整它们维护的队列或桶,以便实施资源分配。例如,对于端到端流的每个不同资源存在一个桶。先前的方法没有指定可以由端到端流使用的多个不同资源的个体量。以这种方式,多个资源一起贡献以实现更高级别的流。
端到端流是在诸如虚拟机或计算服务器的两个端点之间的数据中心中的路径,业务沿着该路径被发送以实现服务。例如,业务可以包括从虚拟机发送到联网文件存储的请求消息和从联网文件存储发回到相同或不同虚拟机的响应消息。端到端流可以具有相同的端点;也就是说,端到端流可以在同一端点开始和结束。
控制器的一个或多个部分可以使用软件和/或硬件来计算机实现。在一些示例中,需求估计器、容量估计器和资源分配器全部或部分地使用一个或多个硬件逻辑组件来实现。例如但不限于,可以使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(fpga),专用集成电路(asic),专用标准产品(assp),系统级芯片系统(soc),复杂可编程逻辑器件(cpld),图形处理单元(gpu)或其他。
图2是图1的数据中心的逻辑集中化控制器100的示意图。它包括需求估计器202、容量估计器204和资源分配器206,其每一个都是使用软件和/或硬件来计算机实现的。下面参考图10描述由需求估计器202实现的示例方法。需求估计器202能够估计对数据中心的不同个体资源的当前和未来需求。下面参照图9描述由容量估计器实现的示例方法。在一些示例中,容量估计器动态地估计数据中心的不同个体资源的可用容量。可用容量随时间变化,因为数据中心中的工作量随时间变化,并且因为资源可以被共享。资源分配器206为数据中心的不同个体资源计算可以被特定虚拟数据中心的特定端到端流在每单位时间使用的资源量。资源分配器可以在新的度量中计算每单位时间的这些量,本文中称为令牌每秒,其考虑了服务对特定资源的请求的成本。
在数据中心的资源处服务请求的实际成本可以随请求特性、并发工作负载、或资源详情而变化。在一些示例中,这通过使用新度量来解决。例如,每个资源被指派了预定的成本函数,该预定的成本函数将请求映射到其按照令牌的成本。占用方保证跨越所有资源,并且网络可以按照令牌每秒而被指定。成本函数可以从特定资源的域知识或从历史统计中通过基准来确定。
在本文所描述的示例中,可以以新的令牌每秒的度量来测量各种量。例如,需求、容量、队列长度、物理资源的消耗、虚拟资源的消耗。
控制器100存储或访问关于虚拟数据中心110的数据和关于物理数据中心的拓扑200的数据。下面参考图4描述关于虚拟数据中心的数据。物理数据中心的拓扑200包括数据中心的端点的细节(例如最大容量,位置),诸如联网文件存储、负载平衡器、中间盒之类的任何附加资源、以及关于互连的细节。
如上所述,物理数据中心的资源具有相关联的成本函数。控制器100访问或存储成本函数210。在一些示例中,控制器100访问或存储全局策略208(也称为全局多资源分配机制),其指定在实现虚拟数据中心之后被留下的物理数据中心的资源将被如何分配。
到控制器的输入包括至少经验数据中心观测218,比如业务流数据、队列数据、错误报告和其他经验数据。控制器100还可以采取每流需求数据212作为输入。例如,每流需求数据可以是关于实施器处的队列的信息,其由在数据中心端点处的实施器和/或直接从在计算服务器上执行的应用发送到控制器100。
控制器100的输出至少包括虚拟数据中心到物理数据中心的映射216和到物理数据中心中的多个实施器的指令214。在一个示例中,指令是列出可由特定流使用的物理数据中心的不同资源的每单位时间的量的向量。可以使用上面提及的新的令牌每秒的度量来表示该量。然而,使用向量不是必要的。指令可以以任何格式发送。
图3是数据中心的多个物理计算服务器104的示意图,并且具有计算服务器之一的分解图。计算服务器的分解图示出了在计算服务器处执行的多个虚拟机300、管理程序302和网络接口卡306。在管理程序302内是实施速率分配并收集局部统计的实施器304。
图4示出了诸如图1的虚拟数据中心之一的示例虚拟数据中心110。如上所提及,虚拟数据中心是需求的规范。例如,规范包括要通过物理数据中心处的网络来互连的一个或多个数据中心端点(比如计算服务器处的虚拟机或计算服务器本身)的列表。规范包括不是数据中心端点的一个或多个附加资源的列表,诸如负载平衡器、加密设备、联网存储服务器以及其他。规范还包括如上所解释的保证,其可以是吞吐量保证或非吞吐量保证。例如,对于端点和网络之间的每个链路以及对于每个指定的附加资源的最小(或绝对)吞吐量保证。可以以新的令牌每秒的度量来指定最小(或绝对)吞吐量保证。在图4的示例中,虚拟数据中心规范包括多个虚拟机vm1至vmn,每个虚拟机vm1至vmn通过具有相关联的最小吞吐量保证g1至gn的链路连接到虚拟网络400。虚拟数据中心还包括具有最小吞吐量保证gs的联网文件存储402和具有最小吞吐量保证ge的加密服务404。
虚拟数据中心规范包括一个或多个端到端流。如上所提及,流是数据中心的两个端点之间的路径,业务流沿着该路径实现特定服务。流可以在虚拟数据中心规范中被详细描述或者可以被推断。图5是图4的虚拟数据中心的副本,并且指示了两个流500,502。流500从一个虚拟机去往文件存储402,然后返回到同一虚拟机。流502从一个虚拟机去往另一个虚拟机。
图6是由图1的控制器100所实现的资源分配过程的流程图。控制器访问600布局算法的输出。布局算法采用虚拟数据中心规范和物理数据中心的拓扑,并计算映射或布局。该布局指定物理数据中心的哪些其他资源以及哪些计算服务器将由哪些虚拟数据中心使用。作为该布局过程的结果,控制器知道在个体虚拟数据中心的哪些流的路径上存在哪些物理资源。可以使用任何合适的布局算法。例如,ballani等人2013年的“chattytenantsandthecloudnetworksharingproblem”nsdi。
控制器处的资源分配器执行资源分配过程602,其以诸如每秒或其他合适时间的控制间隔612进行重复。控制间隔612可以由运营方根据数据中心的特定类型、在数据中心处执行的应用的类型、计算服务器的数量和其他因素来设置。
在示例中,资源分配过程602包括向每个虚拟数据中心的每个流指派速率分配向量。使用多资源分配来计算604局部流分量,然后也使用多资源分配来计算606全局流分量。组合608局部和全局流分量,并且将结果分配作为指令发送610到物理数据中心中的实施器。通过使用两阶段方法,实现了数据中心资源分配的效率提高。以前的方法没有使用这种类型的两阶段方法。然而,使用两阶段过程不是必要的;也可以仅使用局部流分配;或组合局部和全局分配步骤。
可以使用任何合适的多资源分配机制,其能够在具有异构需求的客户端之间分发多种类型的资源。合适的多资源分配机制的示例在2013年10月的socc中的bhattacharya,d等人的“hierarchicalschedulingfordiversedatacenterworkloads”中给出。例如,用于m个流和n个资源的多资源分配机制提供了接口:
a←mra(d,w,c)
其中a,d和w是m×n矩阵,c是n条目向量。di,j表示对于资源j的流i的需求,或者在控制间隔中能够消耗多少资源j流i。aij包含所得的需求感知分配(即,对于所有i和j,ai,j≤di,j)。w包含用于偏置分配以实现所选目标(例如,权重的公平或收入最大化)的权重条目。c包含每个资源的容量。
参考图7给出关于计算局部流分量的更多细节,并且参考图8给出关于全局流分量的更多细节。
参考图7,控制器的资源分配器访问700占用方的局部多资源分配机制。例如,占用方可以能够选择由符号mral表示的局部多资源分配机制,以向占用方给出如何将其保证资源分配给其流的控制。例如,想要在他们的流上公平地划分他们的虚拟数据中心资源的占用方可以选择实现主要资源公平性或基于瓶颈的公平性的机制。占用方t的局部分配矩阵at由下式给出:
at←mral(dt,wt,ct)
dt和wt是仅包含t个流的需求和权重矩阵,ct是包含t的虚拟数据中心中的每个虚拟资源的容量的容量向量。这些容量对应于占用方的保证,其是静态的并且是先验已知的(来自虚拟数据中心规范)。可以将wt设置为默认值(比如所有条目都为1),但可以由占用方覆盖。
控制器的资源分配器例如使用图9的过程来估计702dt的流需求。资源分配器还访问704权重以进入权重矩阵w并且根据虚拟数据中心规范访问t的虚拟数据中心中的虚拟资源的容量。将该信息应用于占用方的局部多资源分配机制以计算局部分配矩阵708。
为了实现虚拟数据中心弹性,控制器处的资源分配器基于包括全局多资源分配机制mrag的数据中心的全局策略,将未使用的资源指派给具有未满足的需求的流。使用全局多资源分配机制给出可以表达为m×n矩阵ag的全局分配,其中m是跨所有占用方的流的总数,并且n是数据中心中的资源的总数。ag由下式给出:
ag←mrag(dg,wg,cg)
速率控制器访问800可以预先存储在控制器处或者可从全局分配机制库访问的全局分配机制。速率控制器获得数据中心中的个体物理资源的剩余容量804的估计,并且在矩阵cg中填充这些值。这是使用实现诸如下面参考图9所描述的过程之类的一个过程的容量估计器来完成的。速率控制器访问806权重以进入矩阵wg。例如,权重可以从占用方的虚拟数据中心得出,以允许备用资源与前期支付(权重公平分配)成比例地被共享,或者将其设置为1以允许公平(支付不可知)分配。速率控制器在运行局部分配步骤之后跨每个物理资源计算每个流的未满足的需求808。不在流路径中的资源的条目可以设置为零。未满足的需求可以使用如参考图10所描述的需求估计量来计算。然后,速率控制器能够通过将容量、权重和需求值输入到全局多资源分配机制中来计算810全局分配ag。
现在参考图9给出关于如何估计容量的更多细节。图9的过程由控制器的容量估计器实现。该过程包括观察900资源的吞吐量。例如,该数量以考虑了在资源处服务请求的成本(例如上面提及的令牌每秒)的度量来表达。控制器使用吞吐量数据来监视902资源是否违反任何虚拟数据中心规范。在一些示例中,监视903在资源处的未完成请求。
获得(其中该过程已经在进行中)或者初始化(其中该过程刚开始)当前探测窗口904。探测窗口是资源的实际容量预期处于其中的值的范围。探测窗口由其极值minw和maxw来表征,并且响应于拥塞信号的存在或不存在而不断地精细调整(refine)。当前容量估计cest在探测窗口内并且被控制器用于速率分配。探测窗口的精细调整包括四个阶段:二进制搜索增加阶段908,恢复阶段920,等待阶段926和稳定阶段914。
如果在判定点906处没有检测到拥塞,则进入二进制搜索增加阶段908。检测拥塞包括发现虚拟数据中心违反902。在二进制搜索增加阶段908中,控制器增加容量估计——例如通过将容量估计910设置为探测窗口内的值比如探测窗口的中点或探测窗口中的任何其它合适的值。控制器还将minw912增加到例如先前的容量估计,因为缺乏拥塞意味着资源没有过载并且其实际容量超过先前的估计。重复此过程直到达到稳定性,或者直到检测到拥塞。
当在决策点906处检测到拥塞时,进入恢复阶段920。控制器恢复922容量估计,例如恢复到minw。这确保资源不会过载超过一个控制间隔。由于资源的实际容量小于该估计,因此进一步将maxw减小924,例如减小至先前的容量估计。然后检查任何vdc(虚拟数据中心)违反。如果没有发现vdc违反,则过程去往二进制搜索增加阶段908。如果检测到vdc违反,则过程移至等待阶段926。
假设进入等待阶段926。在恢复阶段中设置为minw的容量估计不会更改,直到虚拟数据中心保证再次被满足。这允许先前已过载的资源为所有未完成的请求服务。这在资源不能丢弃请求的情况下是有益的,其通常是资源不是网络交换机的情况。当满足保证时,过程移至二进制搜索增加阶段908。当不满足保证时,进行检查以查看等待定时器是否已期满。如果没有,则重新进入等待阶段。如果等待定时器已经期满,则过程去往步骤904。
在二进制搜索阶段908之后,进行检查以查看是否要进入稳定阶段914。一旦探测窗口大小达到诸如资源的最大容量(或任何其它合适的阈值)的1%的阈值,就进入稳定阶段914。在稳定阶段期间,可以响应于工作负载中的轻微波动来调整916容量估计。在示例中,跟踪在控制间隔期间在资源处的未完成请求的平均数目(按照令牌被测量)。将该平均值与稳定阶段开始时在资源处的未完成请求o的平均数目进行比较。从当前容量估计中减去由灵敏度参数加权的这些观察值之间的差。o用作资源是瓶颈时的资源利用率的预测。在当前未完成请求超过这个量时,资源必须处理比它可以在单个控制间隔中处理的请求更多的请求,并且作为结果,估计减小。反之也适用。
如果检测到改变918,则估计过程重新开始。例如,如果检测到虚拟数据中心违反,或者如果检测到到达该资源的需求与稳定阶段的开始时的显著变化。如果在判定点918处未检测到变化,则过程返回到框916的微调整过程。
在一些示例中,图9的方法被布置为在过程开始时检查显著的工作负载变化。以这种方式,不管估计处于什么状态,这种工作负载变化导致图9的过程重新开始。
现在参考图10给出关于如何估计需求的更多细节。图10的过程,框1000,1002和1004由控制器的需求估计器针对被期望估计其需求的每个个体资源实现。图10的过程,框1020,1022和1024在物理数据中心中的流的端点处的实施器处实现。需求矩阵d中的行表示流的需求向量,其又包含沿着流的路径针对每个资源的按照令牌的需求。控制器从实施器接收1000需求向量。它对估计进行平滑以避免对突发工作负载的过度反应。例如,平滑使用指数加权的移动平均或任何其他平滑过程。控制器使用平滑过的需求向量来计算每个资源的需求矩阵。在高级别处,在流的源处的实施器使用在当前和先前控制间隔期间处理的请求以及排队信息,以便估计下一间隔的流需求。例如,实施器计算1020在当前和先前控制间隔上被它的流所消耗的令牌数目。实施器使用它存储的或者可以从远程位置访问的成本函数来执行此操作。在示例中,实施器评估通过它的个体请求以计算针对该特定请求的按照令牌的成本。这使得例如可以考虑不同大小的请求。实施器还计算流的当前排队请求的令牌的数目1022。然后将该信息用于计算需求向量1024。
在一些示例中,在实施器处用于计算需求向量的过程被布置为考虑流可以是闭环流(与开环流相对)的情形。开环流对未完成请求的数目没有限制。闭环流保持固定数目的未完成请求,并且当另一个完成时,新请求到达。这是通过实施器监视在控制间隔期间排队的按照令牌的平均请求数目(使用新度量)以及还监视在控制间隔期间未完成但已被允许经过实施器的按照令牌中的平均请求数目来完成的。在下一时间间隔处的流f的需求向量被计算为先前时间间隔的流的积压向量与以下的较大者:前一时间间隔的流的利用率向量加上如下乘积,该乘积为在控制间隔期间排队的按照令牌的平均请求数目(使用新度量)和前一时间间隔的流的利用率向量与在控制间隔期间未完成的按照令牌的平均请求数目的比率之乘积。积压向量包含流的每个资源所需的令牌(在新度量中),以便处理在间隔结束时仍然排队的所有请求。利用率向量包含在时间间隔上的流的请求针对每个资源所消耗的令牌的总数(在新度量中)。通过考虑流以这种方式可以是闭环的,改进了需求估计的准确性,并且因此改进了数据中心中的资源分配,从而给出了改进的虚拟数据中心性能。
图11是数据中心中的端到端流1100、实施器304、以及在速率实施器处的过程1120,1122的示意图。在此示例中,流1100在虚拟机1处开始,通过网络行进到密钥值存储,返回到网络和虚拟机1。在此示例中,在虚拟机1处的实施器304具有网络桶1102和密钥值存储桶1104。通常,实施器针对流的每个资源具有一个桶(也称为队列)。在虚拟机1处的实施器从控制器接收流分配向量1120。速率分配向量包括针对流的每个资源的速率——令牌每秒,所述资源在该示例中是网络和密钥值存储。已经以考虑物理数据中心的虚拟数据中心、局部和全局分配策略以及数据中心的资源的需求和容量的方式来计算速率。在虚拟机1处的实施器基于速率分配向量来调整流的各个桶的补充速率。以这种方式,分配和控制物理数据中心的资源。
图12示出了可以被实现为任何形式的计算和/或电子设备并且其中可以实现本文描述的任何方法的实施例的示例性基于计算的设备1200的各种组件。
基于计算的设备1200包括一个或多个处理器1202,其可以是微处理器、控制器或用于处理计算机可执行指令以控制物理数据中心的资源的任何其它合适类型的处理器。在一些示例中,例如在使用芯片上系统架构的情况下,处理器702可以包括实现本文描述的方法的一部分的一个或多个固定功能块(也称为加速器)(而不是软件或固件)。可以在基于计算的设备处提供包括操作系统1204或任何其他合适的平台软件的平台软件,以使得能够在设备上执行应用软件。在示例中,基于计算的设备1200还可以包括用于估计物理数据中心的资源的需求的需求估计器1206,用于估计物理数据中心的资源的可用容量的容量估计器1208,以及用于计算和发送可以使用的不同类型的个体资源的数量的资源分配器1210。数据存储1212可以存储全局和局部多资源分配机制、布局算法、参数值、速率分配向量、需求向量和其他数据。
可以使用可由基于计算的设备1200访问的任何计算机可读介质来提供计算机可执行指令。计算机可读介质可以例如包括诸如存储器1214的计算机存储介质和通信介质。诸如存储器1214的计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于ram,rom,eprom,eeprom,闪存或其他存储器技术,cd-rom,数字通用盘(dvd)或其他光学存储器,磁带盒,磁带,磁盘存储器或其他磁存储器或可以用于存储信息以供计算设备访问的任何其它非传输介质。相比之下,通信介质可以在调制的数据信号比如载波或其他传输机制中体现计算机可读指令、数据结构、程序模块或其他数据。如本文所定义的,计算机存储介质不包括通信介质。因此,计算机存储介质不应被解释为传播信号本身。传播的信号可以存在于计算机存储介质中,但是传播的信号本身不是计算机存储介质的示例。尽管在基于计算的设备1200内示出了计算机存储介质(存储器1214),但是应当理解,存储可以是分布式的或远程定位的,并且经由网络或其他通信链路(例如,使用通信接口1216)来访问。
在示例中,描述了一种计算机实现的控制物理数据中心的方法,包括:
访问关于多个虚拟数据中心的数据,每个虚拟数据中心指定具有吞吐量保证的多个不同类型的资源;
在物理数据中心中实现虚拟数据中心,使得吞吐量保证通过以下操作被满足:
为物理数据中心中实现的虚拟数据中心的个体流计算流分配,流分配包括:对于由流使用的物理数据中心的多个不同类型的物理资源中的每个物理资源,流可以使用的该物理资源的量;流是物理数据中心的端点之间的路径,消息沿着该路径被发送以实现服务;以及
将流分配发送到物理数据中心中的实施器,实施器被布置为使用流分配来控制流中业务的速率,使得在使用中虚拟数据中心之间的性能影响被减小。
以这种方式,物理数据中心控制器可以有效且高效的方式实现虚拟数据中心,而不需要改变应用、客户操作系统或数据中心资源。
在示例中,计算流分配包括针对每个虚拟数据中心,考虑与虚拟数据中心相关联的局部策略来计算局部流分配。这使得每个虚拟数据中心标准能够被有效地考虑。
在上述示例中,计算流分配还包括考虑数据中心的局部流分配和未使用资源来计算全局流分配。这使得虚拟数据中心弹性能够被提供。
例如,计算局部流分配包括通过至少观察与物理数据中心中的个体流相关联的业务的消耗和业务的队列来估计针对个体流的流需求。使用经验数据实时估计流需求提供了准确性和效率。
例如,计算局部流分配包括通过考虑个体流可以是闭环流来估计针对个体流的流需求。这改善了精度——即使在控制器不可能分辨流是开环还是闭环的情况下。
在示例中,动态地估计物理资源中的至少一些物理资源的容量通过观察该至少一些物理资源的业务吞吐量而被实现。
在示例中,动态地估计容量还包括监视对与虚拟数据中心相关联的业务吞吐量的保证的违反,其中保证是在经过虚拟数据中心的资源的一组流上被聚合的聚合保证。通过使用保证的违反,改进了容量估计的质量,并且更好地适用于本文描述的资源分配过程。即使资源吞吐量和虚拟数据中心违反是隐式拥塞信号,发现这些信号对于本文描述的容量估计过程也非常有效。
估计容量可以包括维持探测窗口,物理资源的容量被预期位于探测窗口中,探测窗口是容量值的范围,并且基于存在或不存在保证的违反来重复地精细调整探测窗口的大小。通过使用探测窗精细调整,实现了一种容易实现的计算估计的简单且有效的方式。
在不存在保证的违反的情况下,该方法可以包括将物理资源的估计的容量设置为探测窗口的中点并且增大探测窗口中的最小值。
在存在保证的违反的情况下,方法可以包括:将所估计的容量恢复为先前值并且减小探测窗口的最大值。该方法可以包括在继续进行估计物理资源的容量之前等待,直到与虚拟数据中心相关联的保证被满足为止。
在示例中,当探测窗口达到阈值大小时进入稳定阶段,并且该方法包括在稳定阶段期间对估计的可用容量做出调整。通过在稳定阶段做出调整,实现了结果质量的显著改进。
在示例中,流可以使用的物理资源的量按照每单位时间的令牌被计算,其中令牌是考虑了服务对物理资源的请求的成本的单位。
在示例中,物理资源中的至少一些物理资源包括选自以下的资源:联网存储服务器、加密设备、负载平衡器、密钥值存储。
在另一示例中,描述了一种动态地估计数据中心的物理资源的可用容量的方法,包括:
在处理器处监视跨资源的总吞吐量;
访问与使用该资源的数据中心中所实现的多个虚拟数据中心相关联地被指定的保证;
通过所监视的吞吐量检测保证中的至少一个保证的违反的存在或不存在;以及
基于违反的存在或不存在来更新可用容量的估计。
上述方法可以包括维持探测窗口,物理资源的容量被预期位于探测窗口中,该探测窗口是容量值的范围,以及基于存在或不存在保证中的至少一个保证的违反来重复地精细调整探测窗口的大小。
上述动态估计的方法可以包括:监视资源处的未完成请求并在探测窗口低于阈值大小时基于所监视的未完成请求来更新可用容量的估计。在不存在保证中的至少一个保证的违反的情况下,该方法可以包括将物理资源的估计的容量设置为探测窗口的中点并且增大探测窗口中的最小值。在存在保证中的至少一个保证的违反的情况下,方法可以包括将所估计的容量恢复为先前值并减小探测窗口的最大值。
在示例中,数据中心控制器包括:
存储关于多个虚拟数据中心的数据的存储器,每个虚拟数据中心指定具有吞吐量保证的多个不同类型的资源;
存储器保存指令,该指令在由处理器执行时实现物理数据中心中的虚拟数据中心,使得吞吐量保证被满足;以及为物理数据中心中所实现的虚拟数据中心的个体流计算流分配,流分配包括:对于由流使用的数据中心的多个不同物理资源中的每个物理资源,流可以使用的该物理资源的量;流是数据中心的端点之间的路径,消息沿着路径被发送以实现服务;以及
通信接口,其被布置为将流分配发送到物理数据中心中的实施器,实施器被布置为使用流分配来控制流中业务的速率,使得在使用中虚拟数据中心之间的性能影响被减小。
本文中使用的术语“计算机”或“基于计算的设备”是指具有处理能力使得其可以执行指令的任何设备。本领域技术人员将认识到,这样的处理能力被并入许多不同的设备中,因此术语“计算机”和“基于计算的设备”每个包括pc,服务器,移动电话(包括智能电话),平板计算机,机顶盒,媒体播放器,游戏控制台,个人数字助理和许多其他设备。
本文描述的方法可以由例如以包括计算机程序代码装置的形式有形存储介质上的机器可读形式的软件执行,当该程序在计算机上运行时,该计算机程序代码装置适于执行本文所述的任何方法的所有步骤,并且其中该计算机程序可以体现在计算机可读介质上。有形存储介质的示例包括计算机存储设备并且不包括传播信号,所述计算机存储设备包括诸如磁盘、拇指驱动器、存储器等计算机可读介质。传播信号可以存在于有形存储介质中,但是传播信号本身不是有形存储介质的示例。软件可以适于在并行处理器或串行处理器上执行,使得方法步骤可以以任何合适的顺序或同时执行。
这承认软件可以是有价值的、可单独交易的商品。其旨在涵盖在“哑”或标准硬件上运行或控制以执行期望功能的软件。还旨在涵盖“描述”或定义硬件的配置的软件,诸如用于设计硅芯片或用于配置通用可编程芯片以执行期望功能的hdl(硬件描述语言)软件。
本领域技术人员将认识到,用于存储程序指令的存储设备可以分布在网络上。例如,远程计算机可以存储被描述为软件的过程的示例。本地或终端计算机可以访问远程计算机并下载软件的一部分或全部以运行程序。替代地,本地计算机可以根据需要下载软件片段,或者在本地终端处执行一些软件指令,并且在远程计算机(或计算机网络)处执行一些软件指令。本领域技术人员还将认识到,通过利用本领域技术人员已知的常规技术,软件指令的全部或一部分可以由专用电路比如dsp,可编程逻辑阵列等等来执行。
如本领域技术人员将显而易见的,本文给出的任何范围或设备值可以被扩展或改变而不失去所寻求的效果。
尽管已经以对结构特征和/或方法动作特定的语言描述了主题,但是应当理解,所附权利要求中定义的主题不一定限于上述特定特征或动作。相反,上面描述的特定特征和动作作为实现权利要求的示例形式而被公开。
将理解,上述的益处和优点可以涉及一个实施例或者可以涉及若干实施例。实施例不限于解决任何或所有所述问题的那些实施例,或者具有任何或全部所述益处和优点的实施例。还应当理解,引用“一个”项目是指那些项目中的一个或多个。
本文所述的方法的步骤可以以任何合适的顺序进行,或在适当时同时进行。另外,在不脱离本文所描述的主题的精神和范围的情况下,可以从任何方法中删除各个块。上述任何示例的方面可以与所描述的任何其他示例的方面组合以形成另外的示例而不失去所寻求的效果。
术语“包括”在本文中用于表示包括所标识的方法块或元素,但是这样的块或元素不包括排他性列表,并且方法或装置可以包含附加的块或元素。
应当理解,上述描述仅通过示例的方式给出,并且本领域技术人员可以进行各种修改。上述说明书、示例和数据提供了示例性实施例的结构和使用的完整描述。虽然以上已经以某种程度的特殊性或者参考一个或多个个体实施例描述了各种实施例,但是本领域技术人员可以在不脱离本说明书的精神或范围的情况下对所公开的实施例进行多种改变。