ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SDN控制器ONOS架构—Vecloud

SDN控制器ONOS架构—Vecloud

原创 Linux操作系统 作者:Vecloud 时间:2020-11-16 13:57:07 0 删除 编辑

ONOS 是一个采用 OSGI 技术来管理子项目的 SDN 控制器开源项目,在最初设计时有这么几个目标是明确的:
1.
代码模块化:支持把新的功能作为新的独立单元引入
2.
特性可配置:无论是在启动还是运行时,支持动态加载和卸载特性
3.
协议无关:应用不需要和具体的协议库和实现绑定
模块化的实现: ONOS 项目由一组子项目组成,每个项目都有自己的源代码树,可以独立构建。为此, ONOS 的源码采用分层的方式来组织以方便利用 Maven 的级联 POM 文件组织。每个子项目都有自己的 pom.xml 文件和目录,子 pom.xml 文件会继承父 Pom 文件的共享依赖项和配置,使它们能够独立于不相关的子项目构建。 Root 目录包含用于建立完整的项目及其所有模块的顶层 POM 文件。
特性可配置: ONOS 使用 Karaf 作为其 OSGI 框架,除了在运行时的动态模块加载和启动时的依赖解析, Karaf 还支持以下几个特性。
支持使用标准的 JAX-RS API 来开发安全的 API 接口
支持将特性定义为一组 Bundle 来进行集中的自定义设置
对代码包有严格的语义版本声明,包括第三方依赖
有易扩展的命令行框架,支持本地和远端的 SSH 控制台登陆
支持不同日志级别的记录
协议无关, ONOS 被划分为以下几个部分:
和网络交互的协议感知模块
协议无关的系统 Core ,跟踪和服务网络状态信息
基于 Core 提供的系统信息来进行消费和操作的应用
上面的每一层都是分层体系结构,其中面向网络的模块通过一个南向 ( 提供者 )API 与 Core 进行交互, Core 与应用程序通过北向 ( 消费者 )API 进行交互。南向 API 定义了协议中立的手段将网络状态信息传递给核心, Core 通过面向网络的模块与网络设备交互。北向 API 为应用程序提供了描述网络组件和属性的抽象,以便它们可以根据策略定义其所需的动作。
服务是一个功能单元,它由不同层的多个组件作为软件堆栈创建垂直切片。我们把组成服务的组件的集合称为子系统。
ONOS
定义了不同的子系统:
设备子系统 - 管理基础设施设备的库存。
链路子系统 - 管理基础设施链接的库存。
主机子系统 - 管理终端站主机及其在网络上的位置的库存。
拓扑子系统 - 管理网络图视图的时间顺序快照。
path
子系统计算 / 发现基础设施设备之间或端站的主机采用最新的拓扑图快照之间的路径。
FlowRule
子系统 - 管理安装在基础设备的 match/action 流表项和统计流量。
Packet
子系统 - 允许应用程序监听从网络设备接收到的数据包,并通过一个或多个网络设备向网络发送数据包。
Provider
该堆栈的最底层是 Provider 组件, Provider 接口通过协议特定的库和底层设备打交道,并通过 Provider
Service
接口与 Core 交互。
协议感知 Providers 负责使用各种控制和配置协议与网络环境交互,并向 Core 提供服务特定的感知数据。 Provider 也可以从其他子系统收集数据,将它们转换成特定于服务的数据。
Provider
可能还需要从 Core 接受控制命令应用并通过适当的网络协议具体手段应用到网络中。这些都是通过 Provider 接口将这些内容送入 Provider 组件。
Provider ID
一个 Provider 与特定的 Providerid 相关。 providerid 的主要目的是提供一个 Provider 族的外部身份,这可以使设备和其他实体模型保持与负责他们的存在 Provider 相关联,甚至在 Provider 加载 / 卸载操作之后。
Providerid
携带一个 URI 方案名称允许松散的配对与从另一个供应商的家庭提供设备,而这没有访问提供商本身是可能的。
Multiple Providers
子系统可以与多个 Provider 关联。在这种情况下, Provider 被指定为主要的或附属的。主 Provider 拥有与服务相关联的实体,辅助提供者将其信息作为覆盖提供信息。如果任何覆盖导致与底层信息冲突,则此方法给予主 Provider 优先权。设备子系统是支持多个提供者的此类服务之一。
Manager
Manager
是驻留在核心中的组件,其接收来自 Provider 的信息,并将其提供给应用程序和其他服务。它暴露了几个接口:
Northbound Service interface
应用程序或其他核心组件可以通过该接口了解特定方面的网络状态。
AdminService interface
以管理员命令应用到网络或系统的状态。
Southbound ProviderRegistry interface
通过该接口 Provider 可以注册到 Manager 中,通过它可以和 Manager 进行交互。
Southbound ProviderService interface
提供给已经注册的 Provider
Manager
服务接口的消费者可以同步的查询 Service 的信息,也可以异步的作为一个事件侦听器 ( 例如,通过使用 listenerservice 接口注册要监听的事件并实现相关的 EventListener
interface)
。
Store
Store
的具体实现和 Core 里面的 Manager 有很强的相关性, Store 需要索引,持久化以及同步 Manager 收到的信息,这包括分布式 ONOS 多实例间的一致性和鲁棒性的保障,
Application
应用通过 AdminService 和 Service 接口来消费和操作 Manager 聚合的信息,应用程序具有广泛的功能,这里面就包括在 Web 浏览器中显示网络拓扑,为网络流量设置路径
Application ID
每个应用都有一个唯一的 Application ID ,这个标识用于追踪应用相关的上下文 ( 任务和目标
比如 Intent 和 FlowRule) ,为了获得一个有效的 ID ,应用需要注册到 CoreService ,注册他们的名字来进行反向域名解析,比如: org.onlab.onos.fwd
Events and Descriptions
两个在 ONOS 中分布的基本信息单元是事件和描述。与服务一样,事件和描述与特定的网络元素和概念相关联。两者都是一旦创建就不会改变的。
Descriptions
Descriptions
用于在南向的 API 上传递关于元素的信息。例如,一个 HostDescription 包含一个主机的 MAC 和 IP 地址,在网络中的位置信息 (VLAN
ID
和设备 / 端口的连接点 ) 。 Descriptions 通常是由一个或多个模型对象组成。
Events
Manager
使用 Event 通知其 Listener 关于网络中的变化,并通过 Store 通知相关的在分布式设置中的 Peer 。一个事件由一个事件类型和一个由对象模型构成的主题组成。例如,一个 device
event
可通知 devicelisteners , Device( 主题 ) 已经被发现 (device_added) ,失去了 (device_removed) ,或某一方面改变了 (device_updated) 。
Event dispatch
事件是由 Store 基于 Manager 的输入产生的。一旦产生,事件就会通过 storedelegate 接口被分发到感兴趣的听众,最终调用 event
deliveryservice
。从本质上讲, Store Delegate 把事件从 Store 中取出, event
deliveryservice
确保事件仅为感兴趣的听众接收。由于它们之间相互作用的方式,这两个组件驻留在 Manager 中并由那里的 Manager 提供 storedelegate 来做具体实现。
Event Listeners
Event Listener
是实现 EventListener 接口的任何组件。
EventListener
的子接口被按照监听事件的类型进一步的分类。典型的 Event
listener
实现模式是将事件侦听器作为 Manager 或应用程序的内部类,从中从接收到的事件调用相应的服务。这限制了事件处理逻辑不需要对子系统外部进行暴露。
Network representations
模型对象是 ONOS
协议无关方式来表示各种网络元素和属性。事件将这些表示作为它们的主体。这些表示是由 Core 从 Description 中找到的信息来构建的。

Vecloud是一家面向企业提供云交换网络服务为核心业务的技术创新企业,在全球的数据中心节点30个,POP节点超过200个,服务的大客户超过300个,涉及金融、互联网、游戏、AI、教育、制造业、跨国企业等行业领域。http://www.vecloud.com/products/cloudconnect.html

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69984354/viewspace-2734410/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-09-22

  • 博文量
    48
  • 访问量
    31473