C114通信网  |  通信人家园

专题
2017/8/2 10:21

ONOS Mini Summit:ONOS技术指南(上)

C114中国通信网  

介绍ONOS

我现在专注于ONOS的研究与开发。我今天很荣幸能跟大家介绍ONOS,我在ONOS主要担任经理,希望大家有机会跟我联系我今天从以下几方面里讲ONOS:

第一,ONOS整体的概述,包括ONOS的核心,还有ONOS的北向接口,还有ONOS南向接口,还有ONOS的一些应用。

第二,ONOS的发布历史和ONOS未来和前途。刚才Aseem Parikh已经给大家讲了一些。

第三,讲一下怎么贡献ONOS的开源项目

即将到来的ONOS EVENTS

ONOS是起初由OFF研发,2013年开发了一个第一个PUC版本,在这个版本主要专注于扩展性和可可用性。如果看第一版本的话有一个问题,就是性能不怎么好。第一个版本用的是开源软件。PUC版本开始提高ONOS的性能,基于第二个版本2014年12月5日公开了所有的代码,ONOS成为了第一个分布式软件定义网络的项目。它主要支持网络运营商构建自己实际的SDN和解决方案。ONOS设计理念有:第一,代码的模块化。第二,可配置化。它架构分:最上层是应用层,第二层是核心层,核心层主要做分布式处理,比如说ONOS是一个分布式的开源,所有的分布式的机制全部都在这个Coor里,最底层是网络层。通过各层设计,开发的时候就不需要知道其他各层具体的实现方式,可以更专注于自己业务的开发。第四,是协议性,ONOS的开发不需要具体懂底层的通信协议用的是哪个实现的。

运营以下几种网络:第一,WAN 网,第二,Metro网,第三,Cellular Access 网,第四,无线网。从网络运营商观点来讲,SDA控制器必须支持多达10万一个以上的网络设备,就是一台不能满足所有的需求,所以我们开始考虑怎样来开发分布式的SDN控制器。除此以外还需要满足:第一,高吞吐量。一般在网络运营商每秒产生500万-100万的流量。第二,在同样的环境下执行的网络状态操作量过达300-600万。第二,高网络流量。一般来讲SDA控制器500GB-1TB/秒,并且整个设置必须高可用性的。为了满足网络运营商这些严格的要求,我们ONOS采用了分布式架构来设计核心。ONOS是由五层构成:一,用户应用。应用层下面是北向接口,提供管理接口和实现底层的控制,之下是分布式核心。分布式核心以下是南向接口。最底层是协议层。

ONOS提供两大功能:一,高可用性,简称HA二,负载均衡,简称LB。除此之外,ONOS分布式控制,可以负载均衡,同时支持大量的Swich,从而保持它的可扩展性。ONOS的架构可以发现有很多Subsystems构成,我们把这个服务器分成Subsystems,它通过特殊的接口跟其他的可以集成。我们采用了开源框架。我们可以利用在跑起来的情况下安装和启动和关闭的应用,不需要重启整个ONOS,也可以升级自己的。

Subsystems分五种:一个是PPT上显示的灰色部分。第二,网络核心的,是由红色标注。第三,ONOS自带的一个,如果启动ONOS以后,它会自动的安装,可以选择起动某个程序。还有就是接口。这个都是现在Subsystems所支持的一些北向接口。最后一个不是ONOS自己的接口,如果运营商自己有的话可以通过这个跟ONOS通信。Subsystems还可以进一步分三个部件,如图所示。位置在最低端的是应用交换机,管理组件和提供商交换机。中间端是管理交换机,这个主要是接听网络的事件。我们每个Subsystems都有自己的Store。最低端的部件是传播用户的命令到管理交换机。

ONOS怎样实现分布式核心

这个是一个很重要的概念,Subsystems跟其他相比较的话这是一个差异点,就是说其他的开源软件一般都不支持分布式,但是ONOS ODL都支持。它有三个特点:第一,统一连接搭一个控制器。这个是在不同的机器上运作,但是分享着共同的拓扑信息。在ONOS里每个ONOS控制器都会运行同样的软件,并且保存同样的网络设置。ONOS支持Fault-tolerant。在这个图上可以看到第一个交换机被第一个控制器所管理。第一个控制器出现了问题,这样的话第二个控制器就成为了第一个交换机的管理。这里没有网络的延时,如果发生的话时间特别短。即使在网络运行的控制器出现了一些问题也可以解决这样的异常问题。

ONOS是怎样实现网络信息共享

一般来说每个ONOS会管理一个以上的交换机。各ONOS控制器通过通过信息来搜集交换机的信息。通过一个算法把搜集到的信息保存起来。相反,如果某一个控制器想读取信息的话,它可以直接访问来获取信息。如果想实现很严谨信息传播的话就用Distributed primitives。还有就是不严谨的,比如有些信息不需要立即传送到其他的集群上。

基于控制器分两个:一个是支持,实现strong consisteency有两种方法,其中基于JAVA的软件有3-5种,我们ONOS现在也是用一个最成熟的方式来实现的。下面我讲一下ONOS如何实现信息同步化,如果想同步到五个地方,最简单的方法是把信息分成五等分,把每等分复制到三个里,为什么三个?因为其中一个死了,其他的还有。

