张开东
(山西职业技术学院,山西 太原 030006)
基于Kandoo架构的SDN网络负载均衡算法研究
张开东
(山西职业技术学院,山西 太原 030006)
摘要:SDN基于分层模型的原理,将数据层与管理层分隔并为其定义了规范化的信息交互接口——OpenFlow。OpenFlow技术主要采用的是Kandoo架构具体实现网络的分布式控制。而其中涉及到的网络负载均衡问题长久以来一直是相关领域的重点解决问题。因此本文重点对基于Kandoo架构的几种典型网络负载均衡算法的性能进行了研究分析和比较测评。
关键词:SDN;OpenFlow;Kandoo;负载均衡
Kandoo架构是应用在OpenFlow协议平台上的典型的分布式控制器结构,它采用了完全分布式与分层式相结合的架构,其局部控制器可由网络管理人员根据情况灵活进行更换调整,有效简化了网络结构。而Kandoo架构中的负载问题主要指的是本地控制器在区域数据流控制事件分配处理时出现的调度不均衡现象[1]。其负载均衡策略主要用于解决区域内频发事件的合理调度和时间分配,以保证各个区域内的负载均衡。本文在对其负载均衡策略中经常采用的蜂群算法、加权轮询算法以及加权轮询改进算法进行分析研究,并对其执行效率进行了测试与对比。
1Kandoo架构实现原理
1.1Kandoo架构简述
Kandoo架构是由SoheilHassasYeganeh等在2007年提出并设计的一种基于SDN网络控制平台的高级应用控制框架[2]。具有可编程性的软件控制平台,对于网络的路由控制、带宽流量控制、数据广播及存储等操作全部由可编程的软件来实现控制,还可以通过用户编程灵活实现网络资源的控制,同时还可将程序卸载重写,更改控制策略。
图1 基于SDN的Kandoo控制平台
由图1可知Kandoo路由控制平台主要由状态指示器(IGP)、控制引擎(BGP)、基于路由控制协议提供控制服务的RCS服务器三部分组成。
RCS服务器是可编程实现控制的服务器,为网络管理人员提供了易于实现的控制功能,而不必过多地考虑硬件设备状态,简化硬件设备的配置工作,减少硬件配置错误而引起的一系列网络问题。
IGP用于反映当前网络的路由链路状态信息,并将监测到的状态信息提交给RCS服务器,以便RCS服务器进行准确的路由控制。
控制引擎BGP用于建立和维护路由器与路由器之间,路由器与RCS服务器之间的会话通道,并遵循TCP协议的路由控制协议。由于BGP直接部署在TCP之上,并遵循相应的控制协议,因此不需要再单独建立物理通道实现以上对象的交互。
Kandoo架构是目前SDN技术实现所采用的主流架构,其部署灵活且兼容性好,使网络结构进一步得到了简化。
1.2Kandoo的构成与工作模式
1) Kandoo控制器
Kandoo控制器是Kandoo网络的核心,除兼容基本的OpenFlow控制功能外,还具备对特定应用的识别扩展功能。通过分层部署的控制器可对事件处理进行分级,属于本地控制器处理的事件将对全局控制器屏蔽,根控制器主要负责响应本地控制器的流表项更新请求。
2) 控制器的虚拟部署
Kandoo虚拟控制器可以直接部署在本地交换机上,但前提是交换机设备的软件是可卸载更新的。虚拟控制器可采用就近策略部署在距离交换机最近的网络硬件资源上;同时Kandoo架构还允许在同一台终端设备上部署多个本地控制器,具体架构部署主要依赖于当前网络的拓扑结构。
3) 控制器算法策略
Kandoo通过对控制器的虚拟化部署方便地实现虚拟控制层与物理数据层的分离。同时在算法策略的制定上着重考虑了本地控制程序的分离加载,以避免卸载过时应用流表而可能引起的错误。经过优化的Kandoo架构还加入了负载均衡策略,例如加权轮询、蜂群算法等方案以解决控制层负载不均衡问题。
4) Kandoo事件的传输
Kandoo控制器可通过程序设定自行建立简单的事件传递通道,实现网络数据流控制消息的传输。Kandoo控制器间的事件传递都是采用异步通讯的方式,将消息流封装为事件然后再基于异步方式进行传递。
1.3Kandoo架构所着重实现的功能
1) 对于原网络架构的兼容。现在的软件控制网络普遍遵循OpenFlow协议标准,大部分的网络路由设备都支持OpenFlow技术,因此Kandoo对OpenFlow技术的兼容是非常必要的。
2) 能够实现程序的自动控制,而减少人工消耗。基于Kandoo架构的软件开发是与硬件完全分离的,在部署的时候不需要过细的考虑硬件的实际状态以及具体的部署方式。通过根控制器的Appreroute应用实现网络数据流量的实时监听,通过数据流量的状态发布指令到本地控制器的Appdetect服务,由本地控制器的Appdetect实现数据流的转发控制或者是进行流表的更新操作。
Kandoo架构实现了在不必修改网络路由设备硬件状态即可部署软件控制方案的软件控制网络功能。针对不同的交换机设备实现统一的软件控制是软件控制网络技术的核心难题,Kandoo主要通过根控制器来实现集中的逻辑控制,对网络中接入的各类交换设备不间断地进行监听查询来获取到大量的符合信息。
2软件控制网络的负载均衡算法实现
Kandoo架构中的负载问题主要指的是本地控制器在区域数据流控制事件分配处理时出现的调度不均衡现象。Kandoo将这类频发事件都限制在了数据层面的本地控制器上进行处理。Kandoo负载均衡策略主要用于解决区域内频发事件的合理调度和时间分配,以保证各个区域内的负载均衡。Kandoo负载均衡策略设计思路主要是通过实现并行计算,提高分布式资源调度效率,具体参考依据有任务的响应时间、系统吞吐量、资源调度利用率等指标。
2.1加权轮询算法
加权轮询算法是负载均衡策略中最基础的均衡算法,实际上这种算法是加权算法与时间轮转算法的组合策略,主要通过分析区域内的控制节点的事件处理性能来调度任务分配,使得各个任务的响应时间尽量均衡。加权轮询算法先要计算出区域内各个控制节点的权值,具体由权值来表示各个控制器节点的处理性能,权值越高事件处理性能就越好;同时监测各个任务的等待时间,对等待时间延长的任务适当调整其响应优先级顺序。该算法实现简单,但在复杂应用环境中功能有限,还需结合文中提到的第二种算法——蜂群算法进一步提高系统性能。
蜂群算法技术是目前较为流行的新型算法策略,算法开发者灵感来源于蜜蜂在平时收集食物时的有规律的行为轨迹,因此将该算法命名为蜂群算法。
2.2蜂群分布式集中调度算法
蜂群算法是典型的集中模式管理策略,基于蜂群算法策略部署的控制器单个控制行为实现简单,形成集群系统后行为控制趋于集中复杂化。在多个虚拟集群队列中统一调度空闲节点查询请求队列,激活事件处理行为,本地控制器可完全独立自主运行简单调度程序处理各类频发事件,并能够根据数据流传输需求在网络中的动态变化灵活进行调节。涉及到全局性事件处理由根控制器统一实现调度分配。蜂群算法的工作过程分为三个步骤:
1) 首先建立虚拟请求服务队列ServiceA、ServiceB,所有的数据转发请求都需要先加入到请求队列中。
2) 建立服务控制器集群Virtualise,若干个控制服务器分布在数据层面形成独立的若干虚拟节点,这些节点可自行运行调度算法,查询请求队列,提前相应的事件进行响应。
3) 设定CallBoard——广告资源共享区,实现数据层面的消息广播,控制服务器集群中所有控制节点都可以通过公告板来获得必要的调度信息,也可以将自身涉及到全局调度的主要信息发布到公告板上[3]。
蜂群算法是解决在分布式网络中集中调度任务管理问题的典型策略模式,在很大程度上提高了节点任务的并行响应,进而改善了Kandoo网络的服务性能和资源利用率。但蜂群算法实现起来结构复杂,还有待于相关研究人员的进一步的改进完善。
2.3加权轮询算法的优化
对加权轮询算法的优化主要是要改善其在复杂环境中调度任务的负载均衡问题。基于加权轮询算法结合了任务调度性能最小优先策略,在综合考虑了算法的易实现性和调度的合理性后,通过仿真模拟实验进一步验证了加权轮询优化算法的可行性。算法演示可参见图2。
图2 加权轮询优化算法的程序示例
由图中加权轮询优化算法流程可知,经过优化的加权轮询算法加入了一个重要的变量参数就是时间周期Time,这个参数用于控制负载流表的更新周期。首先在算法中创建一个负载流表,由根控制服务器采集各个本地控制服务器的负载状态信息,然后将信息更新记录到负载流表中,并对各节点服务器的事件处理性能进行由低到高的排序;请求队列中的事件任务按照负载流表中的节点性能排序从低到高依次分配到各个服务节点进行处理,当时间周期结束,重置时间周期值,同时更新负载流表。
3Kandoo架构的负载均衡算法测评
本章节针对软件控制网络中的负载均衡问题提出了三种解决方案,即加权轮询算法、蜂群算法、加权轮询与最小优先算法结合的优化算法。下面将根据两个测试任务对这三种算法进行比较测评,为大家的学习提供一些研究参考价值。
第一个测试任务,建立55个任务请求,采用上述三种解决方案分别进行任务响应测试,得出相关数据汇总如图3。
图3 第一测试任务数据分析汇总
第二个测试任务,建立更多的任务请求,例如310个任务处理,采用上述三种解决方案分别进行任务响应测试,得出相关数据汇总如图4。
图4 多任务数的性能参数分析图
根据两个测试任务三种解决方案的数据分析对比,笔者
得出如下结论:
1) 在相对简单的任务响应中,加权轮询算法占有明显优势,事件响应时间最快且资源利用最高;
2) 在测试二中增加了任务处理的复杂性后,加权轮询算法各方面效率下降明显,蜂群算法及加权轮询优化算法表现出了稳定的运行状态,两种解决方案得出的数据相似,差别不大。
经过以上测试我们可以看出在任务环境简单的网络中,采用实现复杂的蜂群算法、优化算法是不必要,不但不能有效地提高节点性能还增加了系统的复杂性;而在复杂任务的网络环境中,单一的加权轮询算法无法满足多任务的合理调度,需要考虑后两种解决方案,蜂群算法和优化算法,从这两种算法的数据分析来看,加权轮询优化算法更为稳定,数据波动基本在均值上下。
参考文献
[1]赵靖文.基于OpenFlow的集群负载均衡架构研究[D].青岛:山东大学,2014.
[2]杨明军.基于Kandoo架构的网络负载均衡算法的研究[D].兰州:兰州大学,2013.
[3]ROSTAMI T,et al.ORAN:OpenFlow Routers for Academic Networks[M].Proceeding of HPSR,2013.
Research on Load Balancing Algorithm of SDN Network Based on Kandoo Architecture
Zhang Kaidong
(ShanxiPolytechnicCollege,TaiyuanShanxi030006,China)
Abstract:Based on the principle of hierarchical model, SDN divides the data layer and management layer to define the standard of information exchange interface——OpenFlow. The OpenFlow technology mainly uses the Kandoo architecture to achieve a specific network of distributed control. The problem of network load balancing is the focus in the related fields for a long time. So this paper focuses on the performance of several typical network load balancing algorithms based on Kandoo architecture.
Key words:SDN; OpenFlow; Kandoo; load balancing
中图分类号:TP393.2
文献标识码:A
文章编号:1674- 4578(2016)01- 0070- 03
作者简介:张开东(1984- ),男,山西临县人,助讲,大学本科,研究方向:计算机应用。
收稿日期:2015-11-05