应用策略以在虚拟机之间调度网络带宽的制作方法

文档序号:6360738阅读:128来源:国知局
专利名称:应用策略以在虚拟机之间调度网络带宽的制作方法
应用策略以在虚拟机之间调度网络带宽背景大规模联网系统是在用于为业务和操作功能运行应用和维护数据的多种设定中使用的常见平台。例如,数据中心(例如物理云计算基础设施)可同时为多个顾客提供多种服务(例如web应 用、电子邮件服务、搜索引擎服务等等)。这些大规模联网系统通常包括遍及该数据中心分布的大量资源,其中每个资源都类似于物理机或在物理节点或主机上运行的虚拟机(VM)。当数据中心托管多个承租人(例如顾客程序)时,这些资源被最优地从同一数据中心分配给不同的承租人。通常,多个VM会并发地在计算网络或数据中心内的同一物理节点上运行。可将这些共享公共物理节点的VM分配给不同的承租人,且VM可能在不同的时间要求不同数量的资源。例如,通常只有一个网卡安装在一个物理节点上,其中网卡具有数量有限的网络带宽。当一个承租人要求高数量的资源以完成特定任务时,运行在物理节点上的该承租人的VM中的一个可能会通过在网卡上发送大量的分组而对网卡施压,阻止运行在该物理节点上的其他VM公平地共享其资源。因此,因为对数据中心内的处理能力的最优分配通常涉及将多个VM放置在单个物理节点上,并且因为这些VM要求资源(例如,网络带宽)以执行大多数操作,通过在资源消耗上施加限制来允许同一物理节点上的VM公平地共享网络带宽的机制将帮助减少对可用资源的施压并将帮助维护提供给数据中心的承租人的高质量服务。概述提供本发明内容是为了以简化的形式介绍将在以下详细描述中进一步描述的概念。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。本发明的实施方式提供了允许驻留在公共物理节点上的虚拟机(VM)公平地共享由物理节点提供的资源(例如,网络带宽)的机制。通常,公平地共享资源涉及在资源消耗上施加限制以改善对网络带宽的施压或对向VM驻留其中的数据中心的承租人保证的服务质量的负面影响。在示例性实施例中,限制的施加可涉及提供通过根据策略将网络带宽分配给共享的物理机器上的VM中的每一个来动态地控制VM体验的管理实用程序(例如,图5-7的调度器401)。换言之,管理实用程序可授予物理机器所有者或数据中心的承租人用于配置控制VM对网络带宽的使用的策略的能力。除了用作接受由一个或多个实体所规定的策略的接口,管理实用程序还可强制实施这些策略从而使得特定质量的服务(例如,对每个VM保证的最小/最大网络带宽)被提供给VM。在强制实施这些策略的一个实例中,管理实用程序可采用用于控制从VM发送的通信量的速率限制技术。作为实例,一个速率限制技术可指令当自VM的数据流的速率消耗比当前分配给VM的少的资源时数据分组自由地从VM传递给网络。一般而言,所分配的资源是由与VM相关联的策略指定的。另一个速率限制技术可指令当VM试图使用比当前分配给它的资源多的资源时丢弃或延迟数据分组。
如将在下文中更完全描述的,一组令牌桶队列和调度器可在物理节点上实现以执行这些速率限制技术。首先,执行速率限制技术可一开始涉及调度器检查一个或多个写入契约中的服务质量(QoS)策略,其中契约管控网络资源对客户端或数据中心的承租人的分配。接着,调度器可部分地基于客户端契约中的QoS策略将令牌存放进令牌桶队列中。如此处所描述的,令牌桶队列被分配给在由其它VM共享的物理节点上所实例化的一 VM。然后调度器可检查令牌桶队列来查明VM的状态。例如,当所存放的令牌未从令牌桶队列中耗尽时,调度器可检测到VM处于空闲状态。相反,调度器可基于所存放的令牌从令牌桶队列中的耗尽而检测出VM处于活动状态,因为所存放的令牌的部分是根据自VM的数据流的速率而从令牌桶队列中撤回的。在这个实例中,调度器可基于QoS策略和保留在令牌桶队列中的所存放的令牌的一部分将令牌重新加载进令牌桶队列中。如此,使用调度器结合令牌桶队列的网络带宽的分配维护VM之间的公平性同时最大化物理节点上的吞吐量。附图简述·以下参考附图详细描述本发明的各实施例,附图中图I是适用于实现本发明的各实施例的示例性计算环境的框图;图2是示出适用于实现本发明的各实施例的、被配置为在数据中心的物理节点内分配带宽的示例性云计算平台的框图;图3是描述根据本发明的实施例的与外部端点通信的物理节点内的组件的示例性分布式计算环境的框图;图4-6是描述根据本发明的实施例的驻留在单个物理节点上的各虚拟机(VM)和相对应的令牌桶队列之间的各种数据流的框图;图7是根据本发明的实施例的基于其所存放的令牌对数据流计量的令牌桶队列的框图;图8是示出根据本发明的一实施例的对始发自单个物理节点上实例化的多个VM的各种分组的数据流的示例性方法的流程图;以及图9是示出根据本发明的一实施例对自主题VM的数据流的速率施加限制的示例性方法的流程图。详细描述此处用细节来描述本发明的各实施例的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的主题还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。本发明的实施例涉及与在网络边缘上控制交通相对的,对分组源(例如,物理节点上实例化的虚拟机(VM))应用扼流的方法、计算机系统和计算机可读介质。所应用的扼流在操作中可根据与每个VM相关联的契约计量自VM的数据流。在示例性实施例中,计量涉及延迟对超过一个或多个由契约清楚表达的策略的那些分组的投递。作为示例,计量可由暂时存储延迟的分组或使延迟的分组“入列”的令牌桶队列来实现。通常,令牌桶队列充当保持延迟的分组直到网络带宽分配给了始发这些延迟的分组的VM的先进先出(FIFO)缓冲区。分配了足够的网络带宽以后,令牌桶队列被设计为释放延迟的分组以被投递给它们的预期目的地。在一方面,本发明的实施例涉及一种或多种其上包含计算机可执行指令的计算机存储介质,这些指令在被执行时执行用于计量始发自单个物理节点上实例化的多个VM的各种分组的数据流的方法。一开始,该方法包括检查一个或多个写入契约中的服务质量(QoS)策略的步骤。通常,契约管控网络资源对客户端的分配。然后,可部分地基于客户端契约的一个或多个QoS策略将令牌存放在令牌桶队列中。如图4-6示出的,令牌桶队列被分配给物理节点上实例化的VM。可基于所存放的令牌从令牌桶队列中的耗尽而将VM标识为呈现活动状态。(当处于活动状态时,所存放的令牌的一部分根据自VM的数据流的速率从令牌桶队列中撤回。)方法还包括部分地基于(a) QoS策略和/或(b)保留在令牌桶队列中的所存放的令牌的一部分将令牌重载进令牌桶队列的步骤。在另一方面,本发明的实施例涉及能够使用一个或多个由数据中心的 承租人指定的策略对来自VM的分组以什么速率被注入到网络中进行计量的计算机系统。计算机系统包括具有体现于其上的计算机软件组件的计算机存储介质。计算机软件组件包括以下的第一 VM、第二 VM、第一令牌桶队列、第二令牌桶队列和调度器。第一和第二 VM在同一物理节点上被实例化。将第一令牌桶队列分配给第一 W,同时将第二令牌桶队列分配给第二 VM。如此处所使用的,第一令牌桶队列和第二令牌桶队列一般表示位于物理节点上的不同存储器缓冲区。调度器被配置为读取分别与第一 VM和第二 VM相关联的第一客户端契约和第二客户端契约。调度器还能够根据写入到第一客户端契约中的策略将第一个数量的令牌存放进第一令牌桶队列中。类似地,调度器可根据写入到第二客户端契约中的策略将第二个数量的令牌存放进第二令牌桶队列中。如此处所使用的,第一个数量的令牌和第二个数量的令牌各自一般都表示分别分配给第一 VM和第二 VM的物理带宽的部分。通常,第一个数量和第二个数量的令牌基于第一和第二 VM的网络带宽分配之间的差别而在值上不同。在又一方面,本发明的实施例涉及对自主题VM的数据流的速率施加限制的计算机化的方法。在一个实施例中,方法涉及接受来自调度器的令牌的第一存放。通常,在第一存放内提供的一个数量的令牌基于以下中的至少一个当前在令牌桶队列内维护的令牌、分配给与令牌桶队列相关联的主题VM的网络带宽、或者分配给位于与主题VM公共的物理节点上的其它VM的物理带宽。该方法还可涉及根据自主题VM的数据流的速率消耗令牌并在基本上耗尽令牌以后动态地计量数据流速率的步骤。在本发明的实例中,计量的过程可包括将在令牌从令牌桶队列中基本耗尽以前接收的数据流内的分组转发给网络接口组件,或者使在令牌从令牌桶队列中基本耗尽以后接收的数据流内的分组入列。在令牌桶队列接受来自调度器的令牌的第二存放以后,假定第二存放内的令牌有足够的数量以分配由令牌桶队列保持的分组,而可将入列的分组转发给网络接口组件。在简要描述了本发明的各实施例的概览后,以下描述适于实现本发明的各实施例的示例性操作环境。具体而言,示例性操作环境支持一机制的功能,该机制通过在资源消耗上施加限制而允许驻留在公共物理节点上的VM公平地共享网络带宽;因此,改善对网络带宽的过度耗尽或对通过服务契约向VM保证的服务质量的负面影响。概括地参考附图,并首先具体参考

