ONOS白皮书中篇之ONOS架构

编者按:本系列分三篇对ONOS白皮书进行翻译,接《ONOS白皮书上篇》,本文翻译白皮书中的第5部分ONOS架构,如有不当之处,欢迎指正。

5.ONOS架构

ONOS从一开始就从服务提供商的角度开展架构设计。具备高可用性、可扩展以及性能良好等基本性能,并且还有强大的北向接口抽象层和南向接口。

ONOS具有下述核心功能:

■分布式核心平台,提供高可扩展性、高可用性以及高性能,实现运营商级SDN控制平面特征。ONOS以集群方式运行的能力使得SDN控制平台和服务提供商网络具有类似Web风格的灵活性。

■北向接口抽象层/APIs,将网络和应用与控制、管理和配置服务的发展解耦。这个抽象层也是SDN控制平台和服务提供商网络具有类似Web风格灵活性的因素之一。

■南向接口抽象层/APIs,通过插件式南向接口协议可以控制OpenFlow设备和传统设备。南向接口抽象层隔离ONOS的核心功能和底层设备,屏蔽底层设备和协议的差异性。南向接口是从传统设备向OpenFlow白牌设备迁移的关键。

■软件模块化,让ONOS像软件系统一样,便于社区开发者和提供者进行开发、调试、维护和升级。

5.1分布式核心

ONOS可以作为服务部署在服务器集群上,在每个服务器上运行相同的ONOS软件,因为对称性部署是一项很重要的设计考量,可以在ONOS服务器发生故障时可以快速地进行故障恢复。而且网络运营商可以在不发生中断的情况下添加服务器,轻松地扩容控制平面处理能力。ONOS实例协同工作形成被其它网络和应用视作单一的平台。应用和网络设备无需知道是和单一的ONOS实例交互还是和多个ONOS实例交互。这一特征实现了ONOS的可扩展性,可以无缝扩充ONOS容量。就是分布式核心平台所具有的特色性能。

分布式核心提供实例间的通信、状态管理,领导选择等服务。事实上,多个实例表现为一个逻辑实体。通过使用Publish/Subscribe模型中的高速消息,ONOS实例可以将更新信息快速通知给其他实例。ONOS内部设计恢复协议来处理因为实例故障而引起的更新丢失。ONOS使用多种机制管理实例的操作状态,并且每种机制与状态类型一一对应。其中典型的例子就是应用意图、拓扑数据库和流表,每个都有独一无二的规模、读/写模式和持久化需求。一个领导选择服务确保交换机有且只有一个主实例。同时,消息通信、状态管理和领导选择机制保证了集群的高吞吐量、低时延以及高可用性。

这意味着什么?对设备而言,只有一个主ONOS实例,如果这个主实例出现故障,则连接另一个实例,无需重新创建新实例并重新同步流表。对于应用而言,可以通过网络图形抽象层持续获取网络的视图。此外,实例故障和数据平面的故障对应用来说是透明的,这样可以极大地简化应用开发和错误处理。

从业务角度看,ONOS提供了一个高可用的环境,应用可以有效地避免遭遇网络相关的停工期。而且,服务提供商可以随着网络的发展轻松地扩容控制平面容量,并且不会产生网络中断。通过相同的机制,网络运营商按照实例下线、更新、上线的步骤能够实现零当机更新软件。

总而言之,分布式核心是ONOS架构特征的关键,使得SDN控制平面达到电信级要求。

5.2北向抽象层

ONOS架构中有两个强大的北向抽象层:意图框架和全局网络视图。意图框架屏蔽服务运行的复杂性,允许应用向网络请求服务而不需要了解服务运行的具体细节,这就意味着网络运营商和应用开发者可以进行高级编程。他们可以轻松地提出意图:一个策略声明或连接需求。

意图框架示例:

■在主机A与B之间建立连接

■在交换机Y与Z之间建立带宽为z的光通道

■阻止主机A与B通信

意图框架处理所有应用的请求,判断可以满足哪些应用,解决应用之间的冲突,执行管理者的策略,对网络编程提供请求的功能,交付请求的服务给应用。

一个意图转化为多个目标。例如,一个连接2个主机的意图转化为2个目标,各提供一个方向的流。将意图转化的目标编译成指令发送给网络设备,整个流程按照网络运维人员指定的策略进行。从某种程度上说这个方法可以解决意图之间的冲突。

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

■创建一个简单的应用,当该应用获得网络全局视图后计算最短路径。

■通过监控网络视图和编程改变路径调节负载(流量工程)最大化网络利用率。

