动态排队和绑定以提高虚拟环境中的上行链路上的服务质量的制作方法

文档序号:7886097阅读:118来源:国知局
专利名称:动态排队和绑定以提高虚拟环境中的上行链路上的服务质量的制作方法
技术领域
本公开总地涉及服务质量(QoS)排队并且更具体地涉及动态分配带宽以更好地利用虚拟计算和联网环境中的流量类别。
背景技术
QoS排队允许网络管理者基于QoS流量类别分配带宽。在虚拟环境中,虚拟机(VM)接口被设置以处理网络上的VM流量。即使环境是“虚拟的”,被发送到主机或服务器外部的流量仍然在物理链路上传送。一个流量类别可以被分配一个或多个物理链路上的可用带宽的一部分,例如流量类别X可以被分配物理链路I上的可用带宽的40%以及物理链路2上的可用带宽的60%。其它流量类别可以类似地被分配。假设有两个具有同样容量的物理链路,则流量类别X被分配总可用带宽的50%。当两个(或多个)物理链路被配置有相同的网络连接(例如VLAN)和排队策略时,每个物理链路都可以被用于运送服务器流量。两个(或多个)物理链路可以在逻辑上被组合以形成上行链路组、端口通道(PC)或者端口组。PC和端口组是上行链路组的示例。每个物理链路可以被称为上行链路组或PC的成员。主机内可以存在不止一个这样的物理链路组。VM接口可以与组内的特定物理链路建立联系(绑定)或者其流量可以被分配在组中的多个成员上,即在一些实现方式中,VM接口不被绑定到特定的物理链路。


