一种虚拟转发设备的转发限速方法及系统

文档序号:24701377发布日期:2021-04-16 12:34阅读:124来源:国知局
一种虚拟转发设备的转发限速方法及系统

1.本发明涉及限速方法,提出了一种软件转发下隔离性增强的限速方法和系统。


背景技术:

2.随着网络设备向通用化和高性价比方向演进,软件转发逐渐取代了传统的硬件交换机、路由器,在很多场景下如云计算,网络功能虚拟化(nfv)中被大量使用。随着网络流量的剧增、流量类型的丰富,在这些虚拟转发设备中对不同流量在性能上的隔离性提出了更高的要求。
3.软件转发设备与硬件转发设备的功能类似,为网络中数据包根据其五元组信息转发到对应的端口或链路上,典型的实现有虚拟交换机(vswitch)、虚拟路由器(vrouter)等。软件转发设备的运行模式通常为启动若干轮询(pmd)线程来转发流量,这些pmd线程被绑定到通用服务器上若干专用的cpu核来提供能转发所需的物理计算资源。因此,软件转发设备所能提供的转发性能,即带宽上限,是由专用于转发的cpu和来提供的。
4.但是这些cpu所能提供的转发能力是不固定的,在不同特征流量情况下,所能提供的转发速率/带宽也不同。比如说,一个cpu核能够将包大小为1518字节的数据流转发至10gbps,但是其转发64字节包大小的数据流却只能转发到2gbps带宽。这就给租户的带宽保障带来了挑战。
5.目前已有的限速方法都是基于端口速率的,即直接按照带宽指标来限速,高于指标的流量不放行,例如广泛使用的基于每秒比特数(bps)或每秒数据包数(pps)的令牌桶策略,在软件转发设备中根据令牌来转发流量,但是这种方法很容易因为流量转发任务对于cpu资源的竞争而失效。很常见的现象就是,当一个流突然改变数据包大小(比如从1518字节更改为64字节),在软件转发设备中,虽然该流的带宽/转发速率依然保持不变且没有超过限制,但是该流的cpu资源消耗会增加几倍,这就抢占了原本属于别的流的转发cpu资源,使得别的流可用的cpu资源下降,进而降低带宽。
6.这种现象会造成一些流会因为别的流更改了流量特征而被干扰,带宽不稳定,网络性能的隔离性差。而已有的限速方法在实现上都没有考虑流量对cpu资源的竞争和软件转发设备不稳定的处理能力。因此一种资源隔离性好的软件转发限速方法亟待提出。


技术实现要素:

7.针对现有技术的不足,本发明提出一种虚拟转发设备的转发限速方法,其中包括:
8.步骤1、通过测量得到服务提供商网络平均数据包大小和流数目作为流量特征,该服务提供商网络包含虚拟转发设备和多个租户,使用流量生成工具生成符合该特征的流量,通过在该虚拟转发设备中转发该流量的数据包并测量达到各个带宽所用于转发的cpu资源,构建cpu资源和带宽的对应关系;
9.步骤2、根据各租户的基础带宽需求以及该对应关系,为各租户分配基础cpu资源,并得到该服务提供商网络在满足该基础cpu资源后剩余的cpu资源,以为每一位租户按照权
重再分配空闲cpu资源,每位租户用于转发的最终cpu资源为其分配的基础cpu资源和空闲cpu资源之和;
10.步骤3、该虚拟转发设备使用该最终cpu资源对其对应的租户完成数据包的转发。
11.所述的虚拟转发设备的转发限速方法,其中该步骤3包括:该虚拟转发设备利用该最终cpu资源对租户转发数据包进行限速,超过该最终cpu资源时的数据流量将等待或被丢弃。
12.所述的虚拟转发设备的转发限速方法,其中该基础cpu资源、该空闲cpu资源和该最终cpu资源的单位均为cpucycles/s。
13.所述的虚拟转发设备的转发限速方法,其中该步骤3包括:使用令牌桶或公平队列的方式对租户转发数据包进行限速。
14.所述的虚拟转发设备的转发限速方法,其中该虚拟转发设备为虚拟路由器或虚拟交换机。
15.本发明还提出了一种虚拟转发设备的转发限速系统,其中包括:
16.模块1,用于测量得到服务提供商网络平均数据包大小和流数目作为流量特征,该服务提供商网络包含虚拟转发设备和多个租户,使用流量生成工具生成符合该特征的流量,通过在该虚拟转发设备中转发该流量的数据包并测量达到各个带宽所用于转发的cpu资源,构建cpu资源和带宽的对应关系;
17.模块2,用于根据各租户的基础带宽需求以及该对应关系,为各租户分配基础cpu资源,并得到该服务提供商网络在满足该基础cpu资源后剩余的cpu资源,以为每一位租户按照权重再分配空闲cpu资源,每位租户用于转发的最终cpu资源为其分配的基础cpu资源和空闲cpu资源之和,该虚拟转发设备使用该最终cpu资源对其对应的租户完成数据包的转发。
18.所述的虚拟转发设备的转发限速系统,其中该虚拟转发设备利用该最终cpu资源对租户转发数据包进行限速,超过该最终cpu资源时的数据流量将等待或被丢弃。
19.所述的虚拟转发设备的转发限速系统,其中该基础cpu资源、该空闲cpu资源和该最终cpu资源的单位均为cpucycles/s。
20.所述的虚拟转发设备的转发限速系统,其中该步骤3包括:使用令牌桶或公平队列的方式对租户转发数据包进行限速。
21.所述的虚拟转发设备的转发限速系统,其中该虚拟转发设备为虚拟路由器或虚拟交换机。
22.由以上方案可知,本发明的优点在于:
23.(1)隔离性。该方法从根本上消除了不同的流或租户对软件转发设备中cpu资源的竞争,通过按照带宽

