软件定义网络中集群主控制器的推选方法技术

技术编号:28383785 阅读:28 留言:0更新日期:2021-05-08 00:12
本发明专利技术提供的软件定义网络中集群主控制器的推选方法,提出了控制器集群的机制架构和功能运行设计方法,软件定义网络体系结构采用控制器集群的架构方式,对控制器集群的通信机制、数据缓存机制、数据一致性和事件通知进行了设计和实现,解决单一控制器在安全性、扩展性和性能方面的不足;提出了一种控制器性能值的计算方法,该方法融合直接影响控制器性能的几个关键的指标,得出综合指标的一个评定函数,评定函数的值即为每个控制器的性能值大小;本发明专利技术拥有执行频率低、推选过程中产生的消息类型少、充分考虑容错处置,实现比较简单、具有较低的时间复杂度和较高的通信复杂度等优点。

【技术实现步骤摘要】
软件定义网络中集群主控制器的推选方法
本专利技术涉及一种网络集群主控制器推选方法,特别涉及一种软件定义网络中集群主控制器的推选方法,属于主控制器推选

技术介绍
随着网络技术的不断发展,传统网络出现了诸多问题,如网络配置复杂度高、路由表条数过多导致路由器变得臃肿不堪等问题,这些问题说明传统网络体系架构面临着革新,可编程网络为后期软件定义网络的产生提供了可以参考的依据。主动网络中,允许将用户程序放置到数据包中,并能让网络设备路由器自动执行转发过程,用户可以通过编程的方式动态的配置自己需要的网络形态,达到方便管控网络的目的。但由于主动网络有诸多缺点,如网络协议兼容性差,致使其并未在实际中得到部署,4D架构的出现将决策平面从数据平面中分离,使控制平面自动化和中心化,其设计思想便是软件定义网络出现的基础。通过参考计算机系统的抽象结构,网络体系结构也可以抽象为转发抽象、状态抽象和配置抽象三部分。在转发抽象中,将传统路由器中的逻辑控制抽离出来,交由控制层管控,在控制平面与转发平面加以标准协议,确保数据包能在此网络结构中正确转发。控制层得到全网的拓扑图,便于通过全网拓扑对网络进行统一配置。配置抽象又能更近一层的简化网络模型,用户只需通过控制平面提供给应用层的接口便能对网络进行简单配置,完成对交换机的统一部署,因此网络结构抽象是软件定义网络产生的决定性因素。目前,在分布式环境中进行主结点的推选已经成为各个领域研究中必不可少的一部分,主结点作为分布式结构下的leader结点,掌控着整个网络中的状态信息,其功能主要有负载均衡的协调、网络决策仲裁、消息接收与下发和路由的查询等。主结点应该选择性能最优的结点,并且在其失效时能够推选出新的主结点继续服务,从而保证网络的可靠性。软件定义网络体系架构的核心是将网络的控制平面与转发平面分离,通过对控制平面的软件编程管控整个网络,转发平面依旧运行于网络设备上,而分离出的控制平面交由控制器管控,控制器负责对软件定义网络进行逻辑控制。当软件定义网络的部署跨越多个区域时,采用分布式控制器集群结构,避免单一控制器结点在扩展性和性能等方面的不足。为确保控制器集群达到管控整个软件定义网络的目的,所考虑的第一个问题即是集群中主控制器推选,主控制器维护整个集群中其它控制器和交换机的状态信息,若主控制器出现失效,则需要从集群剩余的控制器中选出新的主控制器,因此需要进行主控制器推选算法,来解决这一问题。现有技术缺少应用到软件定义网络中主控制推选的算法。现有技术的软件定义网络的仍然有许多问题亟待解决:第一,控制平面所面临的问题主要有流安装的可靠性和控制器的扩展性,控制器在和交换机通信进行流安装过程时,可能存在着数据包的丢失,网络联接的中断等情况,软件定义网络是一个集中化控制结构,这对软件定义网络的扩展带来了极大阻碍,影响网络规模的扩大,而且单一的集中化控制方式也在安全性和性能上有一定的风险,如果单一的控制器出现失效或者是临时断开,将会导致整个软件定义网络的瘫痪,。即使使用多控制器的结构来解决这一瓶颈,但多控制器中也面临着消息的一致性和扩展性的问题,而本专利技术的重点是控制平面中控制器的扩展性问题;第二,转发平面面临的问题,软件定义网络转发平面主体是交换机,随着网络规模不断扩大,交换机中的流表项数目越来越多,流表字段的定义也在不断的变化,流表的结构也从开始的单级流表发展为后来的多级流表结构,给交换机的设计带来了很大的阻碍,现有技术的软交换机在性能上存在着很大的不足,即使是硬件交换机同样面临着性能上的问题,并且硬件交换机对OpenFlow技术的支持力度不够,而且由于交换机没有一个特定的标准,导致各个生产交换机厂商不能达成设备的一致性和兼容性;第三,现有分布式推选方法的不足之处主要有以下三个:一是过程存在活锁问题,二是不能做到完全的分布式,三是算法时间复杂度和通信复杂度高,Lien最小生成树算法在最坏的情况下,(nd)的时间复杂度和(2p+nd/2-1)的通信复杂度都过高,影响算法的性能;Gallager最小生成树算法执行过程过于繁琐,致使其理解难度增大,算法的时间复杂度和通信复杂度也并不好。第四,现有技术软件定义网络体系结构无法解决单一控制器在安全性、扩展性和性能方面的不足,缺少对控制器集群的通信机制、数据缓存机制、数据一致性和事件通知进行设计实现的方法;缺少控制器性能值的计算方法,无法选出性能值最佳的结点充当主控制器结点,无法把推选结果传播下去,现有技术的主控制器推选方法执行频率高、推选过程中产生的消息类型多、未充分考虑容错处置,实现比较复杂,具有时间复杂度高和通信复杂度低等缺点。
技术实现思路
本专利技术提供的软件定义网络中集群主控制器的推选方法,提出了控制器集群的机制架构和功能运行设计方法,软件定义网络体系结构采用控制器集群的架构方式,对控制器集群的通信机制、数据缓存机制、数据一致性和事件通知进行了设计和实现,解决单一控制器在安全性、扩展性和性能方面的不足;提出了一种控制器性能值的计算方法,该方法融合直接影响控制器性能的几个关键的指标,得出综合指标的一个评定函数,评定函数的值即为每个控制器的性能值大小;本专利技术提出软件定义网络中主控制器推选方法:由发现主控制器结点失效或者临时断开的结点即根结点发起推选命令,然后经由三个阶段的推选过程,根结点统计全网范围内的结点性能值,选出性能值最佳的结点充当主控制器结点,并把推选结果经由最小生成树传播下去,最后分析方法性能,最终得出本专利技术拥有执行频率低、推选过程中产生的消息类型少、充分考虑容错处置,实现比较简单、具有较低的时间复杂度和较高的通信复杂度等优点。为达到以上技术效果,本专利技术所采用的技术方案如下:软件定义网络中集群主控制器的推选方法,首先提出了控制器集群实现架构和功能设计方法,包括控制器集群的通信机制、数据缓存机制、数据一致性和事件通知;其次,本专利技术提出影响控制器性能的几个关键指标,通过对指标的分析检测,提出一种控制器性能值的计算方法;最后,本专利技术基于最小生成树的构造思想,提出一种控制器集群的软件定义网络架构中主控制器推选方法,并分析研判算法设计时边的容错处置、主控制器失效再推选和算法执行的时间复杂度与通信复杂度问题;本专利技术具体包括:第一,控制器集群设计,一方面,控制器通过软件定义网络的南向接口向转发设备发送流表和网络管控;另一方面,控制器给上层应用程序提供若干北向接口,应用程序通过这些标准接口对底层网络进行配置和高效的资源调度,本专利技术主要采用控制器集群方式,控制器集群设计包括控制器集群的通信机制、数据缓存机制、通过分布式的协作关系确保全网状态的一致性设计和事件通知设计;第二,控制器性能值计算方法,提出一种控制器性能值的计算方法,本专利技术控制器的性能指标包括控制器运算性能、控制器存储性能、控制器下发流表的带宽性能:控制器运算性能是控制器在收到交换机通过OpenFlow协议通道传送来的数据包信息时,具有快速查找该数据包转发路径的能力;控制器存储性能是控制器所能存储的流表和全网拓扑结构视图资源的性能;控制器带宽性能是本文档来自技高网
...