图2是具有虚拟模块的主机设备的框图的示例,所述虚拟模块被配置为根据这里所描述的技术在上行链路组的成员之间优化流量份额。图3是描述针对上行链路组的带宽分配的饼图的示例。图4a是描述针对上行链路组的带宽利用的饼图的示例。图4b是描述在根据第一示例流量份额已在上行流量组的成员之间被优化之后针对图4a的上行链路组的带宽重新分配的饼图的示例。图5是总地描述用于重新分配流量份额的过程的流程图的示例。图6是描述用于根据第一示例重新分配流量份额的来自图5的过程的继续的流程图的示例。图7是描述通过以下操作进行的针对图4a的上行链路组的带宽重新分配的饼图的示例,所述操作即根据第二示例动态地将VM接口从第一物理链路的一个成员重新绑定到第二物理链路的成员。图8是描述用于根据第二示例重新分配流量份额的来自图5的过程的继续的流程图的示例。图9a是被配置为通过QoS散列在成员之间优化流量份额的来自图2的虚拟模块的框图的示例。
图9b是描述通过QoS散列在上行链路组的成员之间的VM接口分配的饼图的示例。图10是总地描述用于通过QoS散列在上行链路组的成员之间分配VM接口的过程的流程图的示例。
具体实施例概览本发明提供了用于提高虚拟环境中的上行链路上的服务质量的技术。在具有被配置为通过网络向或从服务器装置传送流量的多个物理链路的服务器装置处,形成包括多个物理链路的上行链路组。第一类服务被定义,所述第一类服务占用所述上行链路组上的可用带宽的第一份额,并且第二类服务被定义,所述第二类服务占用所述上行链路组上的可用带宽的第二份额。用于所述第一类服务的带宽被分配到上行链路组的多个物理链路上,并且用于所述第二类服务的带宽被分配到上行链路组的多个物理链路上。所述多个物理链路中的每个物理链路上的流量速率被监控以确定物理链路是否拥塞,指示对于一类服务存在带宽不足。作为对确定所述多个物理链路中的一个物理链路拥塞的响应,为一类服务重新分配带宽以减少对于相应类别的服务的带宽不足。本发明还提供了用于根据QoS散列结果向成员指定新的VM的技术。对于包括在服务器装置处的多个物理链路的上行链路组中的每个成员,根据相应的类别,针对上行链路组中的每个成员,服务类别的用户的当前数目被跟踪。在所述服务器装置处,针对在服务器装置上运行的与特定类别的服务相关联的VM的VM接口请求被接收。确定相应类别的哪个成员具有针对所述特定类别的服务的最小数目的类别用户。VM被指定给具有最小数目的类别用户的成员。示例实施例首先参考图1,描述较大的网络中的相关部分的示例系统100被示出。系统100包括标号为110(1)的服务器或主机设备主机I和标号为110(2)的主机2,以及交换机120(1)和120(2)。主机110(1)和110(2)通过网络接口卡(NIC) 125 (I)和125(2)将上行数据流传送到交换机120(1)和120(2)。NIC 125(1)和125(2)分别具有至少两个物理传输(TX)上行链路130(1)-130(2)和130 (3)-130 (4)。TX上行链路分别包括用于将流量发送给交换机的发送器,并且在这里可以被简单地称为上行链路。在该示例中,来自主机110(1)的上行链路I 130 (I)和上行链路2 130 (2)形成上行链路组140 (I),而来自主机110 (2)的上行链路I 130(3)和上行链路2 130(4)形成上行链路组140(2)。上行链路组140(1)和140(2)的逻辑特质用环绕上行链路流量箭头的虚线圈来表示。主机110(1)和110(2)是物理服务器计算设备。主机110(1)和110(2)分别可以具有正在运行的一个或多个VM。如图所示,主机110(1)具有 VMl 150(1), VM2 150(2)和 VM3 150 (3),并且主机 110 (2)具有 VMl 150(4)、VM2 150(5)和VM3 150 (6)。VM在公知为管理程序的硬件抽象层上运行,所述管理程序为用于端用户的VM所服务的应用提供了操作系统独立性。VM 150(1)-150(6)中的任意VM能够利用被称为VM迁移的过程以相对无缝的方式从一个物理主机迁移到另一物理主机,例如VM 150(1)可以无中断地从主机110(1)迁移到另一物理主机。
去往用于VM的上行链路130(1)-130(4)的VM接口分别由虚拟模块170(1)和170(2)管理。在一个示例中,虚拟模块可以是基于软件的虚拟以太网模块(VEM),该模块与管理程序相结合地运行以提供VM服务(例如交换操作)、这里所描述的QoS功能以及安全和监控功能。VM150(1)-150(6)中的每个VM通过虚拟(机)网络接口卡(vmnic)进行通信。在该示例中,VM 150(1)-150(4)通过vmnic 180(1)-180(6)进行通信。虽然每个主机只有三个VM被显示,但是任意数目的VM可以被使用,直到达到系统限制为止。系统100以简单的形式示出了允许很方便地针对这里所提供的技术进行描述的体系结构。图1示出了两个主机110(1)和110 (2)、两个交换机120 (I)和120(2)以及每个交换机的两个上行链路130⑴和130⑵以及130 (3)和130 (4),从而形成了一个完全地二进制示例。图1示出了来自上行链路1(即上行链路130(1)和130(3))的流量被发送到交换机120 (I),并且来自上行链路2 (即上行链路130(2)和130(4))的流量被发送到交换机120(2)。这种配置示出了上行链路冗余可以通过两个主机110(1)和110(2)以及两个交换机120(1)和120(2)被提供。图1中所示的示例可以通过单个主机和单个交换机或者任意数目的主机和交换机来实现。主机110(1)和110(2)可以具有不止两个物理上行链路,每个上行链路可以作为多个双向网络接口、卡或单元(例如NIC 125(1)和125(2))的一部分,并且每个物理链路不需要具有相同的带宽容量,即一些链路比其它链路可能能够运送更多的流量,即使这些链路是被组合在相同的上行链路组中。对于一些实现方式(例如当上行链路组为PC时),物理上行链路具有相同的带宽容量可能是有益的。虽然这里所描述的技术是参考上行链路被进行描述的,但是这里所描述的QoS流量优化也可以被用在下行链路通信上。此外,交换机120(1)和120(2)可以包括任何其它类型的网络元件,例如路由器。物理链路可能会由于在用户、应用和存储设备之间交换的数据的突发性或可变性而变得拥塞。例如,如果具有相同类别的服务的两个用户通过他们相关联的VM被分配到相同的物理链路上,并且这两个用户在进行高数据速率操作,则相关联的物理链路可能会变得拥塞,从而限制或阻塞用于给定服务类别的带宽。拥塞可能导致签约的服务提供商不能满足所签约的服务/QoS级别(例如根据服务级别协议(SLA))。这可能导致给客户的不希望有的折扣或其它酬金。此外,非VM流量也通过相同的物理上行链路130(1)-130(4)被支持。例如,上行链路可能需要支持用于互联网小型计算机系统接口(iSCSI)通信、网络文件系统(NFS)操作、容错、VM迁移和其它管理功能的流量。这些附加的流量类型可能分别享有或者具有它们自己的服务类别并且可能利用不同于vmnic的虚拟网络接口进行操作,例如通过虚拟机内核接口(vmk)进行操作。一些流量类别与其它类别相比更好地分布在多个上行链路上。不管虚拟网络接口的类型如何(例如vmnic、vmk或者其它网络接口),这里所描述的技术都可以运行。这里所描述的技术提供了一种方式以通过允许基于QoS的流量重分配机制或者新的VM接口分配被优化或者改进来减轻可能的服务提供商的收入损失(和/或客户性能酬金),即虚拟机170 (I)和170(2)或者主机110(1)和110(2)的其它硬件和软件组件可以执行如图1中所示的QoS流量份额优化。这些过程被进一步结合余下的附图进行描述。参考图2,主机设备(例如主机110(1))的示例框图被示出。主机设备110(1)包括数据处理设备210、一个或多个NIC 125(1)、多个网络TX上行链路130(1)和130(2)、RX(接收)下行链路230(1)和230(2)以及存储器220。其它硬件、软件或硬件逻辑可以被利用。上行链路130(1)和130(2)以及下行链路230(1)和230 (2)可以是提供多个网络设备之间的双向通信的NIC 125(1)的子组件。上行链路和下行链路分别具有相关联的TX缓冲器240 (I)和240 (2)以及RX缓冲器250 (I)和250 (2),用于发送和接收数据的缓冲,并且可以包括用于其它NIC操作的其它有形的(非暂时性)存储器介质。位于存储器220中的是虚拟模块170 (I),该模块包括用于QoS流量份额优化处理逻辑500的软件。处理逻辑500也可以用硬件来实现或者用硬件和软件的组合来实现。数据处理设备210例如是微处理器、微控制器、片上系统(SOC)或者其它固定的或可编程的逻辑。数据处理设备210在这里也被简单地称为处理器。存储器220可以是任意类型的随机访问存储器(RAM)、FLASH(快闪)存储器、磁盘存储设备或者存储用于这里所描述的技术的数据的其它有形的(非暂时性)存储介质。存储器220可以是单独的或者是处理器210的一部分。用于执行处理逻辑500的指令可以被存储在存储器220中以供处理器210执行,以使得当被处理器执行时使处理器执行这里结合图5、图6、图8和图10所描述的操作。处理逻辑500可以被存储在其它非暂时性存储器上,例如只读存储器(ROM)、可擦除/可编程或者不可擦除/不可编程的或者其它非易失性存储器(NVM)(例如用于主机110(1)的引导存储器)。NIC 125(1)以及上行链路130(1)和130(2)实现主机110(1)和其它网络端点之间的通信。应当理解系统100中的任何设备可以被配置有与主机110(1)类似的硬件或软件配置。处理器210的功能可以用被编码有指令的处理器或计算机可读的有形(非暂时性)介质来实现或者用被编码在一个或多个有形介质中的逻辑(例如诸如专用集成电路(ASIC)之类的嵌入式逻辑、数字信号处理器(DSP)指令、由处理器执行的软件等)来实现,其中存储器220存储被用于这里所描述的计算或功能的数据(并且/或者存储被执行以实现这里所描述的计算或功能的软件或处理器指令)。因而,处理逻辑500的功能可以用固定的逻辑或者可编程的逻辑(例如由处理器或现场可编程门阵列(FPGA)执行的软件或计算机指令)来实现。由主机(例如主机110(1))执行的处理逻辑500在上面已经被总地描述了,并且将结合图4-6被进一步描述,并且更多的特定示例性实施例将结合图7和图8被进行描述。现在转向图3,描述针对上行链路组(例如上行链路组140(1))的带宽分配的图的示例将被描述。在该示例中,物理上行链路130(1)和130(2)根据两类服务(类别Cl和类别C2)被分配带宽。在该示例中,类别Cl和C2在管理上被同等地分配给物理上行链路130 (I)和130 (2),即类别Cl和C2被分配上行链路130 (I)和130 (2)中的每一个链路上的50%的带宽。VM 150(3)是类别Cl的流量并且被分配或MAC绑定到上行链路130(1)上的类别Cl的成员,如图所示,VM 150(1)是类别C2的流量并且被绑定到上行链路130(1)上的类别C2,VM 150(2)是类别C2的流量并且被绑定到上行链路130(2)上的类别C2,并且没有流量被分配给上行链路130(2)上的类别C2。参考图4a,描述针对上行链路组140(1)的带宽利用的图的示例被示出。上行链路组140(1)在一段时间之后被显示。由于还没有类别C2的流量被分配给上行链路130(2),所以VM 150(2)能够“过度利用”上行链路130(2)上可用的带宽。在此时,VM 150(2)正在使用上行链路130(2)上的可用带宽的大约80%。在任意给定时刻,类别分布和/或类别流量都可能由于一些VM的更多的使用而变得不平衡,或者一些流量没有分布在类别的所有成员上。这两种问题都可能导致一个或多个成员变得拥塞,而其它成员没有被充分利用。因此,任一给定类别都可能没有得到被编程到上行链路组的每个成员中的被分配的带宽类别部分中它们的“公平份额”。在该示例中,处理逻辑500检测到在上行链路130(1)上存在拥塞并且类别Cl没有接收到该类别在上行链路组140 (I)的成员上的QoS带宽的公平的50%的份额。处理逻辑500计算针对每个服务类别Cl和C2的带宽不足和富余。类别Cl具有上行链路130(1)上的可用带宽的50%和上行链路130(2)上的可用带宽的0%。因此,类别Cl具有50%的总体带宽不足。类别C2具有上行链路130(1)上的可用带宽的50%和上行链路130(2)上的可用带宽的80%。因此,类别C2具有30%的总体带宽富余。参考图4b,作为类别不足和富余计算的结果,处理逻辑500重新分配带宽以将实际的带宽利用与QoS目标或SLA —致。处理逻辑500将类别Cl重新分配为具有上行链路130(1)上可用带宽的80%的份额。这样,类别Cl的不足已从50%降低到20%并且来自类别C2的富余已被消除。一般来说,富余带宽的消除对于QoS性能来说不是考虑因素。因而,处理逻辑500对带宽利用进行配置以更接近地匹配总体QoS目标。当VM未被绑定于特定的上行链路时,处理逻辑500还引导VM流量以不同地分布在各个上行链路上。现在参考图5,总地描述QoS流量份额优化处理逻辑500的操作的流程图的示例被示出,所述处理逻辑500动态地重新分配流量份额以使当前流量负荷与QoS策略一致。操作510-540是在建立上行链路组(例如上行链路组140(1))的过程中所执行的初步操作,并且不一定与这里所描述的技术密切相关。在510处,在具有被配置为通过网络向或从服务器装置传送流量的多个物理链路(例如至少第一和第二物理链路)的服务器装置(例如主机设备)处,包括所述多个物理链路的上行链路组被形成。在520处,第一类服务被定义,该第一类服务占用上行链路组上的可用带宽的第一份额。在530处,第二类服务被定义,该第二类服务占用上行链路组上的可用带宽的第二份额。在540处,用于每类服务的带宽被分配在上行链路组的多个物理链路上。在550处,多个(例如第一和第二 )物理链路上的流量速率被监控以检测拥塞,所述拥塞指示对于一类服务存在带宽不足。在560处,作为对确定多个物理链路中的一个物理链路拥塞的响应,用于一类服务的带宽被重新分配以在对于相应类别的服务存在带宽不足时减少针对该相应类别的服务的带宽不足。因此,如果确定物理链路未拥塞,则带宽可以被重置为初始带宽分配或者被重新分配以更接近地匹配初始带宽分配。虽然针对这里所提供的示例描述了仅仅两种类别的服务,但是应当理解对于系统来说任意数目的流量类别可以被定义,并且QoS流量份额优化处理逻辑500对任意数目的流量类别进行操作。处理逻辑500可以重新分配用于三个或更多个类别的服务或者三个或更多个物理链路上的带宽。例如,一个或多个附加类别的服务被定义,这些类别的服务占用上行链路组上的可用带宽的份额,并且用于附加类别的服务中的每个类别的服务的带宽被分配在上行链路组的多个物理链路上。处理逻辑500可以按任意方式在所有类别的服务之间重新分配带宽以减少带宽不足。根据第一示例,用于QoS流量份额优化处理逻辑500的流程图在图6中继续。转向图6,在570处,针对每个类别的服务,(上行链路组的所有成员上的)总体带宽不足被计算。在575处,针对每个类别的服务,总体带宽富余被计算。在580处,用于有总体带宽富余的一类服务的带宽份额的一部分被转移给有总体带宽不足的一类服务。不足和富余的计算以及带宽的重新分配可以基本按以上结合图4b的描述所描述的方式进行。富余带宽的一部分可以被转移给具有最大总体带宽不足的一类服务。可选地,带宽可以被转移,直到总体带宽不足被补满或者直到总体带宽富余被用尽为止。通过动态地重新分配流量以满足带宽QoS保证,对于在上行链路组上的各个类别的服务而言,实现了针对带宽的“动态公平”。虽然QoS流量份额优化处理逻辑500在这里被称为“优化”,但是优化可以采用很多种形式。例如,带宽可以被重新分配并且针对类别的整体带宽不足可以不被完全消除,即使当带宽富余在重新分配之后仍然存在。处理逻辑500可以在确定重新分配份额的过程中考虑链路成本、或者利用流量/类别统计信息或者其它历史数据。在一个示例中,回归到历史平均值和进行回归统计所用的时间可以增加或减少被重新分配的“饼”的量。在重新分配期间,特殊的服务类别可以被考虑,例如可移动的VM、高可用性(HA)、控制或管理类别。此夕卜,基于各种被编程的QoS参数本身或者QoS规则的判决可以被使用。参考图7,将根据第二示例性实施例描述替代的重新分配模式。在该示例中,上行链路组140 (I)被示出。处理逻辑500之前已经确定了上行链路130 (I)被拥塞。作为响应,处理逻辑500将类别Cl全部重新分配到上行链路130(1)并且将类别C2全部重新分配到上行链路130(2),如图所示。同时或者几乎同时,处理逻辑500动态地将针对VM 150(1)的流量转移到上行链路130 (2),例如通过重新绑定与VM 150 (I)流量相关联的MAC地址。该过程结合作为图5中所示的流程图的继续的图8被正式地描述。参考图8,在585处,通过将与有带宽不足的一类服务相关联的服务流从一个物理链路转移到另一物理链路(例如从拥塞的链路转移到拥塞较轻的链路),带宽被重新分配。在正常情况下,对MAC地址的重新绑定可能导致当在新的物理链路上重新建立连接时一些分组的丢失,因为一些分组可能未通过与物理上行链路和下行链路相关联的接收和发送缓冲器(例如图2中所示的缓冲器240(1)、240(2)、250(1)和250(2))被完全处理,或者分组可能仍然在传送中。但是,这里所描述的技术实现双标记协议来防止分组丢失。一旦知道VM要被重新绑定到另一上行链路,例如图7中所示的VM150(1),网络就被通知并且第一标记从上行链路130(1)被发送到130(2),同时针对VM 150(1)的流出流量通过上行链路130(1)被保持或排队。当上行链路130(2)接收到标记时,就知道针对VM 150(1)的全部流出流量已被处理(例如通过发送缓冲器)。上行链路130(2)向上行链路130(2)发送移动消息,该消息指示VM 150(1)可以被移到上行链路130 (2)并且针对VM150⑴的流入流量通过上行链路130 (2)被保持或排队。当上行链路130(1)接收到移动消息时,就知道针对VM 150(1)的全部流出流量已被处理(该移动消息用作第二标记)并且被排队的流出流量从上行链路130 (I)被传送到上行链路130 (2)以进行传输。重新绑定完成并且通过上行链路130(2)被排队的任意流入流量被传送给VM 150(1)或者相关联的应用。所述两个标记形成双标记协议。总结来说,双标记协议包括通过与拥塞的链路相关联的发送器将第一标记消息发送给与拥塞较轻的链路相关联的接收器。针对在拥塞的链路处的服务流的流出流量被排队。第一标记消息在与拥塞较轻的链路相关联的接收器处被接收。作为对接收到第一标记消息的响应,针对在拥塞较轻的链路处的服务流的流入流量被排队,并且第二标记消息通过与拥塞较轻的链路相关联的发送器被发送到与拥塞的链路相关联的接收器。第二标记消息被配置为指示服务流的转移。第二标记消息在与拥塞的链路相关联的接收器处被接收。作为对接收到第二标记消息的响应,服务流被转移并且被排队的流出流量被传送给与拥塞较轻的链路相关联的发送器以进行发送,并且被排队的流入流量被传送给与服务流相关联的应用。此外,通过使用双标记协议,移动之间的移动边界或时间可以被大大缩短,从而提高上行链路组的效率。例如,如果重新绑定机制每个小时操作一次,则系统可能在多达一个小时的时间内都运行在不平衡的状态下。这里所描述的技术可以被用于在没有分组丢失的情况下按照与双标记协议的速度相当的速率进行重新绑定。但是,由于在重新绑定过程期间的分组排队,双标记协议会弓I入一些延迟或迟滞。现在转向图9a,来自图2的虚拟模块170(1)被示出。虚拟模块170(1)也可以被装配有QoS流量份额散列(hash)处理逻辑1000。处理逻辑1000可以取代处理逻辑500,或者作为相同处理或软件线程的一部分与处理逻辑500协同操作,或者作为单独的处理或线程进行操作,例如作为实时操作系统(RTOS)的一部分。处理逻辑1000可以按照与上述的处理逻辑500类似的任意方式被存储为软件或者用硬件来实现。处理逻辑1000所执行的QoS散列的简化示例结合图9b被描述,并且用于处理逻辑1000的流程图结合图10被描述。参考图%,上行链路组140(1)被示出,类别Cl和C2被均匀地分配在上行链路130(1)和130 (2)上。为了描述的目的,假设VM迁移带宽910 (I)被分配给上行链路130 (I)类别C1,VM迁移带宽910(2)被分配给上行链路130(2)类别C1,VM 920(1)-920(6)都不工作,并且VM 920(1)-920(6)属于类别C2。当针对VM接口的请求被接收到时,这些请求根据VM 920(1)-920(6)所属于的QoS类别C2被散列。第一个VM接口请求是针对VM 920(1)的。由于该请求是第一个请求,处理逻辑1000任意地将VM 920(1)绑定或分配给上行链路130⑴。第二个VM接口请求被接收,并且由于上行链路130(1)有类别C2的流量并且上行链路130⑵没有类别C2的流量,所以处理逻辑1000将VM 920⑵分配给上行链路130⑵。余下的请求被接收并且VM 920(3)-920(6)按平衡的方式被分配,如图所示。应当理解这是个简化的示例并且VM不需要被均等地分配在上行链路组140(2)的类别C2的成员上,例如其它考虑因素可能要考虑,例如如上所述的统计方法。转向图10,总地描述用于通过QoS散列在上行链路组的成员之间分配VM接口的处理逻辑100的流程图将被描述。在1010处,该过程开始。对于包括在服务器装置处的多个物理链路的上行链路组的每个成员,根据相应的类别,针对上行链路组的每个成员跟踪服务类别的用户的当前数目。这个步骤用1020表示,其中变量或数组Cij跟踪对于类别j在上行链路组成员i上的类别用户的当前数目。在1030处,针对与特定服务类别(例如类别j)相关联的在服务器装置上运行的VM的虚拟机(VM)接口请求被接收。处理逻辑1000确定相应类别中的哪个成员具有针对特定服务类别的最小数目的类别用户。这一步骤被显示在1040处,通过对所有的i迭代通过Cij以确定i_min为针对类别j的成员i与最小值Cij相对应的i值。在1050处,i_min作为计算出的QoS散列值被返回。在1060处,VM被分配给对于类别j具有最小数目的类别用户的成员。在1070处,Cij被更新以反映新添加的VM。一旦接收到新的VM接口请求,该过程就返回到1030。应当理解当VM迁移到另一服务器、被关闭或者从上行链路组中被移除时,Cij也被更新。这里描述了用于形成包括多个物理链路(例如至少第一和第二物理链路)的上行链路组的技术。占用上行链路组上的可用带宽的第一份额的第一类服务被定义。占用上行链路组上的可用带宽的第二份额的第二类服务被定义。用于第一类服务的带宽被分配在上行链路组的多个物理链路上。用于第二类服务的带宽被分配在上行链路组的多个物理链路上。多个物理链路中的每个物理链路上的流量速率被监控以确定物理链路是否被拥塞,指示对于一类服务存在带宽不足。作为对确定物理链路被拥塞的响应,当对于相应类别的服务存在带宽不足时,带宽被重新分配给一类服务以减少针对相应类别的服务的带宽不足。这里还描述了用于根据QoS散列结果向成员分配新的VM的技术。对于上行链路组的每个成员,根据相应的类别,针对上行链路组的每个成员的类别用户的当前数目被跟踪。针对与特定服务类别相关联的VM的虚拟机(VM)接口请求被接收。确定相应类别的哪个成员具有针对特定服务类别的最小数目的类别用户。VM被分配给具有最小数目的类别用户的成员。类似的技术可以被用在下行链路上。这里所描述的技术帮助确保所设置的类别QoS保证,允许带宽份额的动态适配(这对于不能很好地散列的流量或者包括单个流的流量而言特别有用),通过在VM接口分配散列算法中包括QoS类别来避免拥塞,并且通过动态地重新绑定VM服务流来提高利用率。以上描述只是通过示例的方式进行的描述。
权利要求
1.一种方法,包括: 在具有被配置为通过网络向或从服务器装置传送流量的多个物理链路的服务器装置处,形成包括所述多个物理链路的上行链路组; 定义第一类服务,所述第一类服务占用所述上行链路组上的可用带宽的第一份额; 定义第二类服务,所述第二类服务占用所述上行链路组上的可用带宽的第二份额; 将用于所述第一类服务的带宽分配到所述上行链路组的所述多个物理链路上; 将用于所述第二类服务的带宽分配到所述上行链路组的所述多个物理链路上; 监控所述多个物理链路上的流量速率以检测指示对于一类服务存在带宽不足的拥塞;并且 作为对确定所述多个物理链路中的一个物理链路拥塞的响应,为一类服务重新分配带宽以在对于相应类别的服务存在带宽不足时减少对于该相应类别的服务的带宽不足。
2.根据权利要求1所述的方法,还包括: 定义占用所述上行链路组上的可用带宽份额的一个或多个附加类别的服务; 将用于所述附加类别的服务中的每一类服务的带宽分配在所述上行链路组的所述多个物理链路上。
3.根据权利要求1所述的方法,其中所述上行链路组包括端口通道。
4.根据权利要求1所述的方法,还包括作为对确定物理链路未拥塞的响应,将用于被重新分配的类别的服务的带宽重置为用于相应类别的服务的原本被分配的带宽或者重新分配第一和第二带宽份额以更接近地匹配初始的带宽分配。
5.根据权利要求1所述的方法,其中重新分配包括: 计算针对每个类别的服务的总体带宽不足; 计算针对每个类别的服务的总体带宽富余;并且 将用于有总体带宽富余的一类服务的带宽份额的一部分转移给有总体带宽不足的一类服务。
6.根据权利要求5所述的方法,还包括根据带宽不足对有总体带宽不足的服务类别进行分类,并且其中转移包括将用于有总体带宽富余的一类服务的带宽份额的一部分转移给有最大总体带宽不足的一类服务。
7.根据权利要求5所述的方法,其中转移包括将用于有带宽富余的服务类别的带宽份额的部分转移给有带宽不足的服务类别,直到所述总体带宽不足被补满或者直到所述总体带宽富余被用尽为止。
8.根据权利要求1所述的方法,其中重新分配包括将与有带宽不足的一类服务相关联的服务流从所述拥塞的物理链路转移到拥塞较轻的物理链路。
9.根据权利要求8所述的方法,还包括: 经由与所述拥塞的链路相关联的发送器将第一标记消息发送到与所述拥塞较轻的链路相关联的接收器; 对针对所述拥塞的链路上的服务流的流出流量进行排队; 在与所述拥塞较轻的链路相关联的接收器处接收所述第一标记消息; 作为对接收到所述第一标记消息的响应,对针对在所述拥塞较轻的链路上的服务流的流入流量进行排队并经由与所述拥塞较轻的链路相关联的发送器将第二标记消息发送给与所述拥塞的链路相关联的接收器,所述第二标记消息被配置为指示所述服务流的转移; 在与所述拥塞的链路相关联的接收器处接收所述第二标记消息; 作为对接收到所述第二标记消息的响应,转移所述服务流并且传送所述被排队的流出流量到与所述拥塞较轻的链路相关联的发送器以进行发送;并且将所述被排队的流入流量传送给与所述服务流相关联的应用。
10.一种方法,包括: 对于包括在服务器装置处的多个物理链路的上行链路组中的每个成员,根据相应的类另IJ、针对所述上行链路组中的每个成员跟踪服务类别的用户的当前数目; 在所述服务器装置处,接收针对在所述服务器装置上运行的与特定类别的服务相关联的虚拟机(VM)的VM接口请求; 确定相应类别的哪个成员具有针对所述特定类别的服务的最小数目的类别用户;并且 将所述VM指定用于具有最小数目的类别用户的成员。
11.一种装置,包括: 具有多个物理链路的网络接口,所述多个物理链路被配置为在形成包括所述多个物理链路的上行链路组的网络上传送流量;处理器,该处理器被配置为: 定义第一类服务,所述第一类服务占用所述上行链路组上的可用带宽的第一份额; 定义第二类服务,所述第二类服务占用所述上行链路组上的可用带宽的第二份额; 将用于所述第一类服务的带宽分配到所述上行链路组的所述多个物理链路上; 将用于所述第二类服务的带宽分配到所述上行链路组的所述多个物理链路上; 监控所述多个物理链路上的流量速率以检测指示对于一类服务存在带宽不足的拥塞;并且 作为对确定所述多个物理链路中的一个物理链路拥塞的响应,为一类服务重新分配带宽以在对于相应类别的服务存在带宽不足时减少对于该相应类别的服务的带宽不足。
12.根据权利要求11所述的装置,其中所述处理器还被配置为作为对确定物理链路未拥塞的响应,将用于被重新分配的类别的服务的带宽重置为用于相应类别的服务的原本被分配的带宽或者重新分配第一和第二带宽份额以更接近地匹配初始的带宽分配。
13.根据权利要求11所述的装置,其中所述处理器还被配置为: 计算针对每个类别的服务的总体带宽不足; 计算针对每个类别的服务的总体带宽富余;并且 将用于有总体带宽富余的一类服务的带宽份额的一部分转移给有总体带宽不足的一类服务。
14.根据权利要求13所述的装置,其中所述处理器还被配置为根据带宽不足对有总体带宽不足的服务类别进行分类,并且其中所述处理器被配置为将用于有总体带宽富余的一类服务的带宽份额的一部分转移给有最大总体带宽不足的一类服务。
15.根据权利要求13所述的装置,其中所述处理器被配置为将用于有带宽富余的服务类别的带宽份额的部分转移给有带宽不足的服务类别,直到所述总体带宽不足被补满或者直到所述总体带宽富余被用尽为止。
16.根据权利要求11所述的装置,其中所述处理器被配置为通过将与有带宽不足的一类服务相关联的服务流从一个物理链路转移到另一物理链路来重新分配带宽。
17.—个或多个存储指令的计算机可读介质,所述指令当被处理器执行时使得所述处理器: 通过具有多个物理链路的网络接口传送流量,所述多个物理链路形成包括所述多个物理链路的上行链路组; 定义第一类服务,所述第一类服务占用所述上行链路组上的可用带宽的第一份额; 定义第二类服务,所述第二类服务占用所述上行链路组上的可用带宽的第二份额; 将用于所述第一类服务的带宽分配到所述上行链路组的所述多个物理链路上; 将用于所述第二类服务的带宽分配到所述上行链路组的所述多个物理链路上; 监控所述多个物理链路上的流量速率以检测指示对于一类服务存在带宽不足的拥塞;并且 作为对确定所述多个物理链路中的一个物理链路拥塞的响应,为一类服务重新分配带宽以在对于相应类别的服务存在带宽不足时减少对于该相应类别的服务的带宽不足。
18.根据权利要求17所述的计算机 可读介质,还包括当被所述处理器执行时使得所述处理器进行以下操作的指令,所述操作即作为对确定物理链路未拥塞的响应,将用于被重新分配的类别的服务的带宽重置为用于相应类别的服务的原本被分配的带宽或者重新分配第一和第二带宽份额以更接近地匹配初始的带宽分配。
19.根据权利要求17所述的计算机可读介质,其中使得所述处理器重新分配带宽的指令包括当被所述处理器执行时使得所述处理器进行以下操作的指令,所述操作即: 计算针对每个类别的服务的总体带宽不足; 计算针对每个类别的服务的总体带宽富余;并且 将用于有总体带宽富余的一类服务的带宽份额的一部分转移给有总体带宽不足的一类服务。
20.根据权利要求19所述的计算机可读介质,还包括当被所述处理器执行时使得所述处理器根据带宽不足对有总体带宽不足的服务类别进行分类的指令,并且其中所述处理器被配置为将用于有总体带宽富余的一类服务的带宽份额的一部分转移给有最大总体带宽不足的一类服务。
21.根据权利要求19所述的非暂时性计算机可读介质,其中使得所述处理器进行转移操作的指令包括当被所述处理器执行时进行以下操作的指令,所述操作即将用于有带宽富余的服务类别的带宽份额的部分转移给有带宽不足的服务类别,直到所述总体带宽不足被补满或者直到所述总体带宽富余被用尽为止。
22.根据权利要求17所述的计算机可读介质,其中使得所述处理器进行转移操作的指令包括当被所述处理器执行时进行以下操作的指令,所述操作即将与有带宽不足的一类服务相关联的服务流从一个物理链路转移到另一物理链路。
23.根据权利要求17所述的计算机可读介质,还包括当被所述处理器执行时使得所述处理器进行以下操作的指令,所述操作即: 对于上行链路组中的每个成员,根据相应的类别、针对所述上行链路组中的每个成员跟踪服务类别的用户的当前数目; 接收针对与特定类别的服务相关联的新的虚拟机(VM)的VM接口请求;确定相应类别的哪个成员具有针对所述特定类别的服务的最小数目的类别用户;并且将所述VM指定用于具有最小 数目的类别用户的成员。
全文摘要
用于提高虚拟环境中的上行链路上的服务质量的技术被提供。在具有被配置为通过网络向或从服务器装置传送流量的多个物理链路的服务器装置处,形成包括多个物理链路的上行链路组。第一类服务被定义,所述第一类服务占用所述上行链路组上的可用带宽的第一份额,并且第二类服务被定义,所述第二类服务占用所述上行链路组上的可用带宽的第二份额。用于所述第一类服务的带宽被分配到上行链路组的多个物理链路上,并且用于所述第二类服务的带宽被分配到上行链路组的多个物理链路上。所述多个物理链路中的每个物理链路上的流量速率被监控以确定物理链路是否拥塞,指示对于一类服务存在带宽不足。作为对确定所述多个物理链路中的一个物理链路拥塞的响应,为一类服务重新分配带宽以减少对于相应类别的服务的带宽不足。
文档编号H04L12/851GK103210618SQ201180055344
公开日2013年7月17日 申请日期2011年8月18日 优先权日2010年11月19日
发明者纳达斯·斯瑞尼瓦桑·苏恩达尔, 蒂莫西·J·库伊克, 尤达亚玛卡尔·斯瑞尼瓦桑, 毕哈德·R·达斯特 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1