ONOS白皮书中篇之ONOS架构

2023-11-08 21:18
文章标签 架构 中篇 白皮书 onos

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

意图框架示例:

 ■在主机AB之间建立连接

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

 ■阻止主机AB通信


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

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

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

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

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

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

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

5.3南向接口抽象层

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

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

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

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

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

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

5.4软件模块化

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

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

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

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

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

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

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

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

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

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

 ■规避循环依赖的情况

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

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

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


 微信(账号SDNLAB)


 QQ群

     SDN研究群(214146842)

     OpenDaylight研究群(194240432)






这篇关于ONOS白皮书中篇之ONOS架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/372568

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

【系统架构设计师】黑板架构详解

黑板架构(Blackboard Architecture)是一种软件架构模式,它模仿了多个专家系统协作解决问题的场景。在这种架构中,“黑板”作为一个中央知识库,存储了问题的当前状态以及所有的解决方案和部分解决方案。黑板架构特别适合于解决那些没有确定算法、需要多个知识源(或称为“专家”)共同作用才能解决的复杂问题。 一、黑板架构的组成 黑板架构主要由以下几个部分组成: 黑板(Blackboa

Java后端微服务架构下的API限流策略:Guava RateLimiter

Java后端微服务架构下的API限流策略:Guava RateLimiter 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在微服务架构中,API限流是保护服务不受过度使用和拒绝服务攻击的重要手段。Guava RateLimiter是Google开源的Java库中的一个组件,提供了简单易用的限流功能。 API限流概述 API限流通过控制请求的速率来防止

Arch - 演进中的架构

文章目录 Pre原始分布式时代1. 背景与起源2. 分布式系统的初步探索3. 分布式计算环境(DCE)4. 技术挑战与困境5. 原始分布式时代的失败与教训6. 未来展望 单体时代优势缺陷单体架构与微服务架构的关系总结 SOA时代1. SOA架构及其背景1. 烟囱式架构(Information Silo Architecture)2. [微内核架构](https://www.oreilly.c

新一代车载(E/E)架构下的中央计算载体---HPC软件架构简介

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。 时间不知不觉中,快要来到夏末秋初。一年又过去了一大半,成

Linux 云计算底层技术之一文读懂 Qemu 架构

Qemu 架构概览 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。 正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成