【技术保护点】
1.软件定义网络中集群主控制器的推选方法,其特征在于,首先提出了控制器集群实现架构和功能设计方法,包括控制器集群的通信机制、数据缓存机制、数据一致性和事件通知;其次,本专利技术提出影响控制器性能的几个关键指标,通过对指标的分析检测,提出一种控制器性能值的计算方法;最后,本专利技术基于最小生成树的构造思想,提出一种控制器集群的软件定义网络架构中主控制器推选方法,并分析研判算法设计时边的容错处置、主控制器失效再推选和算法执行的时间复杂度与通信复杂度问题;本专利技术具体包括:/n第一,控制器集群设计,一方面,控制器通过软件定义网络的南向接口向转发设备发送流表和网络管控;另一方面,控制器给上层应用程序提供若干北向接口,应用程序通过这些标准接口对底层网络进行配置和高效的资源调度,本专利技术主要采用控制器集群方式,控制器集群设计包括控制器集群的通信机制、数据缓存机制、通过分布式的协作关系确保全网状态的一致性设计和事件通知设计;/n第二,控制器性能值计算方法,提出一种控制器性能值的计算方法,本专利技术控制器的性能指标包括控制器运算性能、控制器存储性能、控制器下发流表的带宽性能:控制器运算性能是控制器在收到交换机通过OpenFlow协议通道传送来的数据包信息时,具有快速查找该数据包转发路径的能力;控制器存储性能是控制器所能存储的流表和全网拓扑结构视图资源的性能;控制器带宽性能是控制器将已查找到的流表项转发给交换机的速度,控制器的带宽、控制器与交换机之间的通信信道的带宽较高时,控制器接收和下发流表的速度越快,软件定义网络的性能越高;/n第三,主控制器推选方法,设计主控制器推选方法时,整个分布式网络分成多个集群,每个集群域中采用集中式控制,由主控制器集中控制该集群,在控制器集群模式下,所有控制器将消息传送到主控制器汇总,主控制器对集群中的其它控制器和交换机进行维护,主控制器推选方法是自适应过程,两种场景会执行主控制器推选方法:一是整个基于控制器集群的软件定义网络初始化时,由集群中的任一结点发起主控制器推选方法,在控制器集群内部选出最优控制器作为集群主控制器;二是网络运行过程中,集群的剩余控制器周期性的监控主控制器的工作状态,一旦发现访问不可达,则立即启动推选方法,从集群剩余的控制器中选出新的主控制器,接管已出现故障的主控制器的工作,网络运行过程中主控制器保存的数据信息周期性存储,以便主控制器失效后仍能获取主控制器失效前状态信息;根据计算得到的集群中所有控制器的性能值信息,本专利技术提出的主控制推选方法:基于最小生成树构造思想,分析检测获取的每个控制器的性能指标,得到每个控制器的最终性能值,推选出的主控制器即是性能值最佳的控制器。/n...

