随着互联网的普及,网络体系越来越复杂,网络操作需要与其它IT操作的集成与协作,导致网络部署困难更新麻烦、手动操作过多,网络管理员分身乏术。对于以上问题,优化网络结构、网络设备更新是网络研究者们探索的课题,进而出现了软件定义网络(简称SDN)的概念和方法。在SDN运行过程中为提高其效率经常会应用到分布式,分布式环境下必然存在着分布式的多任务并发,而多任务的并发因其并发特性将会导致时间和数据上的不一致,即分布式任务并发协调不一致。本论文即以此为目的展开研究,采用SDN透明化的开源框架OpenDayLight研究分布式任务并发协调一致的问题。
分布式环境下多任务的并发场景经常出现,分布式任务并发不一致即在分布式环境下因多任务并发造成任务到达时间以及数据的不一致,而时间及数据的不一致将导致分布式任务的失败或集群效率及性能不高,因此必须解决分布式任务并发协调不一致的问题。
在ODL 集群中同样存在着分布式任务并发协调不一致的问题,包括在时间上的不一致以及在数据上的不一致,而ODL 框架中目前没有对应的解决方案。
为解决ODL 集群中分布式任务并发在时间上协调不一致的问题可以运用ZooKeeper,ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,本论文将ZooKeeper 部署到ODL 集群中,通过ZooKeeper 编码实现屏障使得分布式任务并发在时间上实现协调一致。
对于ODL 集群中分布式任务并发在数据上协调一致的问题,可以通过本论文中提出的数据提交算法解决。
本论文主要工作是基于OpenDayLight 建立集群,在此基础上利用ZooKeeper 及研究提出的数据提交算法解决分布式任务并发协调不一致的问题,下面对OpenDayLight 及分布式任务并发进行简要介绍。
OpenDayLight 架构主要由应用服务层、控制平面层、南向接口层和数据平面层四层构成。
OpenDayLight 为应用(App)提供开放的北向API。支持OSGi 框架和双向的REST 接口。OSGi 框架提供给与控制器运行在同一地址空间的应用,而REST API 则提供给运行在不同地址空间的应用。所有的逻辑和算法都运行在应用中。
控制平面主要包含了基本网络服务和一些附加的网络服务,这些附加服务都可以通过插件的形式安装加载,这增加了OpenDayLight 的灵活性,当然了其稳定性也是显而易见的。
ODL 控制器采用OSGi 框架,OSGi 框架是面向Java 的动态模型系统,它实现了一个优雅、完整和动态的组件模型,应用程序(Bundle)无需重新引导可以被远程安装、启动、升级和卸载,通过OSGi 捆绑可以灵活地加载代码与功能,实现功能隔离,解决了功能模块可扩展问题,同时方便功能模块的加载与协同工作。自Helium 版本开始使用Karaf 架构,作为轻量级的OSGi 架构,相较于早前版本的OSGi 提升了交互体验和效率,当然其特性远不仅仅于此。
ODL 控制平台引入了SAL (服务抽象层),SAL 北向连接功能模块,以插件的形式为之提供底层设备服务,南向连接多种协议,屏蔽不同协议的差异性,为上层功能模块提供一致性服务,使得上层模块与下层模块之间的调用相互隔离。SAL 可自动适配底层不同设备,使开发者专注于业务应用的开发。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !