ONOS架构
系统层次
ONOS的系统层次分为
1. 和网元打交道的协议层和适配层;
2. 协议不感知的ONOS Core层来管理网络状态和资源;
3. 应用层消费Core层提供的统一的北向接口
组件与服务
模块化: ONOS由一系列功能模块组成,每个功能模块由一个或者多个组件组成,对外提供一种特定服务,这种基于SOA的框架同时支持对组件的全生命周期管理,支持动态加载、卸载组件
开放:ONOS提供开放的北向与南向API,使得用户能够很方便的基于ONOS开发应用以及南向插件。
抽象:ONOS 抽象出了统一的网络资源和网元模型奠定了第三方SDN应用程序互通的基础,使得运营商可以做灵活的业务协同和低成本业务创新。
简单:ONOS屏蔽了复杂的分布式等通用机制,对外只暴露业务接口,使得应用开发十分简单。
ONOS集群
集群设计特性
● 分布式
由多个实例组成一个集群
● 对称性
每一个实例运行相同的软件和配置
● 容错与弹性扩展
集群在面对节点故障时仍然可操作,支持新节点动态加入,轻松应对网络扩张
● 位置透明
一个客户端可以和任何实例打交道,集群要展现单个逻辑实例的抽象
集群间通信
ONOS集群间通信分为两种,一种基于Gossip协议,是数据弱一致性的通信方式;一种基于Raft算法,是保证数据强一致性的通信方式。使用哪种通信方式取决于对不同资源的一致性要求,关于RAFT的介绍参见(http://thesecretlivesofdata.com/raft/ )
ONOS集群可靠性
ONOS的Cluster机制能够保障节点失效对业务无影响,当ONOS节点宕机时,其他节点会接管该节点对网元的控制权,当节点恢复后,通过loadbalance命令恢复节点对网元的控制并使整体的控制达到负载均衡
ONOS性能
单个ONOS 实例: 1024 台设备/4096 链路 (Drake版本)
我们内部对ONOS做过一些测试,发现单台ONOS实例可以管理1024台设备和4096个链路
ONOS集群处理能力与集群实例数呈线性关系
在多个ONOS实例组成集群的情况下测试,ONOS的流表下发性能和Intent操作性能和实例数量呈现线性增长关系
ONOS核心特质总结
综合前面的材料,我们总结以下ONOS五点核心特质:
● ONOS 是主要由运营商和斯坦福ONLAB实验室发起的开源控制器平台,主要成员为运营商/TOP电信设备商以及学术机构
● 架构专注于电信运营商领域控制器关键需求:高可扩展性,高性能,高实时性,高可靠性
● ONOS 统一的网络资源和网元模型奠定了第三方SDN应用程序互通的基础,使得运营商可以做灵活的业务协同和低成本业务创新。
● ONOS北向接口的标准化可以帮助运营商可以集成大量第三方SDN应用,其统一的南向API接口可以帮助运营商引入第三方设备的驱动程序,避免厂家锁定。
● 多种南向协议,既支持现有设备,也支持未来白盒设备,既保护现有投资,又确保架构面向未来
ONOS 模块图详解
这个是ONOS最新的ONOS模块图,绿色部分是南向插件,主要分为三大类
● 第一类是拓扑收集型,包括OSPF,BGPLS,ISIS;
● 第二类是配置协议,包括NETCONF,SNMP,OVSDB;
● 第三类是指导转发型,包括Openflow以及PCEP。
红色和黑色部分是ONOS Core部分,分别表示网元资源管理模块和通用机制模块。蓝色部分是应用层,包括WAN场景的SDNIP,SR,VPLS,Packet/Optical等,有安全领域的AAA,NFV的 vRouter,VTN,OLT与SFC,以及运维的Flow Analyzer和Fault Management