文档章节

ONOS的架构简析

SDN_LAB
 SDN_LAB
发布于 2014/12/18 15:09
字数 1798
阅读 216
收藏 0

ONOS是首款专门面向服务提供商和企业骨干网的开源SDN网络操作系统,是由一家名为开放网络实验室(ON.Lab)的非盈利性组织打造的一款商用控制器ONOS旨在为服务提供商和企业骨干网提供高可用性(HA)、可横向扩展及高性能的网络需求。由于该项目得到了业界各知名大佬包括服务提供商AT&TNTT,网络供应商CienaEricssonFujitsuHuaweiIntelNEC,网络运营商Internet2CNITCREATE-NET的资助和开发,并获得了ONF的鼎力支持,使得ONOS的消息一公布就被炒得炙手可热,可谓赚足了眼球。

目前市面上已经有很多开源SDN控制器,包括NOXBeaconSNACPOX,这些控制器的问世向我们展示了SDN的魅力与潜力。但是我们必须清楚这些控制器并不能用于商业化的产品,因为它们缺乏可扩展性、可靠性以及良好的性能等商业所需的关键特性。据称这也将是一款能与OpenDaylight抗衡的一款商业级SDN网络操作系统。

那么,ONOS到底怎样实现商业化性能的,它的架构到底出色在哪里?下面小编从ON.Lab官方发布的白皮书摘取了相关资料来简析一下ONOS的架构。

1. ONOS架构

ONOS架构设计伊始就将服务提供商放在首位。可靠性强、灵活度高以及良好的性能都是最基本的要素,同时它还具有强大的北向接口和南向接口。

ONOS具有的核心功能主要包含:北向接口抽象层/APIs、分布式核心、南向接口抽象层/APIs、软件模块化,具体将做详细分析。下图给出了ONOS的设计架构图:

                                   图 1. ONOS的设计架构图

1.1 北向抽象层

ONOS有两个强大的北向抽象层:Intent架构和全局网络视图。Intent架构屏蔽服务运行的复杂性,应用向网络请求服务而不需要了解服务运行的具体细节。应用更多的集中于能做什么,而不是怎么做。

全局网络视图为应用提供了网络视图,包括主机、交换机以及和网络相关的状态参数,如利用率。应用可以通过APIs对网络视图进行编程,一个API可以为应用提供网络视图。

确切的说,北向接口抽象层和APIs将应用与网络细节隔离,而且也可以隔离应用和网络事件(如连接中断)。相反的,将网络操作系统与应用隔离,网络操作系统可以管理来自多个、竞争应用的请求。从业务角度看,提高了应用开发速度,并允许在应用不停机的状态下进行网络更改。