图1,示出了用于实现本发明的各实施例的示例性操作环境,并将其概括地指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的各实施例的使用范围或功能提出任何限制。也不应该把计算环境100解释为对所示出的任一组件或其组合有任何依赖性或要求。本发明的各实施例可以在由计算机或诸如个人数据助理或其它手持式设备之类的其它机器执行的计算机代码或机器可使用指令的一般上下文中描述,该机器可使用指令包括诸如程序组件之类的计算机可执行指令。一般而言,包括例程、程序、对象、组件、数据 结构等的程序组件指的是执行特定任务或实现特定提取数据类型的代码。本发明的各实施方式可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。继续参考图1,计算设备100包括直接地或间接地耦合以下设备的总线110 :存储器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出端口 118、输入/输出组件120、以及说明性电源122。总线110可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。虽然为了清楚起见利用线条示出了图I的各框,但是实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O组件。而且,处理器具有存储器。发明人认识到,这是本领域的特性,并且重申,图I的图示只是例示可结合本发明的一个或多个实施例来使用的示例性计算设备。“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等未被区分开,它们全部都被认为是在图I的范围之内。计算设备100通常包括各种计算机可读介质。作为示例而非限制,计算机可读介质可以包括随机存取存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存或其它存储器技术;CDR0M、数字多功能盘(DVD)或其它光或全息介质;磁带盒、磁带、磁盘存储或其它磁存储设备;或可用于对所需信息进行编码并且可由计算设备100访问的任何其它介质。存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的、不可移动的、或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O组件120等各种实体读取数据的一个或多个处理器。呈现组件116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振荡组件等。I/O端口 118允许计算设备100在逻辑上耦合至包括I/O组件120在内的其他设备,其中某些设备可以是内置的。说明性组件包括话筒、操纵杆、游戏板、圆盘式卫星天线、扫描仪、打印机、无线设备等等。参考图I和2,第一物理节点255和/或第二物理节点265可由图I的示例性计算设备100来实现。另外,虚拟机230、235、270和/或275中的一个或多个可包括图I的存储器112的部分和/或图I的处理器114的部分。类似地,图4-6的令牌桶队列231、236、271和/或276可包括图I的存储器112的部分和/或图I的处理器114的部分。现在转到图2,示出了根据本发明的实施例示出示例性云计算平台200的框图,该云计算平台200被配置为对数据中心225内的虚拟机230、235、270和275分配网络带宽以供各种服务应用使用。作为示例,服务应用290包括分别在物理节点255和256上实例化的虚拟机235和270,以支持服务应用290的功能。能够理解和明白,图2中所示的云计算平台200仅仅是一个合适的计算环境的示例,并且不旨在对本发明的实施例的使用范围或功能提出任何限制。例如,云计算平台200可以是公共云、私有云、或专用云。也不应该将云计算平台200解释为对其中所示出的任何单个组件或组件组合有任何依赖性或要求。此外,尽管为了清楚起见用线条示出了图2的各个框,但是在实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。另外,可采用任何数目的物理机、虚拟机、数据中心、端点或其组合来在本发明的实施例的范围内实现所期望的功倉泛。云技术平台200包括数据中心225,数据中心225被配置为托管和支持由数据中心225的承租人/顾客所拥有的服务应用(例如,服务应用290)的虚拟机230、235、270和275 或端点的操作。在此使用的术语“服务应用”宽泛地指运行在数据中心225之上或访问数据中心225内的存储位置的任何软件或软件部分。在一个实施例中,虚拟机230、235、270和275中的一个或多个可表示软件部分、组件程序、或者参与服务应用的角色的实例。在另一实施例中,虚拟机230、235、270和275中的一个或多个可表示服务应用可访问的所存储的数据。能够理解和明白,图2中所示的虚拟机230、235、270和275仅仅是支持服务应用的合适部分的示例,并且不旨在对本发明的实施例的使用范围或功能提出任何限制。一般而言,虚拟机230、235、270和275被实例化并基于对服务应用提出的要求(例如处理负载的量)被指定给服务应用。如在此所使用的那样,术语“虚拟机”无意为限制性的,并可指由处理单元执行以支持服务应用的功能的任何软件、应用、操作系统或程序。另夕卜,虚拟机230、235、270和275可包括处理能力、存储位置、以及数据中心225内的其他资产以合适地支持服务应用。在操作中,动态地将物理节点255和265的资源(例如,网络接口卡的网络带宽)分配给虚拟机230、235、270和275以满足当前处理负载同时符合客户端契约的QoS策略211和221。在一个实例中,结构控制器210负责自动地将这些QoS策略211和221分别下推到调度器201和202。作为示例,结构控制器210可依靠服务模型(例如由拥有服务应用的顾客来设计)来提供关于如何和何时将诸如处理能力的资源分配给虚拟机230、235、270和275的指导。在另一示例中,结构控制器210可被配置为解析服务级协定(SLS)以标识哪个保证被提供给哪个顾客和哪个运行顾客的服务应用的组件。这些保证可按照QoS策略211和221的形式投递给调度器201和202。在操作中,调度器201和202通过令牌桶队列(以下将讨论)强制实施QoS策略211和221。如此处所使用的那样,术语“调度器”无意为限定性的,而是可以涵盖通过从集中式实用程序(例如结构控制器210)接收指令和强制实施指令内的QoS策略来促进网络带宽管理的任何机制。在一示例性实施例中,调度器201和202可监视始发自物理节点255和265上的VM中的每一个的数据流,并将数据流与QoS策略相比较以得到要被分配给虚拟机230,235,270和275的适当数量的网络带宽。在计算机网络(例如分组交换电信网络)领域内,通信量工程术语“QoS策略”指用于实现资源的保留和在VM间的分配的蓝图。一般而言,“服务质量(QoS)”指对不同服务应用、应用组件(例如VM)、用户或数据流提供不同优先级以便保证其某一性能级别的能力。例如,可对特定上下文中的特定VM保证固定比特率。如此,QoS策略211和221的保证有利地用作对为用户调度资源的指导,其中用户在有限容量的物理节点内共享同一网络资源。如上所述的,可动态地向一个或多个VM分配第一物理节点255和第二物理节点265内的资源。按照本发明的实施例,物理节点255和265可表示任何形式的计算设备,比如例如个人计算机、台式计算机、膝上型计算机、移动设备、消费者电子设备、服务器、图I的计算设备100等等。在一个实例中,物理节点255和265分别托管和支持虚拟机230、235、270和275的操作,并同时托管被开辟为支持数据中心225的其他承租人的其他虚拟机(未示出),其中承租人包括由不同顾客拥有的其他服务应用的端点。一方面,VM在云计算平台200的上下文内操作,并且因此可在一个物理节点以内通信、通过动态地形成的遍历数据中心225的连接跨物理节点255和265通信、以及通过到远程物理的资源(例如图3中企业私有网络325的资源375)的物理网络拓扑进行外部通信。连接可涉及通过网络云(未示出)来互连跨数据中心225的物理资源分布的虚拟机。网络云 互连这些资源,使得一个VM可以识别另一个VM的位置以便建立其间的通信。例如,网络云可通过连接服务应用290的VM 235和270的信道来建立该通信。作为示例,这些信道可包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。此类联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。因此,网络不在此进一步描述。现在转到图3,示出了根据本发明的实施例示出示例性分布式计算环境300的框图,该分布式计算环境300具有建立在其中的两个VM 270和275。首先,分布式计算环境300包括物理网络380,该物理网络380包括企业私有网325和云计算平台200,这参考图2予以讨论。如在此所述使用的那样,术语“私有网”无意为限制性的,而是可涵盖促进地理上为远程的位置间的通信的有形机构和设备(例如光纤线、电路箱、交换机、天线、IP路由器等等)和无形通信和载波。作为示例,物理网络380可包括用在因特网内或者可用于提升不同网络间通信的任何有线或无线技术。一般而言,数据中心225的顾客通常要求运行在其资源上的服务应用与运行在另一个位置诸如私有企业网络325的软件进行交互。如此处所使用的,术语“私有企业网络”一般指由地理上远程于数据中心225的、顾客或云技术平台200的客户端所管理的服务器。在图3所示的实施例中,企业私有网325包括诸如资源330之类的资源,所述资源由云计算平台200的客户端来管理。这些资源常常托管和支持顾客所拥有的服务应用的组件的操作。如附图标记315所描绘的,在物理网络380内建立网络。通常建立网络315以在端点之间传输分组。作为示例,网络315用于在第二物理节点255上实例化的VM270和275同资源330之间运送分组316。在操作中,VM270和275都可始发包括分组的数据流。这些数据流可由网络接口控制器(NIC)队列拦截,该NIC队列结合自虚拟机275的第二数据流对自虚拟机270的第一数据流计量。一般而言,NIC队列用作内部过滤器,其可控制地将第一和第二数据流的分组转发给网络接口组件310。在将所计量的数据流传递给可被配置为网络适配器或网络接口卡的网络接口组件310之后,网络接口组件310将数据流的分组316释放进网络315中。换言之,网络接口组件310从NIC队列320处接收所计量的第一数据流和所计量的第二数据流,并从第二物理节点255处释放包括所计量的第一和第二数据流内的分组316的受控通信量。在其它实施例(未示出)中,可在虚拟机270和275本身以内设置网络接口控制器的虚拟化实现(VNIC)以自我调节传出分组的速率。如上所述,网络315由它可用的网络带宽所限制,而第二物理节点255配备以特定数量的资源(例如网络接口组件310的有限的处理能力)。因此,如果没有用于公平地分配网络带宽和/或资源的附加机制就绪,VM 270和275可能会为网络带宽和/或资源竞争而不考虑预定义的QoS策略。例如,一旦建立了网络315之上的连接,虚拟机270可试图独立于其它使用消耗所有网络带宽,因而降低也在试图向端点发送分组的虚拟机275的性能。如此,本发明的示例性实施例弓I入分派给每个VM的令牌桶队列,该令牌桶队列使用由数据中心225的承租人所指定的QoS策略对来自VM的分组以什么速率被注入进网络315中进行计量。以下参考图4-7将立即描述这些令牌桶队列。通常,资源330和数据中心225包括、或链接到某种形式的计算单元(例如中央处理单元、微处理器等等)以支持虚拟机270和275和/或其上运行的组件的操作。如在此所使用的那样,术语“计算单元”通常是指具有处理能力和存储存储器的专用计算设备,该专用计算设备支持一个或多个操作系统或其他底层软件。在一个实例中,该计算单元是用有·形硬件元件或机器来配置的,所述有形硬件元件或机器集成于、或者可操作地耦合到资源330和数据中心225以使得每个设备都能够执行多种过程和操作。在另一实例中,该计算单元可以涵盖处理器(未示出),该处理器耦合到由资源330和数据中心225中的每个所容纳的计算机可读介质。一般而言,计算机可读介质至少临时地存储可由处理器执行的多个计算机软件组件(例如虚拟机270和275)。如本文所使用的,术语“处理器”不旨在是限制性的,并且可涵盖具有计算能力的计算单元的任何元素。在这种能力中,处理器可被配置成处理指令的有形物品。在示例性实施例中,处理可以包括取指令、解码/解释指令、执行和写回指令。现在转到图4,示出了根据本发明的实施例描绘VM 230,235,270和275之间的各种数据流以及分别相对应的令牌桶队列231、236、271和276的框图。首先,这些多个VM每个都驻留在单个物理节点400上。因此,这些VM 230、235、270和275有责任公平地共享网络资源,诸如供应给其的网络链接/连接或带宽。提供知道VM 230,235,270和275与分别分派给它们的令牌桶队列231、236、271和276之间的映射的路由组件410。在操作中,路由组件410被配置为在检测到一个或多个VM试图将数据流发送给物理节点400外部的端点以后访问该映射,并基于映射将数据流路由到一个或多个令牌桶队列。作为示例,路由组件410可捕获数据流、将数据流的源标识为虚拟机230、并使用映射来确定应当将数据流传递给令牌桶队列231,其中令牌桶队列231被分派给虚拟机230。以上描述的实施例通常在数据流内的分组被定址到物理节点400之外的目的地时应用。如果数据流内的分组被定址到物理节点400内部的目的地,则路由组件410可直接地将分组路由给目标VM。作为示例,如果VM230正在试图将分组通信给VM 235,路由组件410可将分组传递给VM 235而无需通过分派给VM 230的令牌桶队列231,因而绕过或排除令牌桶队列231的参与。这是由于内部传输分组时没有网络带宽消耗。在物理节点400上提供调度器401。一般而言,调度器401表示基于各种准则动态地将网络带宽分配给VM 230、235、270和275的本地VM管理软件。在各实施例中,调度器在物理节点上以一对一关系的方式实例化。如上所述,调度器401维护从结构控制器(未示出)下推的QoS策略211、212和213,其中结构控制器维护包含QoS策略211、212和213的主要客户或订阅者契约。除QoS策略211、212和213之外,其它信息(例如对QoS策略的变更)可在各种时间段(例如,定期或在接收更新后)从结构控制器迁移至调度器401。在一个实例中,对客户端契约的更新可通过允许管理员为VM 230、235、270和275指定QoS策略的用户模式API作出。作为示例,可在用户模式API中输入相对权重或绝对带宽的值。“相对权重”和“绝对带宽”是在用于分配网络带宽的互相对立、彼此互斥的方案中使用的变量,这将在以下更详细地讨论。在操作中,调度器401能够检查写入到一个或多个客户端契约中的QoS策略211、212和213。如上所述,客户端契约管控网络资源对VM 230、235、270和275的分配。(因为VM 235和VM 270是公共服务应用(见图2的附图标记290)的组件,QoS策略212管控对VM235和270 二者的网络带宽的分配。)在对QoS策略211、212和213的检查之后,调度器401可部分地基于QoS策略211、212和213将令牌存放进令牌桶队列231、236、271和276。如此处所使用的,术语“令牌”无意为限制性的,而是可涵盖被分配给一个或多个VM的网络 带宽的一部分的任何表示。提供令牌桶队列231、236、271和276以便根据所存放的令牌施加对分别流自它们相对应的VM 230、235、270和275的数据流的速率的限制。下面将参考图7和9讨论用于施加对数据流速率的限制的过程。图9示出描绘用于限制数据流速率的示例性方法900的流程图,同时图7示出用于基于其中所存放的令牌732、733和734计量数据流的令牌桶队列710的框图。首先,方法900涉及接受来自调度器401的令牌(例如,令牌732、722和734)的第一存放,如框910所示。通常,第一存放内提供的令牌的数量是基于以下中的至少一个当前令牌桶队列710内所维护的令牌732、733和734、分配给与令牌桶队列710相关联的主题VM 230的网络带宽、或者分配给与主题VM 230位于公共物理节点400上的其它VM的网络带宽。方法900还可涉及根据自主题VM 230的数据流的速率消耗令牌732、733和734(见框920),和在基本耗尽令牌732、733和734之后动态地计量数据流速率(见框930)的步骤。在本发明的实例中,计量的过程可包括,将在令牌732、733和734从令牌桶队列710中基本耗尽之前接收到的数据流之内的分组转发到网络接口组件310,如框940所示,或者,当令牌732、733和734从令牌桶队列710中基本耗尽以后,可使数据流以内的后续分组入列,如框950所示。作为示例,令牌桶队列710可包括令牌组件730,其周期性地接收由调度器401存放其中的一个数量的令牌(例如,令牌732、733和734),并根据自VM 230的数据流的速率消耗它们。具体而言,如图7所示,当VM 230发送数据流到令牌桶队列710时,在将分组722、723和724从队列组件720中释放之前从令牌组件730中扣除规定数量的令牌732、733和734。队列组件720用于在令牌组件730维护的令牌数量对消耗而言不足时在内部使由令牌桶队列710接收的分组入列。如所示的,在分组722、723和724消耗当前所存放的包732、733和734之后分组721没有相对应的令牌。因此,队列组件720会排除对分组721的释放,直到将足够的令牌重载到令牌组件730中。在令牌桶队列710的令牌组件730接受了来自调度器401的令牌的另一存放时,可将已入列的分组721从队列组件720中释放。另外,可将分组721转发给网络接口组件310,假定后续存放内的令牌在数量上足够分配由令牌桶队列710保持的分组721。此过程在方法900内框960处示出。转向图4-6,现在将讨论关于绝对带宽和相对权重的方案。首先,用于分配网络资源的“绝对带宽方案”涉及将特定数量的令牌分配给VM而不管由占据同一物理节点的其它VM当前正在使用的物理资源。例如,如果物理节点400有IOMB的可用网络资源,可将4MB作为绝对值分配给VM270。如上所述,分配4MB可涉及将等于4MB的一个数量的令牌存放进令牌桶队列271。如果其它VM 230,235或275中的一个呈现为空闲状态(停止使用网络资源),VM 270将继续被分配一致的4MB网络资源。在其它实施例中,用于分配网络资源的“相对权重方案”涉及将相对于由占据同一 物理节点的其它VM当前正在使用的物理资源的一个数量的令牌分配给VM。例如,参考图5,如果物理节点400有IOMB的可用网络资源,可将3MB作为相对值分配给VM 275,其中权重是可用带宽的1/3。如所示的,也向其余的活动的VM 230和235提供了可用带宽的1/3的权重(即预定义的比例)。分配3MB的相对值涉及将等于3MB的一个数量的令牌存放进每一个令牌桶队列231、236和276中。如描述的,VM 270呈现空闲状态(停止使用网络资源)。因此,根据相对权重方案,最初分配给VM 270的网络资源在处于活动状态的VM230、235和270中分掉了。但是,在实施例中,QoS策略可保留特定数量的带宽给处于空闲状态的VM。所保留的此带宽不能被分配给处于活动状态的VM。在图5所描绘的场景中,保留了 IMB给VM 270,所分配的物理带宽加起来只能有9MB。应当注意,在设置QoS策略的时候,为物理节点400上的所有VM的总保留量不能大于其所供应的可用带宽。在分配令牌时,可周期性地调用调度器401 (例如,20毫秒),或在事件发生以后动态地触发它,以重载分派给保持在活动状态的VM的令牌桶队列。调度器401可基于驻留在VM所分派的令牌桶队列中的未使用令牌检测那些呈现空闲状态的VM。如此,调度器401可放弃重载处于空闲状态的VM的令牌桶队列,但可基于它们的QoS策略保留令牌,如上所述。而且,调度器401可限定基于QoS策略的指令可被分派给特定VM的网络资源或令牌的数量。例如,参考图6,VM 235被限定在3MB,尽管它被授予了可用带宽的1/3的相对值。因此,在操作中,该限定提供数据流可消耗的物理资源的最大数量,即使可用带宽的一部分仍保持为未分配(例如,由于空闲VM)。现在转向图8,示出了根据本发明的实施例示出用于计量始发自单个物理节点上实例化的多个VM的各种分组的数据流的示例性方法800。首先,方法800包括检查一个或多个写入契约中的QoS策略的步骤,如框810所示。通常,契约管控网络资源对客户端的分配。然后,部分地基于客户端契约的QoS策略,将令牌存放进令牌桶队列,如框820所示。如图4-6示出的,令牌桶队列被分派给物理节点上实例化的VM。基于所存放的令牌从令牌桶队列中的耗尽,可将VM标识为呈现活动状态,如框830所示。(当处于活动状态时,所存放的令牌的一部分根据来自VM的数据流的速率从令牌桶队列中撤回。)方法800还可包括根据QoS策略、保留在令牌桶队列中的所存放的令牌的一部分、或其他准则将令牌重载进令牌桶队列中,如框840所示。参考各具体实施例描述了本发明的各实施例,各具体实施例在所有方面都旨在是说明性的而非限制性的。在不背离本发明范围的情况下各替换实施例对本发明的各实施例的所属领域的普通技术人员将变得显而易见。从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的和目标,并且具有对于该系统和方法是显而易见且固有的其他优点。可以理解,某些特征和子组合是有用的,并且可在不参考其他特征和子组合的情况下使用。这由权利要求所构想的,并在权利要求的范围内。 ·
权利要求
1.一个或多个其上包含计算机可执行指令的计算机存储介质,这些指令在被执行时执行用于计量始发自单个物理节点上实例化的多个虚拟机(VM)的各种分组的数据流的方法,该方法包括 检查一个或多个写入到契约中的服务质量(QoS)策略,其中所述契约管控网络资源对第一客户端的分配; 部分地基于所述第一客户端契约的所述一个或多个QoS策略将令牌存放进第一令牌桶队列,其中所述第一令牌桶队列被分派给在所述物理节点上实例化的第一 VM ; 基于所述存放的令牌从所述第一令牌桶队列中的耗尽检测到所述第一 VM处于活动状态,其中所述存放的令牌的一部分根据来自所述第一 VM的所述数据流的速率从所述第一令牌桶队列中被撤回;以及 部分地基于所述一个或多个QoS策略和保留在所述第一令牌桶队列中的所述存放的令牌的一部分将令牌重载进所述第一令牌桶队列中。
2.如权利要求I所述的一个或多个计算机可读介质,其特征在于,所述方法还包括 基于所述存放的令牌在所述第一令牌桶队列中没有使用检测代所述第一 VM处于空闲状态,其中当所述第一 VM停止从其传输分组时所述存放的令牌不从所述第一令牌桶队列中撤回;以及 部分地基于所述第一 VM的所述空闲状态放弃将令牌重载进所述第一令牌桶队列中。
3.如权利要求2所述的一个或多个计算机可读介质,其特征在于,检查一个或多个写入到契约中的QoS策略包括当所述第一 VM呈现所述空闲状态时为所述第一令牌桶队列确定保留的令牌的最小数量。
4.如权利要求I所述的一个或多个计算机可读介质,其特征在于,所述方法还包括 检查一个或多个写入第二客户端契约的QoS策略,该第二客户端契约管控网络资源对在所述物理节点上实例化的第二 VM ;以及 部分地基于所述第二客户端契约的所述一个或多个QoS策略将令牌存放进第二令牌桶队列中,其中所述第二令牌桶队列被分派给所述第二 VM。
5.如权利要求4所述的一个或多个计算机可读介质,其特征在于,将令牌存放进第一令牌桶队列包括将第一数量的令牌存放到所述第一令牌桶队列中,其中将令牌存放进第二令牌桶队列包括将第二数量的令牌存放进所述第二令牌桶队列中,且令牌的所述第一数量和所述第二数量的值不同。
6.如权利要求5所述的一个或多个计算机可读介质,其特征在于,所述第一数量基于与所述第一 VM相关联的第一权重,所述第一权重至少相对于与所述第二 VM相关联的第二权重,其中第一权重和所述第二权重是由所述第一客户端契约和所述第二客户端契约分别指定的。
7.如权利要求6所述的一个或多个计算机可读介质,其特征在于,所述方法还包括 标识当前在网络接口组件可用的网络带宽,其中所述网络接口组件用于控制从所述物理节点到网络的通信量;以及 使用所述可用的网络带宽来确定将被存放进所述第一令牌桶队列的所述令牌的第一数量。
8.如权利要求7所述的一个或多个计算机可读介质,其特征在于,所述方法还包括使用写入到所述第一客户端的所述一个或多个QoS策略来确定存放进所述第一令牌桶队列的令牌的最大数量;以及 在所述第一令牌桶队列撤回所述最大数量的令牌时限定来自所述第一 VM的所述数据流的速率。
9.一种能够使用一个或多个由数据中心的承租人指定的QoS策略来计量来自虚拟机的分组以什么速率被注入到网络中的计算机系统,其特征在于,所述计算机系统包括具有体现于其上的多个计算机软件组件,所述计算机软件组件包括 在物理节点上实例化的第一 VM ; 在所述物理节点上实例化的第二 VM ; 被分派给所述第一 VM的第一令牌桶队列; 被分派给所述第二 VM的第二令牌桶队列,其中所述第一令牌桶队列和所述第二令牌桶队列表示位于所述物理节点上的不同存储器缓冲区;以及 读取分别与所述第一 VM和所述第二 VM相关联的第一客户端契约和第二客户端契约的调度器,该调度器根据所述第一客户端契约内的所述一个或多个QoS策略将第一数量的令牌存放进所述第一令牌桶队列中,并根据所述第二客户端契约内的所述一个或多个策略将第二数量的令牌存放进所述第二令牌桶队列中,其中所述第一数量的令牌和所述第二数量的令牌各自表示分别被分派给所述第一 VM和所述第二 VM的网络带宽的一部分,而且其中所述令牌的第一数量和第二数量的值不同。
10.如权利要求9所述的计算机系统,其特征在于,所述第一VM在分组的第一数据流中的分组从所述物理节点中被释放以前将所述第一数据流发送给所述第一令牌桶队列,并且所述第二 VM在分组的第二数据流中的分组从所述物理节点中被释放以前将所述第二数据流给所述第二令牌桶队列。
11.如权利要求10所述的计算机系统,其特征在于,在接收所述第一数据流时,所述第一令牌桶队列对所述第一数据流内的每个分组减少规定数量的存放在其中的令牌,并且,在接收所述第二数据流时,所述第二令牌桶队列对所述第二数据流内的每个分组减少规定数量的存放在其中的令牌。
12.如权利要求11所述的计算机系统,其特征在于,所述计算机软件组件还包括路由组件,该路由组件在所述第一 VM试图将所述第一数据流发送给所述物理节点外部的端点时访问所述第一 VM和所述第一令牌桶队列之间的映射,并基于所述映射将所述第一数据流路由到所述第一令牌桶队列。
13.如权利要求12所述的计算机系统,其特征在于,所述计算机软件组件还包括网络接口控制器(NIC)队列,该网络接口控制器队列结合来自所述第二令牌桶队列的所述第二数据流计量来自所述第一令牌桶队列的所述第一数据流。
14.如权利要求13所述的计算机系统,其特征在于,所述计算机软件组件还包括网络接口组件,该网络接口组件从NIC队列接收所述计量的第一数据流和所述计量的第二数据流,并从所述物理节点释放包括所述计量的第一数据流和所述计量的第二数据流内的分组的受控通信量。
15.一种用于对流自主题虚拟机(VM)的数据流的速率施加限制的计算机化方法,其特征在于,所述方法包括接受来自调度器的令牌的第一存放,其中所述第一存放内提供的令牌的数量基于以下中 的至少一个当前在令牌桶队列内维护的令牌、分配给与所述令牌桶队列相关联的所述主题VM的网络带宽、或分配给与所述主题VM位于公共物理节点上的其它VM的物理带宽;根据来自所述主题VM的所述数据流的速率消耗所述令牌;以及在基本耗尽所述令牌时动态地计量所述数据流速率,其中计量包括 (a)将在所述令牌从所述令牌桶队列中基本耗尽之前接收的所述数据流内的分组转发给网络接口组件; (b)将在所述令牌从所述令牌桶队列中基本耗尽之后接收的所述数据流内的分组入列; (c)在所述令牌桶队列接受来自所述调度器的令牌的第二存放时将入列的分组转发给所述物理接口组件。
全文摘要
提本发明供用于允许驻留在公共物理节点上的虚拟机(VM)公平地共享网络带宽的计算机化的方法、系统和计算机存储介质。实现对资源消耗的限制以改善对网络带宽的施压或对向物理节点的承租人保证的服务质量(QoS)的不利影响。限制涉及提供根据QoS策略动态地控制分配给VM中的每一个的网络带宽。这些QoS策略通过控制从VM发送的通信量来强制实施。控制通信量包括将令牌存放进分别分配给VM的令牌桶队列中。令牌随着分组通过令牌桶队列而消耗。在消耗以后,保持分组直到足够的令牌被重载进令牌桶队列中。
文档编号G06F9/44GK102918499SQ201180026749
公开日2013年2月6日 申请日期2011年5月11日 优先权日2010年5月31日
发明者左钥, 邹浩源, H·H·沃, S·N·阿拉菲, V·P·迪瓦卡拉, 邓亦敏, F·C·福尔茨, V·巴努 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1