cpu资源的对应关系来合理分配cpu资源,每个流或租户能够享有自己所需的cpu资源来做流量转发而不受其他用户的影响,实现了带宽隔离性。
24.(2)鲁棒性。鲁棒性是在隔离性的前提下实现的,我们提出的基于cpu

cycle的限速方法在保障了基本的带宽以后,为了充分利用软件转发设备中的cpu资源,将cpu上尚且空闲的资源按权重分给了流或租户,能够一定程度上抵御流量突发造成的丢包。
25.(3)平台无关。我们提出是一种方法,其具有平台无关的特性,包括从建立带宽

cpu的对应关系、为不同的流或租户分配cpu资源,都是可以在任何软件实现的转发设备上
实现的,例如vrouter,vswitch等。
26.综上,本发明关注的是软件转发下的限速方法的带宽隔离性问题,提出了一种基于cpu

cycle的限速方法。限速的指标是硬件cpu资源而不是传统的bps/pps等带宽指标,通过构建软转发设备中的带宽

cpu对应关系,为流或租户分配它们所需的转发cpu资源,用限制cpu资源的方式来实现对这些流或租户的限速和隔离性。在cpu资源层面上的分配和隔离保证了这些流或租户之间不受干扰,同时充分分配空闲的cpu资源又能抵御突发流量的丢包影响,实现了隔离且鲁棒地限速。
附图说明
27.图1为本发明的方法流程图;
28.图2为本发明实施例示意图;
29.图3为基于cpucycle的令牌桶机制的每次批处理转发流程图。
具体实施方式
30.本设计为了解决软件转发设备中现有的限速方法隔离性差的问题,为了对cpu竞争加以限制和合理分配转发cpu资源,我们提出了一种基于cpu

cycle的限速方法,用转发cpu资源的分配来实现限速的功能。
31.该方法与传统的限速方法最大的区别在于限速的指标。传统的方法直接按照带宽的指标(即bps或pps)进行限速,高于带宽指标的流量则丢弃或等待,因而cpu资源的竞争则会严重影响限速效果,损害网络性能的隔离性。而我们则从最基本转发引擎的硬件资源出发,由于软件转发设备的转发速率是由专用的cpu资源提供的,我们提出的基于cpu

cycle的限速方法则不再按照带宽指标来判断流量允不允许转发,而是通过限制租户的转发任务在转发设备中每秒消耗的cpucycles(cpu周期,表示cpu资源的单位,如一个2.0ghz的cpu核其每秒有2.0g个cpucycles)来为其限制转发速率。租户可为与虚拟交换机相连接的虚拟机,也可以是与虚拟路由器相连接的各种虚拟设备。
32.为了实现通过限制每个流/租户消耗的cpucycles/s来限制其转发速率,首先需要建立转发设备内cpucycles/s与带宽的对应关系。在不同的软件转发设备中,影响该带宽

cpu对应关系的条件大致包含两大类:
33.1)流量特性。数据包大小、并发流的数目都会影响这个对应关系。比如说同样带宽下,64字节数据包消耗的cpu资源更多,而并发流数目多也会导致转发设备中查表的步骤较慢,消耗更多cpu资源。因此为了消除该类条件对带宽

cpu对应关系造成的影响,服务提供商可以在售卖带宽时约束为在特定的数据包大小和特定流数目情况下的带宽,比如在转发设备上采集一段时间(比如一小时)的流量,以获取流经转发设备的流量中平均的数据包大小和流数目。并以此来确定带宽

cpu资源的对应关系。
34.2)平台特性。不同的cpu平台的硬件性能不同,能够转发的带宽也不同,因此平台也是很容易影响带宽

cpu对应关系;软件转发设备中的路由表、流表等规则数目和复杂度也会影响对应关系的构建。因此这些平台特性需要在对应平台上测量得出。
35.在考虑了上述两大特性后,可以构建出基于测量的带宽