1.2 分布式核心(DISTRIBUTED CORE

分布式核心平台提供组件间的通信、状态管理,领导人选举服务。因此,多个组件表现为一个逻辑组件。对设备而言,总是存在一个主要组件,一旦这个主要组件出现故障,则连接另一个组件而无需重新创建新组件和重新同步流表。对应用而言,网络图形抽象层屏蔽了网络的差异性。另外,应用可以获悉组件和数据平台的故障代码。这些都大大简化了应用开发和故障处理过程。从业务角度看,ONOS创建了一个可靠性极高的环境,有效地避免应用遭遇网络连接中断的情况。而且,当网络扩展时网络服务提供商可以方便地扩容数据平台,且不会导致网络中断。通过相同的机制,网络运营商也可以实现零宕机离线更新软件。

总而言之,分布式核心平台是ONOS架构特征的关键,将SDN控制器特征提升到电信运营商级别。

                                图 2. ONOS分布式核心架构图

 

1.3 南向接口抽象层

南向抽象层由网络单元构成,例如交换机、主机或是链路。ONOS的南向抽象层将每个网络单元表示为通用格式的对象。通过这个抽象层,分布式核心平台可以维护网络单元的状态,并且不需要知道底层设备的具体细节。这个网络单元抽象层允许添加新设备和协议,以可插拔的形式支持扩展,插件从通用网络单元描述或操作映射或转化为具体的形式,反之亦然。所以,南向接口确保了ONOS可以管控多个使用不同的协议的不同设备。

南向抽象层的主要优势包括:

 ■可以用不同的协议管理不同的设备,且不会对分布式核心平台造成影响。

 ■扩展性强,可以在系统中添加新的设备和协议。

 ■可以轻松地从传统设备迁移到支持OpenFlow的白牌设备。

1.4 软件模块化

软件模块化是ONOS一大结构特征,方便软件的添加、改变和维护。ONOS的主体架构是围绕分布式核心平台的三层架构,核心平台内部的子结构也能体现模块化特征,核心平台的存在价值就是约束任何一个子系统的规模并保证模块的可拓展性。此外,连接不同模块的接口是至关重要的,允许模块不依赖其他模块独立更新。这样就可以不断更新算法和数据结构,并且不会影响整体系统或是应用,这一特点是确保软件稳定更新的关键。

ONOS建立树形结构不仅仅为了遵循而是要加强这些结构原则。合理控制模块大小并且模块之间保持适当依赖形成一个非循环的结构图,模块之间通过API模块之间关联,正如下图所示:

                     图 3. ONOS模块结构图

软件模块化的优势归纳为一下几点:

 ■保证结构的完整性和连贯性;

 ■简化测试结构,允许更多的集成测试;

 ■减小系统某部分改变的影响,从而降低维护难度;

 ■组件具有可拓展和可定制的特性;

 ■规避循环依赖的情况。

2. 总结

本文简析了ONOS的设计架构,只是根据官方发布的白皮书简要阐述它们的设计意图、理念以及架构各层面主要特点。

本文来源于SDNLAB,可点击此阅读原文。如果您对本文感兴趣,可参与以下互动方式与作者近距离交流。

(1) 微博(http://weibo.com/sdnlab/

(2) 微信(账号SDNLAB)

(3) QQ

    SDN研究群(214146842)

    OpenDaylight研究群(194240432)




 

 




© 著作权归作者所有

SDN_LAB
粉丝 27
博文 186
码字总数 268737
作品 0
南京
私信 提问
filecoin技术架构分析之十五:filecoin源码分析之节点运行逻辑

我是先河系统CTO杨尉,欢迎大加关注的的Github: waynewyang,本文是filecoin技术架构分析系列文章第十五章源码分析之节点运行逻辑。 分析基于的源码版本:go-filecoin master a0598a54(2019年...

深入浅出区块链
03/10
0
0
2016 年 SDN/NFV 开源三大趋势

在软件定义网络(SDN)和网络功能虚拟化(NFV)开源工作的头几年,开源工作的目标相对模糊,但今年开源工作的进展有了3个明显的趋势。 首先,CORD项目变得越来越受业界的欢迎。CORD项目在2016年受...

两味真火
2016/12/31
1K
0
ONOS 项目与 Linux 基金会合作开发 SDN/NFV

近日,ONOS 社区和 Linux 基金会联合宣布结成战略合作关系,双方将联手开发开源的 SDN/NFV 解决方案。 ONOS 项目与 Linux 基金会的合作旨在创建颠覆性的 SDN 解决方法,重点是开源平台、白盒...

oschina
2015/10/18
1K
2
SDN网络IPv6组播机制支持实时视频业务海量用户扩展

【技术沙龙002期】数据中台:宜信敏捷数据中台建设实践 宜信技术沙龙 将于5月23日晚8点线上直播,点击报名 一、背景: 随着互联网的迅猛发展,诸如视频直播、网络教学等实时业务的广泛应用,...

宜信技术学院
05/16
0
0
SDN in Action: Build a mini-lab environment and practice SDN-IP/ONOS with GNS3, Mininet and VMware

SDN in Action: Build a mini-lab environment and practice SDN-IP/ONOS with GNS3, Mininet and VMware 薛国锋 xueguofeng2011@gmail.com 本文主要通过简单的实验,对SDN相关概念以及ONOS开......

xueguofeng
2017/09/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Oracle:本地表空间管理,字典表空间管理

本地管理表空间 一、概述 1、理解本地管理表空间的由来 2、理解什么是字典管理表空间及工作原理 3、理解本地管理表空间的优势(为什么要使用本地管理表空间) 4、理解本地管理表空间的内部结...

突突突酱
26分钟前
1
0
深度剖析Spring Boot源码,看完薪资敢要30K!

1 实例化SpringApplication SpringApplication.run(BootifulApplication.class, args); public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) {ret......

Java架构资源分享
29分钟前
4
0
tornadofx控制台输出“三门问题”,蒙特卡洛算法

import tornadofx.*fun main() { val wins = intProperty() val lose = intProperty() val Msg = stringProperty()// 1000万次 val n = 10000000 (1..n......

oschina4cyy
36分钟前
1
0
你可能不知道的MySQL中的定点数类型

定点数类型 正因为用浮点数表示小数可能会有不精确的情况,在一些情况下我们必须保证小数是精确的,所以设计MySQL的大叔们提出一种称之为定点数的数据类型,它也是存储小数的一种方式: 其中...

爱编程的浪子
38分钟前
2
0
第十讲:Python爬取网页图片并保存到本地,包含次层页面

上一讲我们讲到了从昵图网的首页下载图片到本地,但是我们发现首页上面的大部分链接其实都可以进入到二级页面。 在二级页面里面,我们也可以同样进行图片的下载,通过层层循环我们可以把网址...

刘日辉
45分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部