OpenDaylight架构分析

基本介绍

OpenDaylight(ODL) 是一个基于SDN开发的模块化、可扩展、可升级、支持多协议的控制器框架。北向接口可扩展性强,REST型API用于松耦合应用,OSGI型用于紧耦合应用。引入SAL屏蔽不同协议的差异性。南向支持多种协议插件,如OpenFlow 1.0、 OpenFlow 1.3、OVSDB、NETCONF、LISP、BGP、PCEP和SNMP等。底层支持传统交换机、纯Openflow交换机、混合模式的交换机。ODL控制平台采用了OSGI框架,实现了模块化和可扩展化,为OSGI模块和服务提供了版本和周期管理。ODL靠社区的力量驱动发,支持工业级最广的SDN和NFV使用用例。ODL每6个月推出一个版本,经历的版本为Hydrogen、Helium、Lithium、Beryllium。

OpenDaylight 设计时候遵循六个基本架构原则:

  • Runtime Modularity and Extensibility:支持控制器运行时进行服务模块的安装、删除和更新。
  • Multiprotocol Southbound:南向支持多种协议。
  • Service Abstraction Layer:南向多种协议对上提供统一的北向服务接口,MD-SAL(Model Driven Service Abstraction Layer)是opendaylight 的一个主要feature。
  • Open Extensible Northbound API:提供可扩展的应用API,通过REST或者函数调用方式。
  • Support for Multitenancy/Slicing:允许网络逻辑上(或物理上)划分成不同的切片或租户,控制器的部分功能和模块可以管理指定切片,控制器根据所管理的分片来呈现不同的控制观测面。
  • Consistent Clustering:提供细粒度复制的聚合和确保网络一致性的横向扩展(scale-out)。

架构分析

ODL控制器可以运行在任何支持JAVA的平台上,如架构图1所示,大体分为三部分,网络APP/业务流程层、控制器平台层、物理/虚拟网络设备层,北向接口与南向接口将三者连接。控制器向应用层提供北向接口,应用使用控制器收集信息,利用控制器做分析,部署新的网络规则等。南向接口可支持多种协议,openflow1.0、openflow1.3、BGP等,这些协议插件动态地连接在SAL上。

OpenDaylight(Beryllium)架构 图-1

物理和虚拟网络设备层

最底层由物理、虚拟设备组成。例如交换机、路由器等在网络端点间建立连接。底层支持传统交换机、纯Openflow交换机、混合模式的交换机。

南向接口和协议模块

南向接口

ODL向下层提供的接口称之为南向接口,南向接口支持多种协议。如OpenFlow 1.0、 OpenFlow 1.3,OVSDB、NETCONF、LISP、BGP、PCEP和SNMP等。这些协议模块以插件的方式动态挂在SAL上。南向接口使用Netty来管理底层的并发IO。Netty是提供异步的、事件驱动的网络应用框架,该框架健壮性、可扩展性良好,还具有延时低、节省资源等特点。Netty使用简单,功能强大,支持多种主流协议。定制性强,可以通过channelHandler对通信框架进行灵活扩展,适用于支持多种协议的南向接口。

协议模块

协议模块主要有OpenFlow、OVSDB、NETCONF、LISP、BGP、PCEP和SNMP等协议模块。其中OF最具代表性,OF是控制器与交换机之间的通信准则,管理网络设备会话连接以及协议交互,一方面监听底层设备的消息,另一方面将上层请求下发到底层设备,此外还支持链路发现服务。

为了用以太网交换机建SDN,提出一个南向接口插件。如图2所示,可通过这个插件中的SNMP和CLI把流配置安装到以太网交换机的转发表、ACL 和VLAN表中,此外需要拓展SAL的API去支持一些设置。

SNMP协议插件-图-2

OVSDB插件用于实现open VSwitch数据库管理协议,允许南向接口配置虚拟交换机。而LISP插件与LISP服务相互协作,为数据平台设备提供映射服务。BGP协议用于支持BGP链路状态分布,作为网络层拓扑信息来源。而PCEP协议用于支持路径计算单元协议,为底层网络实例化路径。

功能模块

基本网络服务功能:

拓扑管理、统计管理模块、交换机管理模块、转发管理模块、主机追踪模块、ARPHandler模块

拓展服务功能(基础版之后添加):

Affinity service、OpenStack service、LISP service、OVSDB Neutron、VTN Manager、oDMC

OpenDaylight有很多重要的技术需要了解,每种技术都需要花一段时间研究,例如OSGI框架的使用,OSGI服务的注册和调度,maven工程中bundle的编写方法,sal,YANG,config等,

packet分发流程

为加深对ODL架构理解,以ARP packet为例来分析packet分发流程。如图-3 所示,OSGI 框架动态管理Bundle,绑定一起的Bundle可以相互通信,如SAL将packet 分发到实现IListenDataPacket接口的ArpHandler,同时ArpHandler调用SAL实现的IDataPacketService。

图-3