cpu对应关系,在该关系指导下,每个流或租户可以得到在实际场景中达到其购买带宽所需的基本cpu资源c
basic
(单
位是cpucycles/s),这可以保证基础的带宽。在基础带宽得到保障后,为了充分利用cpu资源,还需要根据当前cpu核上剩余的资源情况,为每条流按照权重再分配空闲的cpu资源c
idle
以充分利用空闲资源实现所有用户最大带宽,这里的c
idle
包含两部分的空闲cpu资源:一类是核上未分配的cpu资源,另一类是已分配但是未使用的资源。最终,每个流或租户,分得的用于转发的cpu资源为c
basic
+c
idle
,这样保证了在带宽保障和限速层面上既拥有隔离性又具有鲁棒性,能够一定程度上抵御流量突发的影响。
36.在将cpu资源分配完毕后,下一步就是只利用这些分配的cpu资源为对应的流或租户完成流量的转发。可以使用令牌桶、公平队列等方式,利用这些分配好的有限cpu资源来限速,对一个流或租户来说,超过这些单位被分配到的cpu资源处理能力之外的流量将等待或被丢弃。这样就实现了流或租户在硬件cpu资源层面的隔离性,进而实现了带宽的良好隔离。
37.为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
38.下面为本发明提出的限速方法的一种实施例。
39.该实施例选用的openvswitch作为一个典型的软件转发平台,open vswitch是业界的虚拟交换机标杆,被广泛使用。我们在其上使用基于cpu

cycle的令牌桶实现了该限速方法,令牌桶中的令牌数是剩余cpucycles,令牌的生成速率单位是cpucycles/s。
40.限速方法的实施如图1所示,分为如下步骤:
41.1.在服务器平台上(包含多个虚拟机和一个openvswitch)测量平均流量的带宽

cpu对应关系。测量该对应关系需要先测得一段时间内通过open vswitch中的流量的平均数据包大小和流数目等特征,然后使用流量生成工具生成符合平均数据包大小和流数目特征的流量,在openvswitch中转发该流量的数据包并测量达到各个带宽规格所需要用于转发的cpu资源,即c
basic

42.2.为每个租户根据其购买带宽分配令牌生成速率(即cpucycles/s)。通过上述第一步中建立的对应关系,根据购买的带宽找到对应的cpucycles/s以及空闲cpu资源情况,设置对应令牌桶的令牌生成速率。如图2所示,4个vm在openvswitch中使用一个2.2ghz的cpu核来做转发,假设它们按照带宽

cpu对应关系分到的c
basic
分别为0.2gcycles/s、0.2gcycles/s、0.4g cycles/s、0.4gcycles/s,还剩余1gcycles/s的空闲cpu资源,那么在保证隔离性基础上按权重分配,因此每个vm实际设置的令牌生成速率分别为0.36gcycles/s、0.36gcycles/s、0.72gcycles/s、0.72gcycles/s。
43.3.使用基于cpu

cycle的令牌桶在转发过程中进行限速。令牌桶的机制运行流程如图3所示,每次当有流量需要转发时,先去检查对应的租户的令牌桶内是否还有cpucycles。如果剩余的cpucycles大于0,则为其转发一批数据包,并在转发过程结束后,将消耗的cpucycles在令牌桶中减去;如果剩余的cpucycles小于0,则跳过本次批转发,为下一个流或租户转发流量。
44.在上述过程中,我们展示了如何用一种基于cpu

cycle的令牌桶机制来实现该限速方法,其中令牌桶内的令牌生成速率和转发过程中令牌桶的作用机制是实现该限速方法的重点。但是该限速方法不仅可以用令牌桶实现,一些其他的机制如公平队列,也能够分配并隔离cpu资源,并实现这种限速方法。
45.通过该方法对软件转发设备中专用于转发的cpu资源的隔离和分配实现了限速的隔离性,使得流和租户不再会互相影响,可以灵活地应用在各种软件转发场景下,为用户提供稳定的带宽保障服务。
46.以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
47.本发明还提出了一种虚拟转发设备的转发限速系统,其中包括:
48.模块1,用于测量得到服务提供商网络平均数据包大小和流数目作为流量特征,该服务提供商网络包含虚拟转发设备和多个租户,使用流量生成工具生成符合该特征的流量,通过在该虚拟转发设备中转发该流量的数据包并测量达到各个带宽所用于转发的cpu资源,构建cpu资源和带宽的对应关系;
49.模块2,用于根据各租户的基础带宽需求以及该对应关系,为各租户分配基础cpu资源,并得到该服务提供商网络在满足该基础cpu资源后剩余的cpu资源,以为每一位租户按照权重再分配空闲cpu资源,每位租户用于转发的最终cpu资源为其分配的基础cpu资源和空闲cpu资源之和,该虚拟转发设备使用该最终cpu资源对其对应的租户完成数据包的转发。
50.所述的虚拟转发设备的转发限速系统,其中该虚拟转发设备利用该最终cpu资源对租户转发数据包进行限速,超过该最终cpu资源时的数据流量将等待或被丢弃。
51.所述的虚拟转发设备的转发限速系统,其中该基础cpu资源、该空闲cpu资源和该最终cpu资源的单位均为cpucycles/s。
52.所述的虚拟转发设备的转发限速系统,其中该步骤3包括:使用令牌桶或公平队列的方式对租户转发数据包进行限速。
53.所述的虚拟转发设备的转发限速系统,其中该虚拟转发设备为虚拟路由器或虚拟交换机。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1