【技术特征摘要】
1.软件定义网络中集群主控制器的推选方法,其特征在于,首先提出了控制器集群实现架构和功能设计方法,包括控制器集群的通信机制、数据缓存机制、数据一致性和事件通知;其次,本发明提出影响控制器性能的几个关键指标,通过对指标的分析检测,提出一种控制器性能值的计算方法;最后,本发明基于最小生成树的构造思想,提出一种控制器集群的软件定义网络架构中主控制器推选方法,并分析研判算法设计时边的容错处置、主控制器失效再推选和算法执行的时间复杂度与通信复杂度问题;本发明具体包括:
第一,控制器集群设计,一方面,控制器通过软件定义网络的南向接口向转发设备发送流表和网络管控;另一方面,控制器给上层应用程序提供若干北向接口,应用程序通过这些标准接口对底层网络进行配置和高效的资源调度,本发明主要采用控制器集群方式,控制器集群设计包括控制器集群的通信机制、数据缓存机制、通过分布式的协作关系确保全网状态的一致性设计和事件通知设计;
第二,控制器性能值计算方法,提出一种控制器性能值的计算方法,本发明控制器的性能指标包括控制器运算性能、控制器存储性能、控制器下发流表的带宽性能:控制器运算性能是控制器在收到交换机通过OpenFlow协议通道传送来的数据包信息时,具有快速查找该数据包转发路径的能力;控制器存储性能是控制器所能存储的流表和全网拓扑结构视图资源的性能;控制器带宽性能是控制器将已查找到的流表项转发给交换机的速度,控制器的带宽、控制器与交换机之间的通信信道的带宽较高时,控制器接收和下发流表的速度越快,软件定义网络的性能越高;
第三,主控制器推选方法,设计主控制器推选方法时,整个分布式网络分成多个集群,每个集群域中采用集中式控制,由主控制器集中控制该集群,在控制器集群模式下,所有控制器将消息传送到主控制器汇总,主控制器对集群中的其它控制器和交换机进行维护,主控制器推选方法是自适应过程,两种场景会执行主控制器推选方法:一是整个基于控制器集群的软件定义网络初始化时,由集群中的任一结点发起主控制器推选方法,在控制器集群内部选出最优控制器作为集群主控制器;二是网络运行过程中,集群的剩余控制器周期性的监控主控制器的工作状态,一旦发现访问不可达,则立即启动推选方法,从集群剩余的控制器中选出新的主控制器,接管已出现故障的主控制器的工作,网络运行过程中主控制器保存的数据信息周期性存储,以便主控制器失效后仍能获取主控制器失效前状态信息;根据计算得到的集群中所有控制器的性能值信息,本发明提出的主控制推选方法:基于最小生成树构造思想,分析检测获取的每个控制器的性能指标,得到每个控制器的最终性能值,推选出的主控制器即是性能值最佳的控制器。


