邓志华
(四川大学计算机学院,成都 610025)
自适应在SDN网络中应用的研究
邓志华
(四川大学计算机学院,成都610025)
在大规模的SDN网络中,网络中控制器的部署会在很大程度上影响整个网络的延迟、可靠性以及负载均衡等。由于大规模网络自身的高延迟、突发性等固有的特点,很难保证在一次部署之后永久性高效地运行整个网络,随着网络器件的加入,以及不同应用的部署网络性能尤其是控制器的性能会随之受到影响。在控制器的部署方面,控制平面在数量上经历了从单控制器到多控制器,在结构上经历了从多控制器的扁平化结构到垂直结构的发展,在灵活性和可扩展性方面[1],经历了从静态的部署到动态地部署,意图通过改变控制器的部署方式,使网络达到一个最佳的状态(具备高性能、低延迟、安全可靠、灵活性高等的特点)。现有的改进算法都只是针对某些特定的场景进行分析与设计。然而,当改变特定的参数时,由于算法本身对这些特定参数的高度敏感性以及大规模网络多样性的特点,因此,这些算法不具备解决突变和多样性强的大规模网络负载均衡问题。本文主要从控制器部署的灵活性和可扩展性方面,分析控制器负载均衡问题产生的原因以及自适应的特点,并证明通过设计自适应学习算法来改进现有针对控制器负载均衡问题的部署策略的可行性。
1.1传统网络
由于传统网络的控制平面和转发平面的耦合使得整个网络系统相对封闭,传统网络的负载均衡装置一般是在考虑计算机设备(例如CPU、内存的时用率)的工况时所设计的一种均衡决策。而没有考虑到庞大的计算机网络流量对终端系统处理能力所带来的性能瓶颈以及缺少对网络转发设备的细粒度控制和调度策略,尽管传统的网络路由器能够在不同路径之间分配带宽,但这也仅仅局限于对线路的控制[3]。图1介绍了传统的服务器端网络负载均衡的模型,均衡服务器根据后端服务器(S1,S2,S3)的负荷状态通过分发机制将外部客户端请求的分发到不同的服务器,因此,均衡服务器必须保持与客户端之间的会话并且将同一个会话TCP包通过NAT转换提交给同一个处理该会话的服务器。
图1
1.2SDN网络
基于SDN的服务器负载均衡网络不再直接修改网络中TCP包的源/目的IP地址、源/目的端口等,而是通过分布式流表来实现NAT的转换功能,SDN均衡器在网络中只是基于相应的均衡算法产生、修改或者删除流表中的规则(如图2)。这样,一方面降低了网络中对包处理的开销,另一方面通过解耦均衡控制器、维护服务器负载状态来更新流表转发规则,提高了网络管理的效率和灵活性。文献[3-4]都提出来一种通过SDN来分发用户请求的算法,一种是通过通配符匹配来降低流表中规则数量,另一种则通过静态和动态地适配算法来管理外部请求,两者都能够很好地降低网络资源的消耗以及均衡网络服务器的负荷。
图2
上一节对比了传统网络和SDN网络在处理网络负载均衡问题上的优缺点,由于传统网自身的许多限制(封闭性所造成的),网络的负载均衡方法受到了网络本身体系结构上的瓶颈。而对于SDN网络来说,相当于开放了这些限制,使其在设计高性能算法等各方面提供了条件。本节将分析在大规模网络中使用SDN处理网络负载均衡上所遇到的一些问题以及当前相应的一些解决方法。
在大规模的网络中,如何部署SDN控制器以及如何划分SDN域对网络延迟、可靠性、负载均衡等起着至关重要的作用。文献[5]中,提出了一种对平均延迟部署策略[6](这是对最坏情况延迟部署策略的一种改进)改进的策略,即通过谱聚类算法将WAN划分为多个AS(自治系统)来对待,因为如果将整个控制平面作为一个整体来对待,将会忽略每个控制器独立个体的可靠性以及控制器之间的传播时延,相比平均延迟部署策略,这种分区策略能够很好地保证各个OpenFlow交换机对流的处理延迟随着流的增加而保持一个相对平稳的趋势。上述的将WAN划分为多个AS的方法虽然可以有效地保持较好的负载均衡状态,但没有一个确切的算法来确定分区后的控制器如何部署以及在网络中部署多少个控制器(这是一个NP-hard问题),另一方面,由于聚类方法自身的局限性,不能满足计算速度快、聚类精度高和无监督(不依赖先验知识、对参数不敏感)等的基本要求[6]。因此,需要一种能够随网络状态变化情况自学习的算法来满足大规模网络突变性强、结构复杂等的特点而进行动态调整和适应。下节将从自适应算法的特点以及适应场景,分析自适应算法在解决大规模SDN网络负载均衡方面应用的可能性。
自适应是指在处理和分析过程中,根据数据的特征自学习并动态地调整对数据的处理方法、顺序、参数和边界条件/约束条件等,使所处理的数据适应统计分布特征和结构特征而取得最佳的处理效果的过程。在本文中的实现是通过AS中交换机的数据反馈来动态调整控制器的约束条件来应用该想法。
3.1自适应算法
自适应算法所采用的最优准则有最小均方误差(LMS)准则,最小二乘(LS)准则、最大信噪比准则和统计检测准则等,其中最小均方误差(LMS)准则和最小二乘(LS)准则是目前最为流行的自适应算法准则[7],根据应用场景的不同,自适应算法的实现方式也会有相应的变化,如文献[8]中提出的一种分布式任务的节点自适应算法,通过结合系统反馈数据和概率论,得出网络各项参数指标,并运用分段讨论和求极值简化算法的表达形式,提高了自适应算法的适用性;文献[9]提出了一种基于IP包头多域分类的自适应负载均衡算法,通过动态调整TCP流数目最少的流数,能够在各处理节点间保持动态负载均衡的同时保持会话的完整性,并分析并总结了一些动态的和自适应调度的处理负载均衡的算法。
3.2自适应在SDN网络中的应用
设想:在分区后的大规模SDN网络中,每个AS中的交换机通过反馈自身状态而控制器通过该反馈的情况以及系统负荷等情况综合分析调整约束条件,使各自治系统达到一个最佳的均衡状态,该系统在假设SDN网络在自治系统划分和控制器部署问题上已经得到了一个成熟地解决方案,本文针对的是网络部署后期所发生的网络负载不均衡现象所提出的一种解决方案。由于大规模网络迁移交换机会带来很多计算开销,因此,对于终端出现瓶颈的系统来说,迁移交换机无疑是一种糟糕的选择。选择自适应算法的一个很重要的原因,就是使用自适应在单个的AS中进行动态调整,而对于SDN网络来说,这种调整是通过选择控制器的策略,并通过该策略来改变流转发规则实现的,因此,避免了因为计算和转换等导致的各种包处理开销。
以下是实现该设想的操作流程图。
对比传统的SDN网络,控制器多了一个自适应算法分析模块,该模块通过下层数据平面交换机所反馈的网络状态对整个AS系统进行动态分析,并对分析的结果与特定的约束条件进行判断,选择一种适合该自治系统最佳的一种系统负载均衡策略,如果不满足条件,则不会更改控制器的转发策略,这样一方面可灵活的控制下层数据流的转发;另一方面,在一定程度上减少不必要的算法开销。自适应既可以选择一种局部最优的策略算法,也可以在后期通过各个自治系统之间的东西向接口通信灵活地选择其他合适的策略。
大规模网络的多样性特定决定了网络不能单一地通过某种统一的策略来达到全局网络的负载均衡,加入自适应模块相当于一种对子网络的定制化,根据子网络的需求选择一种最佳的转发策略。这种网络系统的控制平面负责管理全局网络负载均衡,而转发平面通过反馈机制实现局部网络的负载均衡,这是一种双向平衡策略。
图3
本文从网络产生负载均衡问题的原因出发,对比SDN网络与传统网络在解决服务器端负载均衡上的优缺点,以及SDN在解决大规模网络负载均衡问题上的不足,并描述自适应算法的适应场景,提出了使用自适应的SDN网络系统。综合现有关于SDN网络负载均衡问题的解决思路,论证了自适应算法在解决该领域问题的可行性。后阶段工作将针对大规模的SDN网络设计具体的实验,并对各种场景进行实验对比和分析论证。
[1]左青云,陈鸣,赵广松,邢长友,张国敏,蒋培成.基于OpenFlow的SDN技术研究[J].软件学报,2013,24(5):1078-1097.
[2]Mao Qilin,Shen WeiKang.A Load Balancing Method Based on SDN,Measuring Technology and Mechatronics Automation(ICMTMA)[C],2015,18-21.
[3]Hai-long Zhang,Xiao Guo.SDN-Based Load Balancing Strategy for Server Cluster[C].Proceedings of CCIS,2014.
[4]Peng Xiao,Wenyu Qu.The SDN Controller Placement Problem for WAN[C].Symposium on Privacy and Security in Commutations, IEEE/CIC ICCC,2014.
[5]B.Heller,R.Sherwood,N.McKeown,The Vontroller Placement Problem[C].In Proc:The First Workshop on Hot Topics in Software Defined networks,HotSDN,2012.
[6]杨博,刘大有.复杂网络聚类方法[J],Journal of Software 2009(9),54-66.
[7]自适应算法.http://baike.baidu.com/view/3378814.htm
[8]闵帆,石兵,杨国维,周明天.分布式系统中任务分配的一种节点自适应算法[J].计算机学报,2003,26(3):302-308.
[9]陈一骄,卢锡城,时向泉,孙志刚.一种面向会话的自适应负载均衡算法[J].计算机学报,2008,19(7):1828-1837
SDN;Control Plane;Load Balancing;Adaptive Algorithm
Research on Self-Adaptive Applied in SDN Network
DENG Zhi-hua
(College of Computer Science,Sichuan University,Chengdu 610065)
1007-1423(2016)02-0016-04
10.3969/j.issn.1007-1423.2016.02.004
邓志华(1989-),男,湖南长沙人,硕士,研究方向为计算机网络
2015-11-26
2015-12-26
SDN网络控制与转发分离的思想使得网络具有更好的可编程性以及更好的资源利用率;然而,随着网络规模的增大,单控制器因其自身的性能瓶颈不能满足大规模网络的控制需求,而多控制器则需要通过交互自身的网络状态来生成全局网络视图,并根据该网络视图生成相应的转发规则来控制数据平面进行流的转发;对于多控制器的SDN网络,根据全网视图下发的规则进行流的转发,可能产生控制平面同一时刻的异步状态以及网络的不稳定性和负载均衡等这些潜在的问题。自适应算法能够通过学习调整并优化代价函数,使之达到最佳的均衡状态。针对SDN网络负载均衡问题产生的原因以及目前解决该问题所提出方法及存在的优缺点,介绍并分析了自适应算法在解决大规模SDN网络负载均衡问题上的可行性。
SDN;控制平面;负载均衡;自适应算法
The idea of decoupling control plane from data plane in software defined networks which makes the network a better programmability and resource utilization.Nevertheless,with the scale of increasing network,this centralization can not meet the needs of large-scale network in single controller network for it’s performance bottlenecks and may trigger asynchronous state,unreliability and load balancing problems for multi-controller SDN network to forward stream according to this global network view.Adaptive algorithm can adjust and optimize the cost function by learning to balancing state.Discusses the causes and existing solutions including its pros and cons to load balancing and the feasibility of adaptive algorithm in solving large-scale SDN network load balancing problem.