ONOS是首款专门面向服务提供商和企业骨干网的开源SDN网络操作系统,是由一家名为开放网络实验室(ON.Lab)的非盈利性组织打造的一款商用控制器。ONOS旨在为服务提供商和企业骨干网提供高可用性(HA)、可横向扩展及高性能的网络需求。由于该项目得到了业界各知名大佬包括服务提供商AT&T、NTT,网络供应商Ciena、Ericsson、Fujitsu、Huawei、Intel、NEC,网络运营商Internet2、CNIT、CREATE-NET的资助和开发,并获得了ONF的鼎力支持,使得ONOS的消息一公布就被炒得炙手可热,可谓赚足了眼球。
目前市面上已经有很多开源SDN控制器,包括NOX、Beacon、SNAC和POX,这些控制器的问世向我们展示了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)