2.根据权利要求1所述的软件定义网络中集群主控制器的推选方法,其特征在于,集群通信机制:控制器集群中的通信使用Jgroups通信机制,在搭建控制器集群架构时,首先在集群中选出一个主控制器结点,当有新的结点需要加入集群时,主控制器可发现该结点并告知新加入的结点应该和集群中的哪些控制器相连,其中GossipRouter在集群中所有结点启动前运行,集群中的每个控制器都和GossipRouter建立TCP联接,当集群中的所有控制器都启动后,构建拥有N个结点的控制器集群,此时Jgroups负责控制器之间的通信,并且对集群中的控制器结点进行维护,对控制器的维护采用心跳失效检测机制,该机制检测每一个控制器结点信息,若发现发出的心跳消息超出设置的最大时间,则通过多次尝试与其进行通信,当尝试次数超过设置的某一个最大值时,仍没有收到其返回消息,则说明该结点处于失效状态,然后通知集群中其它结点该失效的控制器信息,控制器集群中若有结点临时离开该集群,也通过心跳失效检测机制来实现,达到控制器集群中信息的同步;采用TCP作为底层传输协议,集群中结点的发现使用UDP多播的方式;
数据缓存机制:控制器集群中同步信息包括集群的拓扑信息和每个控制器的状态信息,这些信息的存储采用分布式缓存机制infinispan,在分布式环境中,将多个infinispan组成一个集群,向外提供一个大容量的堆内存,infinispan为每个结点分配副本,任意一个结点信息在集群的其它结点中存在着备份,在设计控制器集群时采用封装Jgroups协议的infinispan数据缓存结构;infinispan在集群环境下使用时,能够实现集群间同步通信,即当有缓存需要存入集群中的某个结点时,同时将该缓存内容添加到集群中的其它所有结点内,确保访问每一个结点时都能够读取到当前集群的全部同步信息;在对缓存内容进行同步复制的过程中,即数据修改操作时,禁止对其内容进行读取,直至集群中所有结点上数据的写入完成,并返回修改完成的消息为止,保证数据的读写一致性。


