论文部分内容阅读
传统网络发展越来越复杂庞大,已经不能满足业务对网络资源灵活调度的需求,并且由于业务的快速发展,网络中流量的剧增,对流量的灵活控制的需求越来越迫切,而且,如此巨大的网络对管理员也造成了巨大的压力。在这样一种需求下,软件定义网络(software defined network,SDN)网络架构应运而生,其控制平面和转发平面分离的思想,轻松实现解耦,不仅解决了资源灵活调度的问题,还可以通过控制平面对网络编程,管理员也能轻松获取网络状态进行配置。但是随着SDN网络架构的应用,控制器平面开始成为网络发展的瓶颈,单台控制器已经不能满足需求,从而对控制器横向扩展成为一个重要的研究的课题。自SDN概念问世以来,业界便开始于控制器横向扩展的研究,随后也提出几种SDN集群的南向接入解决方案,通常使用分布式数据库作为解决方案较多,而作为主流OpenDaylight控制器在集群的实现上也是采用这种思想,由于处于起步研究阶段,其发展并不成熟稳定,功能也不齐全,特别是对于OpenDaylight集群的实现原理和机制的成果聊聊无几,但对于集群的需求已经提上日程。本论文中,对OpenDaylight集群进行了全面的技术分析,集群使用开源的分布式AKKA框架技术,它提供了三个模块实现集群间的数据和消息同步,在数据的存储上使用了shard分片技术,同时提供了基于文件缓存的数据持久化;并使用raft算法实现了ownership的选举机制,从而解决了南向master/slave的选举;在南向和北向协议插件使用集群的规则上也进行了分析,OVSDB和Open Flow协议都已经实现了对集群的支持,而北向RESTCONF协议则并没有特别的应对机制,但是不妨碍对集群的操作。虽然OpenDaylight对集群有了一定的支持,但是对于其南向接入优化和扩展性方面并没有进一步的实现机制。因此,本论文提出了一种基于OpenDaylight集群的集中控制解决方案,旨在解决OpenDaylight集群南向接入和横向扩展性问题。为了能够实现灵活的南向接入,使用OVSDB作为设备管理协议,并提出了最小连接数负载均衡算法对接入的设备进行控制面的负载分担,使用负载因子进行衡量;为了使得控制器异常后不对集群的负载均衡造成影响,提出了影响因子的概念,它是用来衡量控制器异常后对集群负载均衡破坏程度,会在设备接入的过程中不断的调整;另外根据负载因子和影响因子的调整实现集群的动态扩容和缩容。