[文献阅读]SwitchReduce : Reducing Switch State and Controller Involvement in OpenFlow Networks

 # Abstract

    OpenFlow是一种流行的网络体系结构,其中几种逻辑的控制器(控制平面)与所有转发交换机(数据平面分离)。通过控制器,OpenFlow框架可以实现交换机中的流级别粒度,从而对每个单独的流进行监视和控制。
   这种体系结构的代价是在各种流量工程场景中,对交换机状态大小施加极大的压力,并给控制器造成负担。在沿着流路径的每个交换机上存在着流匹配规则和流计数器,这会导致每个交换机成千上万的条目。
   为了尝试利用较少拥塞的路径,或者由于虚拟机迁移而动态的重新路由流,会导致控制器沿旧路径和新路径对每个交换机进行干预。在缺乏流存储和控制器的安排的情况下,OpenFlow将无法扩展到预期的生产数据中心规模。
在以上的情况下,作者提出了SwithReduce,一种减少OpenFlow网络中交换机状态与控制器参与的系统。SwitchReduce建立在以下observation的基础上:
1)任何交换机的流匹配规则的数量不应该超过它对传入流必须执行的一组唯一处理动作。
2)每个唯一流的流计数器可以仅在网络中的一个交换机上维护。
仿真结果表明SwitchReduce可以将第一跳交换机上的流条目减少多大大约49%,内部交换机上的流条目减少答99.9%,同时将流计数器平均减少75%。

1. INTRODUCTION

   OpenFlow体系结构在物理上将控制平面与数据平面分离。逻辑上集中的控制器(控制平面)通过在转发交换机(数据平面)中安装定制的定制的流规则来独立的控制网络中的每个流。一个流程规则包括一个与给定流程匹配的Match字段,一个说明字段(说明要对该流执行的操作)以及一个用于维护流统计信息的计数器。,因此,OpenFlow通过Counters还可以对来自每个单独流的流量进行监视,从而允许实施各种流量工程方案以及几种控制,也可以微观的实施安全方案和网络策略。
具有这种几种控制和流级别粒度的OpenFlow,为数据中心提供了有吸引力的设计选项。但是有几个重要的问题:

1)交换机的内存需求
   流级别的粒度给交换机状态带来了巨大压力,要存储每一个流过交换机的流的规则,会导致交换机状态随着流的数量线性增加,如TOR交换机有78000个流匹配规则,这就意味着每个TOR交换机存储78000个匹配项和流计数器,这个数字在核心交换机上可能更高,特别是流量计数器。
   如果流经过4个跃点,则网络中有4个交换机为此流提供了计数器,如果网络中有1000000个流,那么网络中就有4000000个计数器,这增加了交换机对RAM的需求,并导致膨胀的交换机状态。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tNDmPKS8-1607305666206)(C:\Users\fuzh\AppData\Roaming\Typora\typora-user-images\image-20201203103615673.png)]

   如图1所示,m与n两组流从网络的左侧节点遍历到右侧节点,每组流需要5个跃点,虽然流总数仅为(m+n),但流级别粒度导致网络中共有5(m+n)个匹配项和5(m+n)个流计数器。
   无法压缩交换机状态使得OpenFlow的数据中心不可行。如超大型计算中心有超过100000个计算节点,这些计算节点包含据具有虚拟主机的云环境,网络中的流数量达到数百万,即使只有两层转发,MAC转发表也需要容纳数十万至数百万个条目,这对于当今的交换机硬件而言不切实际,。
   OpenFlow规则还使用TACM(Ternary Content Addressable Memory),这非常昂贵,因此大多数商用交换机不支持超过5000至6000个基于TACM的OpenFlow规则。
   在OpenFlow网络中,交换机中的条目数甚至比地而成还要多,这是因为它由通过它的流的数量而不是仅由它服务的目标MAC的数量所控制。同样,每个条目的大小大于用第二层转发的相应的60位条目。
   这些事实表明,当今的交换即将无法满足启用OpenFlow大型数据中心的要求。压缩交换机中匹配项和流计数器的数量的任何优化都将直接影响交换机状态大小。

2)控制器瓶颈

   通过在集中控制平面上实施上述流级别粒度会给控制器带来负担,并在控制器上造成处理瓶颈。在动态网络中,可能需要部署各种流量工程策略,控制器变得非常繁重,其任务是更新属于每个重新路由的旧路径和新路径的每个交换机上的流条目。
   如果流的旧路由有5个跃点,而新路由有4个完全不同的跃点,则控制器必须发送9个OpenFlow的消息(mod/add/del)消息。这显然限制了控制器在具有数百万个并发流的生产数据规模上动态更改路由的能力。
   使控制器参与每个流的设置会导致大量的通道流量。对与网络中的每个新流,必须将至少128字节的打包消息发送给控制器。此外,控制器必须将一条56字节的flow-mod消息发送到新流路径上的每台交换机,该消息由控制器确定。
   对于一个TOR,每秒平均100000个流,网络中的100个TOR,以及每个流平均4跳,这将导致仅来自packet-in的消息的控制信道流量超过10Gbps,和超过4Gbps的来自flow-mod的控制信道流量。

3)较高的首包延迟

   交换机上与流规则不匹配的数据包将重定向到控制器,从而导致第一个数据包的延迟约为几毫秒。造成这种延迟的主要原因是需要从数据平面过渡到控制平面。当前在交换机中填充预路由规则是目前减少延迟的唯一方法,但是,交换机的存储器会成为一个约束。这些问题必须要解决才能在大规模生产数据中心部署OpenFlow。
   于是在文章中,作者提出了SwitchReduce,一种用于减少OpenFlow网络中的交换机状态和控制器参与的系统。SwitchReduce利用OpenFlow提供的中央可见性来促进交换机之间的协作,这样可以使工作分开,进而减少了交换机大小以及控制器的参与。交换机之间的这种协作还可以在网络内部的交换机中预先填充流规则,这有助于减少运行时控制通道的流量,控制器的参与以及端到端的延迟。

SwitchReduce依赖于两个重要的observation:
1)任何交换机上匹配项的数量不应该超过它对传入流必须执行的一组唯一处理动作。
2)每个唯一流的计数器仅可以在网络中的一个交换机上维护。

本篇论文的贡献:

1)介绍SwitchReduce的详细设计,并描述其作为NOX控制器应用程序的实现。
2)我们基于两种不同拓扑的真实数据中心流量显示仿真结果,这些结果表明可以通过SwitchReduce获得节省。
3)我们提供了一个案例研究,重点介绍了SwitchReduce通过主动安装OpenFlow规则来减少流设置延迟的功效,并减轻了在动态重新路由流时控制器的负担。

第二部分:SwitchReduce系统设

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值