3.根据权利要求1所述的软件定义网络中集群主控制器的推选方法,其特征在于,事件通知:集群中产生事件通知的情形主要有控制器自身的状态改变,控制器与转发设备之间的联接改变以及缓存改变,联接改变事件包括:一是控制器结点离开集群或者有新的结点加入集群以及某个控制器结点失效导致的联接变化,二是控制器与转发设备之间或者是转发设备相互之间的联接发生改变,三是控制器向集群中的其它控制器发送自身状态发生改变的事件;缓存改变事件的实现采用infinispan,它向外提供了接口,客户端使用该接口获取事件发生改变的消息,集群中若发生控制器与转发设备断开联接、集群中添加新的控制器以及转发设备间链路变更情形,导致缓存表项的新建、删除和变更,对于这些事件的发生,集群快速获取,同时将变更后的缓存同步到集群的所有控制器中;
对于事件通知的设计,在控制器中使用集群服务提供同步事件的接口,联接管控模块收到监听得到的集群视图改变事件或缓存改变事件后,调用事件处置模块,事件处置模块调用联接服务模块,最终完成事件的同步工作,在控制器集群中实现数据的一致性和事件的同步处理,方便应用程序通过北向接口对控制器进行开放式编程,也方便底层转发设备通过南向接口对控制器进行访问。


4.根据权利要求1所述的软件定义网络中集群主控制器的推选方法,其特征在于,本发明控制器性能指标主要有三个:cpu大小、存储大小和带宽大小,软件定义网络中主控制器推选方法执行时,总是推选控制器性能最佳的控制器作为主控制器,控制器性能值采用控制器的三个性能指标综合而成,假设控制器的硬件性能指标都已知,控制器的性能值采用正则化和加权法的形式进行评估,j代表的性能指标分别为控制器的cpu、存储和带宽,Fj表示控制器性能指标j对应的实际值,分别是所有控制器中性能指标j的实际值中最大值和最小值,vj是Fj的正则化值,其计算式为:



权重是各性能指标所占的比重,由指标特征决定,若有k个性能指标,则且sj∈[0,1],控制器的整体性能值计算式为:



在本发明中有三个性能指标,所以k=3,主控制器推选时,推选性能值Q最大的控制器作为主控制器。


5.根据权利要求1所述的软件定义网络中集群主控制器的推选方法,其特征在于,基于本发明的控制器性能值计算方法,在推选过程中假定:每个控制器在参与主控制推选时已经计算出自己的性能值,这个计算过程在推选方法执行前进行;
控制器集群采用图论的方式,软件定义网络中的控制器被缩成一个无向图的结点形式,当无向图中的某个结点监测到主控制器结点失效或临时断开后,该结点将启动主控制器推选方法,算法基于最小生成树的思想设计,主控制器推选方法由三个阶段构建:第1阶段是使用洪泛的方法在无向连通图中构造一棵生成树,同时产生最小生成树的分支结构;第2阶段从生成树的叶子结点开始返回消息,直至消息转发到根结点为止,消息内容包括每个结点的性能值、最小生成树的树边消息和无向图中的非树边消息,根结点将得到的每个结点的性能值排序,选出性能值最佳的结点,该结点即是所求的主控制器结点;根结点再根据得到的树边信息和非树边信息,将最小生成树的分支结构使用非树边联接成一颗最小生成树;第3阶段从根结点开始沿着最小生成...

【专利技术属性】
技术研发人员:李蕊男王辉
申请(专利权)人:荆门汇易佳信息科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1