下面我讲述一下ONOS都有哪些北向接口,它有三种接口。另外,还会提供面向用户的接口。ONOS提供一个很漂亮的界面,这个基于single-page开发的,可以在这里访问所有的内容,不需要刷新界面,在底层实现前台和后台的通信,然后同步化。如果在后台更新信息的化都会反馈到前台,不需要刷新界面。除此以外还使用这些开源软件。这是用三个ONOS控制器来搭建的控制平台。

除了用户界面,ONOS还提供用CLI。访问CLI两种方法:第一,根据安装ONOS使用其中一种方法来访问ONOS。像在本地安装ONOS的话可以用ONOS。如果是远程安装的话,可以用ONOS分装你的二次包,再使用Access CLI,直接执行ONOS就可以了。如果说网络运营商,很多情况下拥有自己的网络管理系统,如果想把ONOS放到自己的网络系统,可以通过ONOS提供的REST API实现系统的整合。目前ONOS提供两套APC接口:一个是基于JSON HTTP/1.1,这种技术在业界很广泛使用,可以说是业界的一个标准。使用这个最重要的是接口的标准和描述接口的文本。REST API缺点是速度慢,它是基于JSON的格式,还有这个是基于HTTP1.1,这个不支持异步通信。为了解决这个问题Google开发了一套新的RPC系统,简称gRPC,这个使用了一个protobuf bodel,这个传输量会降低很多,所以可以很快的传一些信息,这使得gRPC短时间可以传输大量的数据。下面的图表示了这些性能差异。像一般情况下gRPC比Rest API高六倍。Network Graph是抽象网络的链接等等的。Network Graph用来抽象化分布在网络上的网络设备和链接的架构。它是把通信协议特定网络映射到与通信协议无关的协议上,把这个无关的协议我们叫做Model objects。目前提供的这个主要是基于open flow。Model也可以用在其他的抽象协议。Model  opjects分:拓扑的,控制的,packets。

Flow objective怎么实现设备抽象

根据不同的交换机使用差异,针对每个交换机开发独立的应用程序,这不是我们希望的。为了解决这个问题研发了一个方法,就叫Flow objective。通过这个提供的API可以不需要知道具体的交换机硬件怎么构成的可以直接编程这个程序。这个设计主要基于Driver,不管用多少交换机,一旦开发者用这个开发的应用,这个应用可以用于实现Pack1。向在windows开发某种应用的时候不需要知道主机在哪个硬件,因为抽象系统会帮你抽取所有的硬件。Flow objective内部也是使用驱动,这个驱动会对应厂商的。开发者定义这个object,通过这个来转换专用的特定服务。Flow objective现在提供三个类型的接口:第一,Filtering object,forwarding  object Nect object。时间关系我就不细说了,会后可以找我,或者我给你们链接。

接下来看叫Intent Framewor,这个只需要指定两个Host,可以点一个Cast链接,这样所有细节都可以,就是Host会自动生成。一旦控制器受到指令的话,它会到唯一的一个ID。我们生成path intent可以安装好,为了让两台通信,我们经过三个交换机可以做一个链接,这个就自动生成了。

这个编程方式分三种:一种是基于并不抽象化的方式,这是最底层的开发方法。第二,基于Flow objective。第三,基于Enterprise Campus。

这个PPT总结了现在ONOS提供的三种方法:第一,通过Network Configuration搜集网络。第二,基于Device  Configuration 。第三,基于Dynamic  Configuration。

现在讲一下南向接口。它有三个接口:一个,Protocol,第二,Provider,第三,Driver。目前ONOS支持大多数的开源协议,像大家熟悉的Openflow,ONOS现在最稳定的版本是1.11.0。从ONOS1.11版本,就是下一个版本开始,ONF打算Openflow1.5。为了能够让ONOS管理更多厂商的设备,ONOS支持NETCOFN协议,还支持标准通信协议,包括LISP等等。ONOS不仅支持现在大多数的通信,还支持最新的通信协议,还有gRPC。在最底层开展使用开源软件来实现控制,比如Openflow由第三方开发了,我们来调用这个来执行。不管使用哪个第三方,一般最底层的包,就是掌管通信的就是NET。目前ONOS支持的版本是4.1,可以说是支持最新的。通常同一个设备存在多个提供商,像提供商检测到一个设备,像这种功能在提供商里都可以看到的。如果核心层想调用的话它要知道调用哪个提供商,为了这个机制我们内部是使用一个识别号。如果向开发另一个北接口是基于你的平台,你可以加自己的识别号来用的。

Application应用程序接口

Application应用程序根据提供的接口可以分三种。目前ONOS支持超过80个应用,支持12个南向接口,通过添加相关的驱动可以支持现有大部分网络设备。ONOS在其他开源项目还有很多项目,ONOS做出了很多贡献,Aseem Parikh讲到了这个。

给作者点赞
0 VS 0
写得不太好

免责声明:本文仅代表作者个人观点,与C114通信网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

热门文章
    最新视频
    为您推荐

      C114简介 | 联系我们 | 网站地图 | 手机版

      Copyright©1999-2024 c114 All Rights Reserved | 沪ICP备12002291号

      C114 通信网 版权所有 举报电话:021-54451141