■将流量从正在升级或因病毒被隔离的网络中引导出来。

确切的说,北向接口抽象层和APIs将应用与网络细节进行隔离。而且也可以隔离需要了解网络事件(如链路中断)的应用和其它应用。反而言之,将网络操作系统与应用隔离,网络操作系统可以管理来自多个、竞争应用的请求。从业务角度看,提高了应用开发速度,允许网络改变并且保证应用不会当机。

5.3南向接口抽象层

南向抽象层由网络组件构成,例如交换机、主机或是链路。ONOS的南向抽象层将每个网络组件表示为通用格式的对象。通过这个抽象层,分布式核心可以维护网络组件的状态,并且不需要知道底层设备的具体细节。总之,分布式核心可以实现南向接口协议和设备无感知。这个网络组件抽象层允许添加新设备和协议,以可插拔的形式支持扩展,插件根据规格映射(或翻译)通用网络组件描述或操控设备,反之亦然。所以,南向接口确保ONOS控管多个不同的设备,即使它们使用不同的协议(OpenFlow、NetConf等)。

南向接口的分层结构如图3所示,最底层是网络设备,ONOS通过协议与设备连接,协议细节被网络组件插件或适配器屏蔽。事实上,南向接口的核心是在不知道具体协议细节和网络组件的条件下维护网络组件对象(设备、主机、链路)。通过适配层API,分布式核心可以与网络组件对象状态保持一致,适配层API将分布式核心与协议细节和网络组件相隔离。

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

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

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

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

5.4软件模块化

软件模块化是ONOS一大特征,基于软件的形式可以很方便地进行添加、改变和维护。ONOS团队在模块化方面投入很多心血,务必让开发者可以简单快捷地操作软件。

何为模块化?将软件拆分为若干组件以及组件之间的交互。从如下的示意图所示,ONOS的主体架构是围绕分布式核心的分层架构。所以,从宏观结构上说,北向接口与南向接口API将应用、分布式核心和适配层相互隔离,可以独立添加新的应用和协议适配器。

同样,从具体细节来看,分布式核心内部的子结构也能体现模块化特征,分布式核心的存在价值就是约束所有子系统的规模并保证模块的可拓展性。此外,连接不同模块的接口是至关重要的,允许模块不依赖其他模块独立更新。这样就可以不断更新算法和数据结构,并且不会影响整体系统或是应用。

显然,ONOS很重视接口,因为接口可以促进模块业务和职责的分离,尽量使子系统之间的交互更为自然、简单。这一特点是确保软件稳定更新的关键。例如,尽量提供南向API的抽象程度,避免将不同协议的偏差传递到上层,并且强化分布式核心而不是适配层来创建网络模型对象。

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

软件模块化的好处归纳为以下几点:

■保证架构的完整性和连贯性

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

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

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

■规避循环依赖的情况

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

如果您对本文感兴趣,可参与以下互动方式与作者近距离交流。

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

(2) 微信(账号:SDNLAB)

(3) QQ群

SDN研究群(214146842)

OpenDaylight研究群(194240432)

时间: 2024-10-14 17:29:00

ONOS白皮书中篇之ONOS架构的相关文章

ONOS白皮书下篇之ONOS价值主张

编者按:本系列分三篇对ONOS白皮书进行翻译,接<ONOS白皮书中篇之ONOS架构>,本文翻译白皮书中的剩余部分ONOS价值主张及总结,如有不当之处,欢迎指正. 6.ONOS价值主张--运营商用例 6.1多层SDN控制 服务提供商运营多层网络.例如,一个服务提供商可能同时运营IP数据网络和传输网络或是光网络.IP层的上面可能有一个隧道层,创建类似于虚拟IP层网络这样的服务.目前,每层分开管理导致网络利用率低,运营成本高,并且重新配置周期高达几个月.例如,在现在的环境下,数据网络设计者一般会预留

ONOS预热篇之ONOS简介(一)

ONOS问世后引起广泛关注,关于ONOS与ODL的纷争不绝于耳,最近小编拜读了一下ONOS白皮书,并做了一点粗浅总结,下面就跟大家分享一下. 1 ONOS诞生背景 1.1 ONOS诞生的利益分析 随着移动设备的不断普及,OTT服务和内容分发的兴起导致服务提供商网络迫切的需要一次网络变革.为了应对日益增长的带宽需求,服务提供商希望网络可以更加敏捷高效,且能从创新型服务和新型业务模式中分一杯羹得到更好的发展,至此SDN的呼声越来越高.而SDN中控制器占重要部分,是兵家必争之地,陆陆续续已经出现了很多