如图-4所示,交换机(openflow)通过OpenFlowJava、OpenFlowPlugin、protocal_plugin与SAL进行信息,SAL将Packet-In分发到上层应用。

图-4

如图-5所示,1.OpenFlowPlugin调用IPluginOutDataPacketService将ARP请求分发到SAL

2.SAL调用IListenDataPacket将ARP请求上层应用

3.上层应用调用IDataPacketService将ARP应答分发到SAL

4.SAL调用IPluginInDataPacketService将ARP应答分发到OpenFlowPlugin

图-5

控制器集群

ODL提供集群功能保证服务的高可用,集群中的多个实例对外表现出一个实例,NorthBound可以请求集群中任意一个实例。

集群的作用:

? Scaling: If you have multiple controllers running, you can potentially do more work with or store more data on those controllers if they are clustered. You can also break up your data into smaller chunks (known as shards) and either distribute that data across the cluster or perform certain operations on certain members of the cluster.

? High Availability: If you have multiple controllers running and one of them crashes, you would still have the other instances working and available.

? Data Persistence: You will not lose any data gathered by your controller after a manual restart or a crash.

集群使用的核心技术:

Infinispan(High Avaliable,Key/Value NoSQL datastore)提供高可用缓存服务

Raft算法保证多副本数据的一致性

Akka处理并发的请求

集群中数据如下图所示,

图-6

图-7

图-8

参考文档:

http://www.sdnlab.com/15390.html

https://wiki.opendaylight.org/images/8/88/ODL-Clustering-ONS-2016-ckd.pdf

https://nexus.opendaylight.org/content/sites/site/org.opendaylight.docs/master/userguide/manuals/userguide/bk-user-guide/content/_clustering_overview.html

集成OpenStack

ODL通过北向接口Neutron Bound与Neutron Server通信,ODL利用OpenFlow和OVSDB 管理OpenStack计算节点的OpenVSwitch(组织table内的flow entry),提供L2、L3、LoadBalanceService、FirewallService。

注:Kilo -> 开始支持L3           Liberty 依然不支持LoadBalance 等其它服务

组织逻辑 图-9

ODL与OpenStack集成 图-10

图-11

图-12

参考文档:

http://www.flaviof.com/blog/work/how-to-odl-with-openstack-part1.html

https://wiki.opendaylight.org/images/5/55/Integrating-opendaylight-with-openstack-published.pdf

应用案例

企业认识到云计算技术是提高自己的竞争力的核心技术,混合云和公有云提高业务灵活性并降低总成本的潜力,但对传统网络的需求依旧非常显著。通信服务提供商(CSP)利用云技术来增强其庞大的网络基础设施的可管理性和成本效益,同时提高服务灵活性。SDN体系结构的核心是SDN控制器,其主要优点为:开放API便于实现多样化的应用;支持各大厂商的不同设备;通过可编程网络提供了智能的控制和管理系统。

随着网络设备线性速率成倍增长,网络越来越低效,网络优化需求越来越急迫。由于带宽和网络延迟优先级很高,运营商和他们的用户都在寻求方法优化网络开销、网络弹性和其他跨异构网络技术和设备的QoS指标。网络优化对于昂贵的网络带宽,例如WAN(对于企业和云提供商)、海缆网络和传输网(对于运营商),是最重要的。没有运营商可以奢侈到推翻一切从头再来,网络资源优化方案利用创新方案从现有的基础设施上实施。

网络资源优化方案应该提供:

  • 具有优化一系列参数的能力(带宽,延迟,开销和可用性等)
  • 具有执行一系列优化算法的能力
  • 健壮的拓扑和网络状态,包括多层次拓扑(对于运营商网络而言)
  • 支持多种技术和应用
  • 策略加强
  • 具有操作多厂商设备的能力,包括不支持SDN(non-SDN-enabled)的硬件

选择OpenDaylight

通过统一维护网络拓扑和配置连同告警和性能状态,OpenDaylight为网络资源优化(NRO)提供了一套丰富的基础网络服务和扩展网络服务。利用OpenDaylight的逻辑集中网络状态、数据分析和异构基础设施的流量工程策略的NRO算法,提高网络设备的利用率。运营商正在实现基于OpenDaylight融合分组光网络的多层控制,来优化带宽使用、保护带宽和动态服务环境的服务布局。

OpenDaylight提供的一个开放式SDN平台:

  • 模型驱动服务抽象层(MD-SAL)利用业界标准的YANG模型将网络应用映射到底层设备支持的格式。
  • 模块化、插件南向接口方法(例如,控制器到设备)广泛支持标准的网络管理接口(例如BGP,PCEP),OpenFlow以及专用的接口和设备。
  • 基于Intent的北向(例如,网络应用到控制器)接口将SDN能力暴露给不同的网络应用同时将底层基础设备的细节抽象化。
  • 提供的服务,包括路径计算、资源管理、针对虚拟域和物理域的数据分析。
  • 多种内置的策略规范。
  • 业界广泛认可,包括最大的控制器社区。

