CN106169980A - 一种虚拟网络带宽公平调度方法 - Google Patents
一种虚拟网络带宽公平调度方法 Download PDFInfo
- Publication number
- CN106169980A CN106169980A CN201610531417.XA CN201610531417A CN106169980A CN 106169980 A CN106169980 A CN 106169980A CN 201610531417 A CN201610531417 A CN 201610531417A CN 106169980 A CN106169980 A CN 106169980A
- Authority
- CN
- China
- Prior art keywords
- stream
- virtual
- algorithm
- scheduling
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/522—Dynamic queue service slot or variable bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/527—Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/629—Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种虚拟网络带宽公平调度方法,包括如下步骤:(1)根据虚拟化场景的特点对队列调度算法进行建模;(2)根据上述队列调度模型,设计基于动态配额的队列调度算法;针对虚拟化环境中虚拟网之间带宽分配的问题,该文对虚拟路由器的队列调度问题进行了建模,并提出了基于动态配额的队列调度算法。该算法能够以虚拟网为单位进行带宽资源的分配,与DRR、SRR和miDRR等算法相比,该算法在虚拟网带宽分配的有效性和公平性上有显著优势。
Description
技术领域
本发明涉及调度算法应用技术领域,具体涉及一种虚拟网络带宽公平调度方法。
背景技术
随着互联网体系架构的不断演进和创新,实验平台、数据中心等网络场景中涌现出大量新应用和新协议,如软件定义网络(Software Defined Networking,SDN)、VXLAN等。为了支持这些应用的部署,研究人员引入了网络虚拟化的机制对网络进行隔离。在实验平台中,管理员通过划分虚拟网实现不同协议、转发机制以及服务质量的分配和隔离在数据中心中,管理员将不同租户划分到不同的虚拟网,以进行隔离和服务质量区分。在这些场景中,虚拟路由器作为核心的组网设备,可以在同一物理底层上构建多个虚拟路由器实例来承载多个虚拟网,因此,管理员需要保证路由器能够按照虚拟网的服务质量要求对数据包进行队列调度。
队列调度算法已经得到了广泛而深入的研究,算法从原理上可以分为两大类:基于虚拟时间的算法和基于轮询的算法。
基于虚拟时间的算法,其原理是根据每个数据包所处队列的排队情况和数据包的长度为数据包预先计算虚拟时间(虚拟开始时间或虚拟完成时间)。算法根据虚拟时间选择策略调度,比如最早开始时间策略或者最早完成时间策略等,能够实现带宽公平分配,可以在公平性上接近理想的GPS(Generalized Processor Sharing)模型,代表性的有WFQ(Weighted Fair Queuing),WF2Q(Worst-case Fair Queuing)、STFQ(Start Time FairQueuing)、MS-PGPS和HFOB_RSA等算法。然而,基于虚拟时间的算法需要做复杂的运算来为每个数据包计算虚拟时间,在业务流数目较大时,计算复杂度较高,使得调度过程的延时变得难以容忍。
为了降低调度过程的复杂度,研究者提出了基于轮询的队列调度算法。轮询调度的基本思想是,对所有业务流队列进行编号,按照序号对队列依次服务,服务结束后再重新开始新一轮循环。由于不同业务流中的数据包 长度不一致,单纯采用轮询方案难以保证不同队列的带宽分配和公平性,因此研究者提出了多种改进算法来保证业务流的带宽分配和公平性,比如差额轮询算法等。
然而,虚拟化网络环境中的队列调度问题与传统场景不同,它具有如下三个特点:
1)虚拟网业务具有差异性。一个物理网络承载了多张并行的虚拟网,这些虚拟网通常属于不同的用户。用户会在虚拟网中部署自己的业务,使得不同虚拟网承载不同种类、不同数量的业务流。例如在实验平台和数据中心中,既有基于IP协议的业务,也会有基于NDN、OSA、Avalanche等新协议的业务。
2)支持异构网络的数据平面虚拟化。在虚拟化的网络数据平面中,物理设备被虚拟化为多个虚拟转发实例。为了支持不同种类的业务,这些虚拟转发实例会被配置成不同的转发功能,处理不同格式的数据包。
3)虚拟网业务流在数据平面中的处理具有选择性。受限于虚拟转发实例的处理类型,不同种类的业务流必须在不同种类的虚拟转发实例中处理。比如基于IP的虚拟网业务流无法在配置为NDN协议的虚拟转发实例中处理。
在具有多个业务流的虚拟网中,当虚拟网中业务流数目或带宽变化时,虚拟网的总体带宽也会随之不断变化,导致以业务流为单位的调度算法难以保证虚拟网带宽的分配。因此需要研究适用于虚拟网的调度算法,使得虚拟网之间的带宽得到公平分配。
发明内容
针对以上问题,本发明提供了一种虚拟网络带宽公平调度方法,针对虚拟化环境中虚拟网之间带宽分配的问题,该文对虚拟路由器的队列调度问题进行了建模,并提出了基于动态配额的队列调度算法。该算法能够以虚拟网为单位进行带宽资源的分配,与DRR、SRR和miDRR等算法相比,该算法在虚拟网带宽分配的有效性和公平性上有显著优势,可以有效解决背景技术中的问题。
为了实现上述目的,本发明采用的技术方案如下:一种虚拟网络带宽公平调度方法,包括如下步骤:
(1)根据虚拟化场景的特点对队列调度算法进行建模;
(2)根据上述队列调度模型,设计基于动态配额的队列调度算法。
所述步骤(1)建模的方法如下:将物理网络中的一个路由器虚拟化为L个虚拟转发实例{VRj|1≤j≤L},物理设备上承载了N个业务流{Fi,1≤i≤N},这些业务流属于个虚拟网{VNk|1≤k≤M};
业务流与虚拟网的归属关系用Θ=[θik]表示,如果流Fi属于虚拟网VNk,那么θik=1,否则θik=0;
虚拟网VNk与虚拟转发实例VRj之间的选择关系用流选择矩阵П=[πkj]来表示,如果虚拟网VNk可以在虚拟路由器VRj中处理,则πkj=1,否则πkj=0;
假设每个虚拟网对链路请求的带宽权重为ξi,例如若ξ1∶ξ2=1∶2,则说明虚拟网VN2的中所有业务流的总带宽需求为虚拟网VN1的2倍;在同一虚拟网中,每个业务流对虚拟链路的带宽需求权重为例如若 则说明F1和F2权重一致。
所述步骤(2)中队列调度算法分为算法I、算法II和算法III,每个虚拟转发实例VRj入口处部署一个调度器,在每个调度器上不断循环运行算法I,以虚拟转发实例为例,每次调度分为三个阶段:
1)流选择阶段,在每次调度开始时,调度器首先判断虚拟转发实例VRj是否有业务流排队,如果没有流排队,那么结束本次调度;如果有业务流处于排队状态,那么队列指针i指向下一个需要服务的流队列Cj;
2)队列服务阶段,如果差额计数器DCi大于当前服务队列队头的数据包长度Sizei,则从计数器中减掉队头数据包长度,并将队头数据包发送到VRj,进入调度决策阶段,否则,直接进入调度决策阶段;
3)调度决策阶段,如果当前服务队列为空BLi=0,就将该队列的差额计数器置零,并将该流从B中删除;如果当前服务队列为空BLi=0或者差额计数器DCi小于队头的数据包长度Sizei,那么按照算法II将队列指针i指 向下一个需要服务的队列,并按照和算法III更新业务流的配额,加到流的差额计数器DCi上,调度决策阶段结束;
其中算法I的每次循环至多发送一个数据包,每发送一次进行判断,如果仍然有差额计数器DCi大于队头的数据包长度Sizei,指针i保持不变,并进入下一次循环发送数据包,直到DCi小于队头的数据包长度Sizei,经过多次循环,调度器指针i将VRj所有可服务的队列遍历一遍,称为一轮调度,其具体算法如下:
算法II为流选择算法:引入单比特服务标志变量SFij实现多个调度器的服务信息共享,调度器中维护了一个矩阵,存储每一个虚拟转发实例VRj对每一条业务流Fi的服务标志SFij;在调度器初始化时刻,所有的服务标志SFij都为0,在调度过程中,如果某条流Fi被虚拟转发实例VRj服务过,那么服务标志SFij会被置为0,而其他所有的虚拟转发实例对流Fi的服务标志会被置为1,即基于这一机制,算法II包括了两个阶段:
1)流选择过程:指针i指向VRj中下一个排队的流,判断服务标志SFij,如果发现该标志值为1,说明本轮调度中流Fi已被其他虚拟转发实例服务 过,那么VRj就跳过该流,并将SFij重置为0,用于下一轮调度;接着更新指针i指向下一个排队的流,判断服务标志,如此不断循环,直到找到SFij=0的流,即没有被其他虚拟转发实例服务过的流,跳出循环;
2)流服务标志修改:找到SFij=0的流后,VRj对该流Fi进行服务,并将其他所有的虚拟转发实例对应流Fi的服务标志置为1,即通知其他虚拟转发实例在本轮调度中不要服务Fi;
其具体算法如下:
算法III为配额更新算法,考虑流与虚拟网的归属关系,根据虚拟网中活跃业务流的数目在每一轮调度中更新所有流的配额,使得虚拟网内的各条业务流则按照比例对配额Qi进行调整,同时每轮调度中每个虚拟网的总配额ξk保持不变;
其具体算法如下:
算法I、算法II和算法III中各符号的意义如下:
作为本发明一种优选的技术方案,所述算法I的每次循环至多发送一个数据包,每发送一次进行判断,如果仍然有差额计数器DCi大于队头的数据包长度Sizei,指针i保持不变,并进入下一次循环发送数据包,直到DCi小于队头的数据包长度Sizei;经过多次循环,调度器指针i可以将VRj所有可服务的队列遍历一遍,称为一轮调度。
作为本发明一种优选的技术方案,所述算法II的每轮调度中VRj只服务未被其他虚拟转发实例服务过的流,在所有调度器的每轮调度过程中,每条流最多会被一个虚拟转发实例处理一次,保证了流调度的公平性。
本发明的有益效果:
本发明针对虚拟化环境中虚拟网之间带宽分配的问题,该文对虚拟路由器的队列调度问题进行了建模,并提出了基于动态配额的队列调度算法。该算法能够以虚拟网为单位进行带宽资源的分配,与DRR、SRR和miDRR等算法相比,该算法在虚拟网带宽分配的有效性和公平性上有显著优势。
附图说明
图1为本发明虚拟化场景中队列调度模型。
图2为本发明DRR、miDRR和所提调度算法下虚拟转发实例中的带宽分配示意图。
图3为本发明DRR、miDRR和所提调度算法下虚拟转发实例中的带宽分 配示意图。
图4为本发明不同虚拟网带宽比例设置下的带宽实际分配示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1:
一种虚拟网络带宽公平调度方法,包括如下步骤:
(1)根据虚拟化场景的特点对队列调度算法进行建模;
参照图1所示,建模的方法如下:将物理网络中的一个路由器虚拟化为L个虚拟转发实例{VRj|1≤j≤L},物理设备上承载了N个业务流{Fi,1≤i≤N},这些业务流属于个虚拟网{VNk|1≤k≤M};
业务流与虚拟网的归属关系用Θ=[θik]表示,如果流Fi属于虚拟网VNk,那么θik=1,否则θik=0;
虚拟网VNk与虚拟转发实例VRj之间的选择关系用流选择矩阵П=[πkj]来表示,如果虚拟网VNk可以在虚拟路由器VRj中处理,则πkj=1,否则πkj=0;
假设每个虚拟网对链路请求的带宽权重为ξi,例如若ξ1∶ξ2=1∶2,则说明虚拟网VN2的中所有业务流的总带宽需求为虚拟网VN1的2倍;在同一虚拟网中,每个业务流对虚拟链路的带宽需求权重为例如若则说明F1和F2权重一致。
(2)根据上述队列调度模型,设计基于动态配额的队列调度算法;
队列调度算法分为算法I、算法II和算法III,每个虚拟转发实例VRj入口处部署一个调度器,在每个调度器上不断循环运行算法I,以虚拟转发实例为例,每次调度分为三个阶段:
1)流选择阶段,在每次调度开始时,调度器首先判断虚拟转发实例VRj是否有业务流排队,如果没有流排队,那么结束本次调度;如果有业务流处于排队状态,那么队列指针i指向下一个需要服务的流队列Cj;
2)队列服务阶段,如果差额计数器DCi大于当前服务队列队头的数据包长度Sizei,则从计数器中减掉队头数据包长度,并将队头数据包发送到VRj,进入调度决策阶段,否则,直接进入调度决策阶段;
3)调度决策阶段,如果当前服务队列为空BLi=0,就将该队列的差额计数器置零,并将该流从B中删除;如果当前服务队列为空BLi=0或者差额计数器DCi小于队头的数据包长度Sizei,那么按照算法II将队列指针i指向下一个需要服务的队列,并按照和算法III更新业务流的配额,加到流的差额计数器DCi上,调度决策阶段结束;
每次循环至多发送一个数据包,每发送一次进行判断,如果仍然有差额计数器DCi大于队头的数据包长度Sizei,指针i保持不变,并进入下一次循环发送数据包,直到DCi小于队头的数据包长度Sizei;经过多次循环,调度器指针i可以将VRj所有可服务的队列遍历一遍,称为一轮调度。
其中算法I的每次循环至多发送一个数据包,每发送一次进行判断,如果仍然有差额计数器DCi大于队头的数据包长度Sizei,指针i保持不变,并进入下一次循环发送数据包,直到DCi小于队头的数据包长度Sizei,经过多次循环,调度器指针i将VRj所有可服务的队列遍历一遍,称为一轮调度,其具体算法如下:
算法II为流选择算法:引入单比特服务标志变量SFij实现多个调度器的服务信息共享,调度器中维护了一个矩阵,存储每一个虚拟转发实例VRj对每一条业务流Fi的服务标志SFij;在调度器初始化时刻,所有的服务标志SFij都为0,在调度过程中,如果某条流Fi被虚拟转发实例VRj服务过,那么服务标志SFij会被置为0,而其他所有的虚拟转发实例对流Fi的服务标志会被置为1,即基于这一机制,算法II包括了两个阶段:
1)流选择过程:指针i指向VRj中下一个排队的流,判断服务标志SFij,如果发现该标志值为1,说明本轮调度中流Fi已被其他虚拟转发实例服务过,那么VRj就跳过该流,并将SFij重置为0,用于下一轮调度;接着更新指针i指向下一个排队的流,判断服务标志,如此不断循环,直到找到SFij=0的流,即没有被其他虚拟转发实例服务过的流,跳出循环;
2)流服务标志修改:找到SFij=0的流后,VRj对该流Fi进行服务,并将其他所有的虚拟转发实例对应流Fi的服务标志置为1,即通知其他虚拟转发实例在本轮调度中不要服务Fi;每轮调度中VRj只服务未被其他虚拟转发实例服务过的流,在所有调度器的每轮调度过程中,每条流最多会被一个虚拟转发实例处理一次,保证了流调度的公平性。
其具体算法如下:
算法III为配额更新算法,考虑流与虚拟网的归属关系,根据虚拟网中活跃业务流的数目在每一轮调度中更新所有流的配额,使得虚拟网内的各条业务流则按照比例对配额Qi进行调整,同时每轮调度中每个虚拟网的总配额ξk保持不变;
其具体算法如下:
算法I、算法II和算法III中各符号的意义如下:
(一)、算法公平性证明
从算法I中可以看出,当BLi为空时,DCi会被置为0,说明空闲的业务流不会占用任何虚拟转发实例的处理资源。当虚拟转发实例上有业务流排队时,虚拟转发实例会按照活跃业务流的数目不间断地进行调度,各个虚拟转发实例都会以最高速率进行处理,不会处于空闲状态,因此在该算法下系统是工作保持的。
下面通过理论推导说明该算法能够实现虚拟网之间带宽的max-min公平分配。首先,引入速率集簇特性的定义,其描述如定义1所示。
在虚拟化网络中,虚拟网带宽max-min带宽公平是指:若要增加一个高带宽虚拟网的带宽,必须要降低一个低带宽虚拟网的带宽,即max-min公平分配保证了低带宽虚拟网所分配的带宽尽可能高。
定义1当一个调度器满足如下条件时,称其满足速率集簇特性(Rate ClusteringProperty)。
1、调度器将虚拟网集合和虚拟转发实例划分到互不相交的簇中,并且每一个虚拟网和每一个虚拟转发实例仅属于一个簇。
2、在一个簇Ck中的所有的虚拟网都以相同的总服务速率被簇中的虚拟转发实例服务。定义每条流速率为r,虚拟网速率为R,即
3、在虚拟网a所有可以使用的虚拟转发实例中,虚拟网a只会属于服务速率最大的簇,即
其中,R(Ci)是簇Ci对虚拟网的服务速率。
基于以上定义,通过证明定理1来说明任何满足速率集簇特性的调度器都是max-min公平的。首先给出引理1,引理1说明了工作保持的系统的基本特性。
引理1在一个工作保持的系统中,没有虚拟网能够在不减少其他虚拟网带宽的情况下增加自身的带宽,即:
其中δi是虚拟网i带宽分配的变化量。
定理2当且仅当一个工作保持的系统满足下面的条件时,称该系统为max-min公平的:
1、当虚拟网i和虚拟网j被同一个虚拟实例服务(在同一个簇),它们的服务速率相同,即
其中Uk={i,Rik>0}。
2、如果虚拟网i和虚拟网j都可以使用虚拟实例VRk,但是只有虚拟网i使用了VRk(即虚拟网i和虚拟网j属于不同的簇),那么分配给虚拟网j的总速率肯定高于虚拟网i,即
其中Fk={i,πik=1}。
证明:采用反证法,假设存在相反的情况,即两个条件都为真,但是系统不是max-min公平的。由于系统是工作保持的,那么只要系统中有业务排队,那么就不会有额外的带宽。从引理2.1可知,如果不是max-min公平的,那么必然存在虚拟网i和虚拟网j使得可以通过减少虚拟网i的带宽来增加虚拟网j的带宽,同时有Ri>Rj。这一事件仅会在以下两种情况中发生:
1、在虚拟转发实例VRk中,即Rjk带宽增长,同时Rik的带宽减少,这说明Rik>0而且i∈Uk。如果j∈Uk,那么根据第1个条件,有Ri=Rj。否则j∈Fk,那么如果Rjk增加,根据第2个条件,可知Rj>Ri。这都与Ri>Rj的假设冲突。
2、如果带宽分配变化是基于虚拟网之间一系列的带宽交换,假设进行带宽交换的虚拟网涉及到虚拟网1,2,…,j|j>0,这表示虚拟网i需要与虚拟网1交换带宽分配,之后虚拟网1再与虚拟网2交换带宽分配,并直到与虚拟网j交换完毕。这说明每两个能够交换的虚拟网都可以共享同一个虚拟转发实例,根据条件1和2,可以得出R1≥Ri,R2≥R1,…,Rj≥Rj-1。将这些条 件放在一起,就有Rj≥Rj-1≥…≥Rj,这也与Ri>Rj的假设冲突。
因此,可以得出,满足以上两个条件的调度器可以提供max-min公平调度,证明完毕。
从定理2可以看出,如果调度器使得虚拟网的带宽分配满足速率集簇特性,那么该调度器对于虚拟网而言就是max-min公平,
下面证明算法I满足速率集簇特性。
证明:对于一个运行算法I的虚拟转发实例VRk而言,在所有可以服务的虚拟网集合中,根据差额轮询的特性和保持不变的虚拟网整体配额,VRk会以同样的速率服务这些虚拟网的一个子集Uk(整体配额相同的虚拟网),即子集Uk中的虚拟网与VRk在同一个簇中。假设有一个虚拟网VNg,VRk是虚拟网VNg可用的一个虚拟转发实例,但是VNg中所有的流都没有被VRk服务,即VNg∈Fk。说明在算法I的每一轮调度间隔τk中,VRk对应VNg中所有业务流的服务标志至少被置为1一次,也就是说虚拟网VNg中的流会被其他虚拟转发实例VRm,m≠k更加频繁地服务。因此,虚拟网VNg一定属于一个具有更高服务速率的簇,符合定义1的速率集簇特性,证明完毕。
通过定理2,证明了基于算法I的调度器满足速率集簇特性,因此该调度器能够实现虚拟网之间带宽的max-min公平调度。
(二)性能评估
(1)实验设计
为了评估本章所提队列调度算法的有效性和公平性,基于NetFPGA硬件板卡进行了验证。在单个NetFPGA板卡上创建了2个虚拟转发实例VR1和VR2,二者的处理容量都为1000Mbps。通过流量产生器发送3个TCP业务流F1,F2,F3到板卡上,其中F1和F2属于虚拟网VN1,可以在VR1和VR2中处理;F3属于虚拟网VN2,仅能在VR2中处理。虚拟网的带宽权重为ξ1∶ξ2=3∶1,业务流的带宽权重为作为比较,在VR1和VR2的调度器中分别部署了miDRR和算法I,为了能够反映调度算法的动态特征,在VR1和VR2中统计了10秒的流量,其中F1和F3持续了10秒钟,F2持续了4秒钟,下面对实验结果进行分析。
(2)算法有效性测试
在所设计实验条件场景下,DRR、SRR和PDRR调度算法为各个数据流分配的带宽是一致的,其主要区别在于算法复杂度和调度延时上。图2(a)和(b)分别示出了在上述三种算法下VR1和VR2内业务流的带宽分配情况。由于VR1和VR2的调度过程相互独立,前4秒,VR1中F1和F2两个流的占比为1∶3,在VR2中F1、F2和F3的比例为1∶3∶1;4-6秒间,在6秒后,F2队列不再有数据包排队,在VR1中只处理F1,而在VR2中,F1和F3按照的比例进行分配。
图2(c)和(d)分别示出了在miDRR算法下VR1和VR2内业务流的带宽分配情况。从图2(a)可以看出,在前4秒,F1和F2会被交替调度到VR1和VR2中,F3则严格地在VR2中处理;在4-6秒间,由于F2停止到达,因此VR1会处理队列中剩余的数据包,其处理速率也逐渐下降;在6秒后,F2队列不再有数据包排队,F1和F3分别在VR1和VR2中满速率处理,符合的比例。
图2(e)和(f)分别示出了在本文所提算法下VR1和VR2内业务流的带宽分配情况。可以看到,前4秒,F1和F2仍然在两个虚拟实例中处理;在6秒后,F2队列空置,可以看出,VR1和VR2对F1和F2的配额进行调整,F3的配额不变。因此,在VR1和VR2中F1的带宽分别增长到1000Mbps和500Mbps,F3的带宽保持不变。
图3(a)和(b)显示了DRR、SRR和PDRR调度算法下,3个流和虚拟网的总体带宽的分配情况。从图3(a)中可以看出:前4秒,3条流的带宽分配分别为450Mbps、1350Mbps和200Mbps,不符合预期的1∶3∶1的流权重分配。从图3(b)中可以看出,VN1与VN2的带宽比例为9∶1,未按照预定的虚拟网权重进行调度。从第6秒开始,F2不再有数据包排队,其配额变为0,VN1与VN2的带宽比例变为3∶1,也未能按照虚拟网权重进行调度。
图3(c)和(d)显示了miDRR调度算法下,3个流和虚拟网的总体带宽的分配情况。从图3(c)中可以看出:前4秒,3条流的带宽分配分别为400Mbps、1200Mbps和400Mbps,符合预期的1∶3∶1的流权重分配。从图 3(d)中可以看出,VN1与VN2的带宽比例为4∶1,未按照预定的虚拟网权重进行调度。从第6秒开始,F2不再有数据包排队,其配额变为0,因此,F1和F3按照比例分别在VR1和VR2中处理,VN1与VN2的带宽比例也是1∶1,也未能按照虚拟网权重进行调度。
图3(e)和(f)显示了在本文所提调度算法下,3个流和虚拟网的总体带宽的分配情况。在前4秒,3条流的速率分别为370Mbps、1130Mbps和500Mbps,VN1与VN2的带宽比例为3∶1,与预期权重相同,同时,在VN1内部,F1和F2保持了1∶3的比例。4秒后,当F2的带宽下降时,调度器调整F1的配额,使得F1的带宽分配迅速增加并保持在1500Mbps,从而保证了虚拟网VN1与VN2的带宽维持在3∶1。说明所提算法能够以虚拟网为单位调度业务流。
(3)算法公平性测试
为了测试队列调度算法的公平性,将带宽比例VN1与VN2的带宽比例需求从1∶10逐渐变化为10∶1。分别测试了不同比例下的带宽分配情况,如图4(a)和(b)所示,二者分别显示了不同比例区间范围内的带宽分配情况,其中红色实线为按照虚拟网max-min公平分配的理论值,绿色虚线为按照比例分配的理论值,蓝色虚线为带宽实际测量值。从图4(a)可以看出在所提调度算法下,带宽分配情况与max-min公平分配的理论值基本相符。从图4(b)可以看出,当VN1与VN2的带宽分配比例低于1∶1时,带宽能够按照max-min公平分配,为每个虚拟网都会分配1000Mbps的带宽,使得带宽维持在1∶1的比例。当VN1与VN2带宽比例超过1∶1,带宽按照预先配置的比例进行分配,说明所提算法能够提供max-min公平的带宽分配。
基于上述,本发明的优点在于,本发明针对虚拟化环境中虚拟网之间带宽分配的问题,该文对虚拟路由器的队列调度问题进行了建模,并提出了基于动态配额的队列调度算法。该算法能够以虚拟网为单位进行带宽资源的分配,与DRR、SRR和miDRR等算法相比,该算法在虚拟网带宽分配的有效性和公平性上有显著优势。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在 本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种虚拟网络带宽公平调度方法,其特征在于,包括如下步骤:
(1)根据虚拟化场景的特点对队列调度算法进行建模;
(2)根据上述队列调度模型,设计基于动态配额的队列调度算法。
2.根据权利要求1所述的一种虚拟网络带宽公平调度方法,其特征在于,所述步骤(1)建模的方法如下:将物理网络中的一个路由器虚拟化为L个虚拟转发实例{VRj|1≤j≤L},物理设备上承载了N个业务流{Fi,1≤i≤N},这些业务流属于个虚拟网{VNk|1≤k≤M};
业务流与虚拟网的归属关系用Θ=[θik]表示,如果流Fi属于虚拟网VNk,那么θik=1,否则θik=0;
虚拟网VNk与虚拟转发实例VRj之间的选择关系用流选择矩阵Π=[πkj]来表示,如果虚拟网VNk可以在虚拟路由器VRj中处理,则πkj=1,否则πkj=0;
假设每个虚拟网对链路请求的带宽权重为ξi,例如若ξ1∶ξ2=1∶2,则说明虚拟网VN2的中所有业务流的总带宽需求为虚拟网VN1的2倍;在同一虚拟网中,每个业务流对虚拟链路的带宽需求权重为例如若则说明F1和F2权重一致。
3.根据权利要求1所述的一种虚拟网络带宽公平调度方法,其特征在于,所述步骤(2)中队列调度算法分为算法I、算法II和算法III,每个虚拟转发实例VRj入口处部署一个调度器,在每个调度器上不断循环运行算法I,以虚拟转发实例为例,每次调度分为三个阶段:
1)流选择阶段,在每次调度开始时,调度器首先判断虚拟转发实例VRj是否有业务流排队,如果没有流排队,那么结束本次调度;如果有业务流处于排队状态,那么队列指针i指向下一个需要服务的流队列Cj;
2)队列服务阶段,如果差额计数器DCi大于当前服务队列队头的数据包长度Sizei,则从计数器中减掉队头数据包长度,并将队头数据包发送到VRj,进入调度决策阶段,否则,直接进入调度决策阶段;
3)调度决策阶段,如果当前服务队列为空BLi=0,就将该队列的差额计数器置零,并将该流从B中删除;如果当前服务队列为空BLi=0或者差 额计数器DCi小于队头的数据包长度Sizei,那么按照算法II将队列指针i指向下一个需要服务的队列,并按照和算法III更新业务流的配额,加到流的差额计数器DCi上,调度决策阶段结束;
其中算法I的每次循环至多发送一个数据包,每发送一次进行判断,如果仍然有差额计数器DCi大于队头的数据包长度Sizei,指针i保持不变,并进入下一次循环发送数据包,直到DCi小于队头的数据包长度Sizei,经过多次循环,调度器指针i将VRj所有可服务的队列遍历一遍,称为一轮调度,其具体算法如下:
算法II为流选择算法:引入单比特服务标志变量SFij实现多个调度器的服务信息共享,调度器中维护了一个矩阵,存储每一个虚拟转发实例VRj对每一条业务流Fi的服务标志SFij;在调度器初始化时刻,所有的服务标志SFij都为0,在调度过程中,如果某条流Fi被虚拟转发实例VRj服务过,那么服务标志SFij会被置为0,而其他所有的虚拟转发实例对流Fi的服务标志会被置为1,即SFim=1,基于这一机制,算法II包括了两个阶段:
1)流选择过程:指针i指向VRj中下一个排队的流,判断服务标志SFij, 如果发现该标志值为1,说明本轮调度中流Fi已被其他虚拟转发实例服务过,那么VRj就跳过该流,并将SFij重置为0,用于下一轮调度;接着更新指针i指向下一个排队的流,判断服务标志,如此不断循环,直到找到SFij=0的流,即没有被其他虚拟转发实例服务过的流,跳出循环;
2)流服务标志修改:找到SFij=0的流后,VRj对该流Fi进行服务,并将其他所有的虚拟转发实例对应流Fi的服务标志置为1,即通知其他虚拟转发实例在本轮调度中不要服务Fi;
其具体算法如下:
算法III为配额更新算法,考虑流与虚拟网的归属关系,根据虚拟网中活跃业务流的数目在每一轮调度中更新所有流的配额,使得虚拟网内的各条业务流则按照比例对配额Qi进行调整,同时每轮调度中每个虚拟网的总配额ξk保持不变;
其具体算法如下:
算法I、算法II和算法III中各符号的意义如下:
4.根据权利要求3所述的一种虚拟网络带宽公平调度方法,其特征在于,所述算法I的每次循环至多发送一个数据包,每发送一次进行判断,如果仍然有差额计数器DCi大于队头的数据包长度Sizei,指针i保持不变,并进入下一次循环发送数据包,直到DCi小于队头的数据包长度Sizei;经过多次循环,调度器指针i可以将VRj所有可服务的队列遍历一遍,称为一轮调度。
5.根据权利要求3所述的一种虚拟网络带宽公平调度方法,其特征在于,所述算法II的每轮调度中VRj只服务未被其他虚拟转发实例服务过的流,在所有调度器的每轮调度过程中,每条流最多会被一个虚拟转发实例处理一次,保证了流调度的公平性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610531417.XA CN106169980A (zh) | 2016-06-29 | 2016-06-29 | 一种虚拟网络带宽公平调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610531417.XA CN106169980A (zh) | 2016-06-29 | 2016-06-29 | 一种虚拟网络带宽公平调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106169980A true CN106169980A (zh) | 2016-11-30 |
Family
ID=58065162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610531417.XA Pending CN106169980A (zh) | 2016-06-29 | 2016-06-29 | 一种虚拟网络带宽公平调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106169980A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110635999A (zh) * | 2018-06-22 | 2019-12-31 | 复旦大学 | 一种基于路由器虚拟化技术的云计算平台网络控制方法 |
CN112968978A (zh) * | 2021-05-19 | 2021-06-15 | 南京烽火星空通信发展有限公司 | 一种基于sdn技术的互联网流量分流方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453400A (zh) * | 2007-12-07 | 2009-06-10 | 中国电信股份有限公司 | 一种保证虚拟专用网业务的服务质量的方法和转发设备 |
US20130011132A1 (en) * | 2011-07-07 | 2013-01-10 | Ciena Corporation | Hybrid packet-optical private network systems and methods |
CN103634225A (zh) * | 2013-12-18 | 2014-03-12 | 武汉朋客云计算有限公司 | 云计算网络虚拟化中的业务带宽扩展方法 |
US20140269700A1 (en) * | 2013-03-12 | 2014-09-18 | Dell Products L.P. | Systems and methods for an extranet multicast virtual private network in a virtual routing and fowarding based customer edge device |
CN105247822A (zh) * | 2013-05-21 | 2016-01-13 | 思科技术公司 | 通过路由重新发起的方式链接服务区 |
CN105379227A (zh) * | 2013-05-07 | 2016-03-02 | 环球互连及数据中心公司 | 用于与多个虚拟私有云一对多连接的直接连接虚拟私有接口 |
-
2016
- 2016-06-29 CN CN201610531417.XA patent/CN106169980A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453400A (zh) * | 2007-12-07 | 2009-06-10 | 中国电信股份有限公司 | 一种保证虚拟专用网业务的服务质量的方法和转发设备 |
US20130011132A1 (en) * | 2011-07-07 | 2013-01-10 | Ciena Corporation | Hybrid packet-optical private network systems and methods |
US20140269700A1 (en) * | 2013-03-12 | 2014-09-18 | Dell Products L.P. | Systems and methods for an extranet multicast virtual private network in a virtual routing and fowarding based customer edge device |
CN105379227A (zh) * | 2013-05-07 | 2016-03-02 | 环球互连及数据中心公司 | 用于与多个虚拟私有云一对多连接的直接连接虚拟私有接口 |
CN105247822A (zh) * | 2013-05-21 | 2016-01-13 | 思科技术公司 | 通过路由重新发起的方式链接服务区 |
CN103634225A (zh) * | 2013-12-18 | 2014-03-12 | 武汉朋客云计算有限公司 | 云计算网络虚拟化中的业务带宽扩展方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110635999A (zh) * | 2018-06-22 | 2019-12-31 | 复旦大学 | 一种基于路由器虚拟化技术的云计算平台网络控制方法 |
CN112968978A (zh) * | 2021-05-19 | 2021-06-15 | 南京烽火星空通信发展有限公司 | 一种基于sdn技术的互联网流量分流方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shi et al. | Real-time communication analysis for on-chip networks with wormhole switching | |
US11221880B2 (en) | Adaptive computing resource allocation approach for virtual network functions | |
EP2923479B1 (en) | Method and apparatus for controlling utilization in a horizontally scaled software application | |
US9042224B2 (en) | Method and system for weighted fair queuing | |
Susanto et al. | Stream: Decentralized opportunistic inter-coflow scheduling for datacenter networks | |
CN108848146B (zh) | 一种基于时间触发通信业务的调度优化方法 | |
CN109905329B (zh) | 一种虚拟化环境下任务类型感知的流队列自适应管理方法 | |
Behzad et al. | Queue based job scheduling algorithm for cloud computing | |
CN101286949A (zh) | 基于IEEE802.16d标准的无线Mesh网MAC层资源调度策略 | |
Zhang et al. | A stable matching based elephant flow scheduling algorithm in data center networks | |
Susanto et al. | A near optimal multi-faced job scheduler for datacenter workloads | |
CN1565143A (zh) | 通信网络中业务流的分配传输 | |
CN106169980A (zh) | 一种虚拟网络带宽公平调度方法 | |
CN106921586B (zh) | 一种数据流整形方法、数据调度方法以及装置 | |
Santoso et al. | Hierarchical job scheduling for clusters of workstations | |
CN105045667A (zh) | 一种用于虚拟机vCPU调度的资源池管理方法 | |
Shah et al. | Agent based priority heuristic for job scheduling on computational grids | |
Katsalis et al. | CPU provisioning algorithms for service differentiation in cloud-based environments | |
US9128769B2 (en) | Processor with dedicated virtual functions and dynamic assignment of functional resources | |
Polezhaev et al. | Network resource control system for HPC based on SDN | |
Lal et al. | A heuristic edf uplink scheduler for real time application in wimax communication | |
CN109347764A (zh) | 实现带宽匹配的调度方法、系统及介质 | |
CN102594670A (zh) | 多端口多流的调度方法、装置及设备 | |
Zhang et al. | Coflow scheduling in the multi-resource environment | |
Xu et al. | Research on the scheduling method of AFDX terminal system based on time triggered and event triggered |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161130 |
|
WD01 | Invention patent application deemed withdrawn after publication |