ONOS预热篇之ONOS与OpenDaylight比较(四)

目前以设备提供商为代表的OpenDaylight阵营目前发展势头正劲,而由斯坦福大学和加州大学伯克利分校SDN先驱创立的非营利性组织ON.Lab也紧锣密鼓地推出了自己的开源SDN操作系统——ONOS.此次打造的商业级的以用户为导向的ONOS开放网络操作系统是以服务提供商为首,并且得到了开放网络基金会ONF的鼎力支持,意欲与OpenDaylight一决高下.具体的性能究竟孰好孰坏还需要等待发布之后的评测,下面小编就从不同的方面比较一下这两个业界最知名的网络操作系统. 1. 驱动方式不同 ONOS白

基于ONOS的SDN-IP架构概述篇

编者按:SDN-IP是ONOS上的一个应用程序,允许软件定义网络使用标准的边界网关协议(BGP)连接到外部网络.从BGP角度看,SDN网络表现为单一的自治系统(AS),其行为与任何传统的AS一样.基于AS的SDN-IP应用提供BGP和ONOS之间的集成整合机制,在协议层SDN-IP的行为作为一个有规则的BGP发言人.从ONOS的角度来看,它只是使用其服务,在SDN数据平面安装和更新相应的转发状态的应用程序. 1 架构目标  1.1 SDN-IP设计目标 (1)兼容性Compatibility:S

onos网络操作系统

ONOS虚拟机安装教程及使用  终于等到你!ONOS千呼万唤始出来,在大家的翘首以盼中,终于等到了12月5号!原本以为发布时,北京时间已是凌晨,出乎意料的是在5号下午五点多就已经发布.下面主要记录使用ONOS虚拟机安装的过程. 1.ONOS 教程安装 在ONOS tutorial的虚拟机里,已经安装了ONOS所需要的依赖软件,可以了解一系列的分布式网络操作系统ONOS的主要概念和功能,熟悉ONOS的基本功能操作. ONOS是基于SDN OpenFlow环境下使用,初学者在未了解SDN之前时,建议

ONOS虚拟机安装教程及使用

终于等到你!ONOS千呼万唤始出来,在大家的翘首以盼中,终于等到了12月5号!原本以为发布时,北京时间已是凌晨,出乎意料的是在5号下午五点多就已经发布.下面主要记录使用ONOS虚拟机安装的过程. 1.ONOS 教程安装 在ONOS tutorial的虚拟机里,已经安装了ONOS所需要的依赖软件,可以了解一系列的分布式网络操作系统ONOS的主要概念和功能,熟悉ONOS的基本功能操作. ONOS是基于SDN OpenFlow环境下使用,初学者在未了解SDN之前时,建议先熟悉了解OpenFlow.Mi

Ubuntu14.04源码安装ONOS

ONOS可以安装在OS X和Ubuntu14.04系统中,本文主要介绍在Ubuntu14.04系统下如何源码安装ONOS. 1 系统要求 安装ONOS对操作系统有如下要求 Ubuntu Server 14.04 LTS 64-bit 2GB or more RAM 2 or more processors 需要安装如下软件,如果不用git获取源码,GIT可以不需要安装. Java 8 JDK (Oracle Java recommended; OpenJDK is not as thorough

SDN概述

SDN的典型架构可分为三层,最上层为应用层,包括各种不同的业务和应用:中间的控制层主要负责处理数据平面资源的编排.维护网络拓扑和状态信息等:最下层的基础设施层负责数据处理.转发和状态收集.除上述三个层次外,控制层与基础层之间的接口和应用层与控制层之间的接口也是SDN架构中的两个重要组成部分.按照接口与控制层的位置关系,前者通常被称为南向接口,后者则被称为北向接口.其中ONF在南向接口上定义了开放的OpenFlow标准4,而在北向接口上还没有统一要求.因此,ONF SDN架构更多的是从网络资源用户

ONOS-1.6.0源码安装

本文主要介绍在Ubuntu16.0.4系统下如何安装onos-1.6.0. 1     工具和原料 Java8 JDK ApacheMaven(3.0及更新版本) ApacheKaraf(3.0.5及更新版本) Git(如果不用git获取源码,可以不需要安装git,我这里都是事先下载好的源码包) 2     安装依赖 2.1    安装Java8 Ubuntu安装JDK的两种方式: 通过ppa(源)方式安装 通过官网下载压缩包安装 注:推荐使用第一种方式,因为这种方式可以使用apt-get up