通过允许运营商组合网络应用和设备,OpenDaylight提供了一个强有力的支持自动化和操作智能化的服务交付平台,也支持运营商根据自身情况进行SDN迁移。

示例

腾讯基于OpenDaylight的控制器,用以优化带宽使用从而解决其在大量的数据中心间传输服务的问题。

中国移动NovoNet,NovoNet描绘了2020年基于SDN和NFV的企业网络的愿景,其中一个重要用例就是围绕“自配置、自管理、智能流量规划和实时感知”实现的流量优化。

图-13

多层次传输控制器解决方案   SDN在电信行业一个重要的用例就是Transport-SDN,专注于解决城域网和长距离连接的光分组设施的控制问题。很多主流的原始设备制造商已经基于OpenDaylight开发出了Transport SDN控制器,用来控制多层次设备。爱立信的Transport SDN产品提供了一个网络资源和拓扑端到端、优化的资源位置以及跨IP层和光层的网络引擎的抽象视图。

图-14

时间: 2024-12-13 22:26:45

OpenDaylight架构分析的相关文章

秒杀系统架构分析与实战

0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有: 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,

秒杀系统架构分析与实战(参考、转载)

目录[-] 0 系列目录 1 秒杀业务分析 2 秒杀技术挑战 3 秒杀架构原则 4 秒杀架构设计 4.1 前端层设计 4.2 站点层设计 4.3 服务层设计 4.4 数据库设计 4.4.1 基本概念 4.4.2 设计思路 5 大并发带来的挑战 5.1 请求接口的合理设计 5.2 高并发的挑战:一定要“快” 5.3 重启与过载保护 6 作弊的手段:进攻与防守 6.1 同一个账号,一次性发出多个请求 6.2 多个账号,一次性发送多个请求 6.3 多个账号,不同IP发送不同请求 7 高并发下的数据安全

分布式MySQL数据库TDSQL架构分析

摘要:腾讯计费平台部为了解决基于内存的NoSQL解决方式HOLD平台在应对多种业务接入时的不足.结合团队在MySQL领域多年应用和优化经验,终于在MySQL存储引擎基础上,打造一套分布式SQL系统TDSQL.本文是对该系统架构分析. 腾讯计费平台部托管着公司90%以上的虚拟账户.如QB.Q点.包月服务.游戏的二级账户等,为了保证能顺畅支撑公司各大业务的实时在线交易.而且在各种灾难场景下数据是一致而且可用的,对系统的可用性.一致性切换要求很高,因此计费团队历来都很重视高一致性存储系统的建设. 到眼

Android基础入门教程——1.1 背景相关与系统架构分析

Android基础入门教程--1.1 背景相关与系统架构分析 1.Android背景与当前的状况 Android系统是由Andy Rubin创建的,后来被Google收购了:最早的版本是:Android 1.1版本 而现在最新的版本是今年5.28,Google I/O大会上推出的Android M,有趣的是Android系统的命名都是以点心来命名的,下述表是15个Android版本名称,对应API号以及发布时间! 系统版本名称 API版本号 发布时间 Android 1.5:Cupcake:纸杯

虚拟化技术研究及架构分析

什么是虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率. 几种虚拟化软件介绍 RedHat KVM 虚拟化方式:完全虚拟化 架构:寄居架构(linux内核);祼金属架构RHEV-H 特点:祼金属架构RHEV-H或在关键的硬盘和网卡上支持半虚拟化VirtIO,达到最佳

【转载】Instagram架构分析笔记

原文地址:http://chengxu.org/p/401.html Instagram 架构分析笔记 全部 技术博客 Instagram团队上个月才迎来第 7 名员工,是的,7个人的团队.作为 iPhone 上最火爆的图片类工具,instagram 用户数量已经超过 1400 万,图片数量超过 1.5 亿张.不得不说,这真他妈是个业界奇迹. 几天前,只有三个人的 Instagram 工程师团队发布了一篇文章:What Powers Instagram: Hundreds of Instance

【转载】秒杀系统架构分析与实战

本文转载自:http://my.oschina.net/xianggao/blog/524943 0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是100

Redis 2.8 架构分析

1  Redis架构分析 1.1   为什么要用nosqlàredis? 1)存储方式的区别: nosql:使用K-V的方式存储数据 例如:mset   id 0001  name  zhangsan age   18 关系型数据库:使用多表结构关联的方式存储数据 例如: Id Name Age 0001 Zhangsan 18 - - - 2)读写方式的区别: nosql:可以把不同类型的数据通过k-v的方式进行快速的读写操作,无关系性.数据结构简单. 关系型数据库:在不同类型的数据下需要进行

tomcat架构分析-索引

tomcat架构分析 (概览) tomcat架构分析 (容器类) tomcat架构分析 (valve机制) tomcat架构分析 (valve源码导读) tomcat架构分析 (Session管理) tomcat架构分析 (JNDI配置) tomcat架构分析 (JNDI体系绑定) tomcat架构分析 (connector BIO 实现) tomcat架构分析 (connector NIO 实现)