Lithium中关键特性更新

1. Lithium特性更新概述

Lithium相对于Helium更新特性共27项,其中原有特性提升或增强13项,新增特性14项,如下表所示

特性类型 相对于Helium 数量 说明
协议类 新增 6 ALTO/Opflex/SNMP Plugin/LACP/Source-Group Tag Exchange Protocol/CAPWAP
协议类 更新 2 Openflow Plugin/BGP/LS PCEP
服务类 新增 1 Persistence Store Service
服务类 更新 4 Lisp Flow Mapping Service/Neutron & OVSDB Services/VPN Service/AAA
组件平台框架类 新增 5 Device Identification and Drive Management/Network Intent Composition/Reservation/Topology Processing Framework/Time Series Data Repository
组件平台框架类 更新 3 Controller/DLUX/VTN
接口策略类 新增 2 IoTDM/Unified Secure Channel
接口策略类 更新 4 Group Based Policy/SNMP4SDN/Secure Network Bootstrapping Interface/SFC

2. Lithium更新特性分析

Controller

更新:

  • MD-SAL集群额外提升,API拓展

交付:

  • BUG-2351 Performance improvements for MD-SAL
    通过API与MD-SAL实现变化提升性能
  • BUG-2348 Improve operations & monitoring
    简化MD-SAL的监控并提升可除错性
  • BUG-2262 Clustering: NormalizedNode serialization improvements
    提升NormalizedNode序列化性能并降低内存使用
Bug Relationship Description Deliverable
2622 parent Utilize NormalizedNode streaming classes in Clustering code
2664 Use Normalized Node streaming code when persisting snapshots and replicating snapshots[1] https://git.opendaylight.org/gerrit/#/c/14620/
2265 Migrate messages that contain NormalizedNode into java serializable so that they can use the NormalizedNodeStreamWriter[2] https://git.opendaylight.org/gerrit/#/c/12448/ https://git.opendaylight.org/gerrit/#/c/14476/ https://git.opendaylight.org/gerrit/#/c/14510/
2266 Add more unit tests for the NormalizedNodeStreamWriter https://git.opendaylight.org/gerrit/#/c/13038 - stable/helium https://git.opendaylight.org/gerrit/#/c/13275 - master
2267 Optimize the stream writer to reuse the builder https://git.opendaylight.org/gerrit/#/c/12406/
2268 Convert Raft messages that will carry NormalizedNode into java serializables https://git.opendaylight.org/gerrit/#/c/14483/


[1] 以下情景使用NormalizedNode stream writer:

  1. 快照持久化
  • 从存储中读出数据的事务不应序列化NormalizedNode
  • CaptureSnapshotReply应实现Serializable来传递NormalizedNode至RaftActor
  • 捕获的快照将不存储在内存中
  1. 快照安装
  • 将消息按java序列化转化并通过akka写入流
  • 安装快照时创建快照

[2] 迁移以下消息

  • WriteData
  • MergeData
  • ReadDataReply
  • DataChanged

当转换上述消息时应确保WriteData/MergeData中的实例标识按stream wirter紧凑格式

AAA

更新:

  • 增加数据持久化,Federation,SSO,额外拓展和提升

ALTO

新增:

  • 实现应用层数据优化(ALTO)协议,向应用提供网络信息
  • 为ODL实现ALTO的北向API

ODL提供的拓扑服务主要关注网络,对于应用而言暴露过多的网络细节,ALTO提供简化网络视角指导应用使用网络资源,详见RFC7285
大部分项目参与者为国内人员,包括清华、同济以及华为

BGP/LS PCEP

更新:

  • 增加BGP Flowspec,graceful restart,段路由,PCEP安全传输
  • 涉及如下RFC:5886,4486,5492,6286,5004,5575,7311,4724

CAPWAP

新增:

  • 实现ODL管理WTP网络设备

此项特性针对WLAN

Device Identification and Drive Management

新增:

  • 应对特定设备功能的需求,所谓特定设备功能是指设备执行某一特性时的性能及限制,例如,配置VLAN和调整流表是设备的特性,不同设备对于上述特性采用不同的实现方式
  • DIDM支持以下功能:
  • Discovery - 检测设备是否位于控制器管理域,并建立连接。对于不支持OpenFlow的设备,可以通过手动注入设备信息方式发现,如GUI或REST API
  • Identification – 判断设备类型
  • Driver Registration – 注册设备
  • Synchronization – 收集设备信息、配置和链路信息
  • Define Data Models for Common “Features” – 数据模型定义为执行通用特性,如VLAN配置
  • Define RPCs for Common “Features” – 为上述特性定义RPC,Drivers实现特定设备的特性及RPC
  • DIDM使用SNMP南向插件并依赖AAA

DLUX

更新:

  • 支持Topology Framework、Topology Extension Points、Enhanced visualization capabilities

Group Based Policy

更新:

  • 增加对OpenStack Neutron的支持,支持Service Function Chaining,OfOverlay对NAT的支持,table offsets

IoTDM

新增:

  • 以数据为中心的中间件作为兼容oneM2M的IoTDM,并授权应用获取IoT数据

此项特性针对物联网

LACP

新增:

  • 以MD-SAL服务方式实现链路聚合控制协议(LACP),用于自动发现和聚合控制器与交换机之间的多条链路

Lisp Flow Mapping Service

更新:

  • 改进ELP处理,北向API转为MD-SAL,Service Function Chaining的持续集成,Neutron提升

Network Intent Composition

新增:

  • 基于网络行为和策略的“意图”管理和指导网络服务及资源
  • 使用新的北向接口,提供通用抽象的策略语义,而不是类似OpenFlow的流规则
  • 面向SDN应用,如OpenStack Neutron,Service Function Chaining,Group Based Policy
  • 可以使用控制协议有Openflow,OVSDB,I2RS,Netconf,SNMP

Neutron & OVSDB Services

更新:

  • API转为MD-SAL,增加功能校验支持LBaaS,增加Distributed Virtual Router、SNAT、External Gateway及Floating IP支持

OpenFlow Plugin

更新:

  • Lithium版本的OF Plugin进行了重新架构,支持基于MD-SAL的OF1.0、OF1.3,增加对TTP的支持
  • 修复Helium存在问题:统计搜集性能提升
  • Helium版本中统计采用同一时刻向所有节点发送统计请求,引发统计响应风暴,导致CPU冲高及对MD-SAL存储的压力
  • 按照连接数及各自表(Flow tables、Group、Meter)中的条目数进行动态间隔统计轮询
  • 每个节点在统计间隔中进行统计轮询
  • 只在前一次统计完成后才启动下一次统计
  • 不同统计类型使用不同的统计周期,保持低优先级统计的初始周期间隔,并根据响应数量进行调整
  • 新增特性:
    • 处理协议保留端口
    • 拓扑能够在初始阶段频繁变化,到达稳态后平滑变动,Helium版本拓扑发送过多的LLDP,可考虑稳态时使用节点通告来发现拓扑变化
    • 线程模型及报文处理优先级
    • 端口配置
    • 队列配置
    • 角色请求
    • OpenDaylight GUI感知OF1.3,例如:能够配置1.3风格的流表、meter、组表
    • 多控制器和仲裁

Opflex

新增:

  • Opflex策略代理协调OVS工作,执行基于组的策略模型

Persistence Store Service

新增:

  • 提供应用持久化服务,针对非模型数据,例如AAA、AADS、TSDR等,此框架统一持久化任务,以便应用可遵循系统化的方法实现持久化
  • 提供可拓展、可重用的软件平台,包括以下内容:
  • API
  • 抽象实现允许插入多种对象存储引擎,例如JPA、Cassandra、Mongo、HBase等,目前已支持JPA实现
  • 一系列集成测试工具
  • SDN应用以下列方法与持久化数据进行交互,包含:
  • 数据定义:定义新数据结构,删除数据结构,修改数据结构
  • 数据维护:插入、更新、删除数据
  • 数据检索:查询数据
  • 架构如下,图中RDBMS和NoSQL仅为强调多种不同的数据库(SQL vs NoSQL),以及在该框架下可以运行多个数据库实例

  • 软件架构如下图所示

Reservation

新增:

  • 提供动态低级别的资源预留,用户可以将网络作为一个服务、连接或资源池(端口,带宽),其初衷是提供端到端的多层配置

Secure Network Bootstrapping Interface

更新:

  • 为转发元素增加Linux副抽象,并提升特性抽象和引导基础架构

SFC

更新:

  • 增加Yang模型来表示SFC;接收来自REST和RPC的需求表达式;构建SFC的界面;LISP支持;负载均衡功能分组;NSH、MPLS及VLAN的OF渲染器;南向REST接口;SFC-OVS通过OVSDB对SFF桥、隧道、端口增删改查; 报文分发器;与ODL_GBP集成

SNMP4SDN

更新:

  • 增加关于ACL的流配置,通过REST API激活流配置及多厂商支持

SNMP Plugin

新增:

  • 针对应用及控制通过SNMP与交换设备进行交互的需求,通过SNMP南向插件,应用变为SNMP管理与设备进行交互,该项目期望实现通用的SNMP实现

Source-Group Tag Exchange Protocol

新增:

  • SXP用于传递IP与源组标签绑定信息,源组使用唯一的SGT值标识。防火墙可使用SGT创建独立于拓扑的ACL(源和目的的IP/SGT信息都可被发送至防火墙)。当新的终端接入网络,SXP能够自动地更新防火墙中终端信息。在ODL中,通常使用GBP操作组策略。SXP中的源组与ODL GBP作用相同,因此GBP也可使用SXP SGT

Topology Processing Framework

新增:

  • 提供一个框架用于简化拓扑数据的聚合和查询,以便于提供一个统一的拓扑视图,包括多协议、底层及叠加资源

Time Series Data Repository

新增:

  • 用于搜集、存储、查询和维护ODL控制器时间序列数据,利用TSDR提供的功能,网络管理员可以利用这些数据驱动应用进行安全风险探测,性能分析,操作配置优化,流量工程,以及自动化智能网络分析

VPN Service

更新:

  • L3 VPN服务API,与开源路有套件集成,如Quagga、RYU,OpenStack Neutron集成

VTN

更新:

  • 迁移至MD-SAL,显著提升VTN中的策略管理,支持微软SVCMM

Unified Secure Channel

新增:

  • USC框架提供中央服务器来协调终端之间的加密通信。USC提供了一个客户端代理,通知控制器对其加密功能,可以指示选择基于业务策略需要加密的流,潜在场景是为控制器之间通信加密

3. Lithium更新特性总结

Lithium相对Helium的更新主要体现在以下几个方面:

  • 多协议支持
  • 部分Helium中的协议得到增强和提升,如BGPCEP、Openflow Plugin,修订了Helium版本中存在的问题;
  • 网络应用相关协议增加,如ALTO、LACP、Source-Group Tag Exchange Protocol、Opflex,将为将来更多的网络应用提供较完备的基础服务;
  • 更多南向协议支持,如SNMP、OVSDB;
  • 开始关注其他网络领域,如CAPWAP与IoTDM,分别针对WLAN与物联网;

  • 易用性得到提升
  • Lithium相对Helium提供更多的功能,帮助网络管理人员分析、整合网络资源,例如,Topology Processing Framework提供统一拓扑试图,Time Series Data Repository提供性能分析数据源;Network Intent Composition提供面向网络行为的网络资源指导
  • 作为平台提供更多基础服务,提升开发人员开发效率,例如,Persistence Store Service提供非模型数据的存储,更加提供了对存储行为的抽象,方便开发者在ODL中集成不同类型的数据库;DIDM提供针对特定设备不同限制与性能的抽象与管理

  • 性能提升是Lithium的主题
  • 在Lithium已经交付的特性中,不少是对Helium的性能提升项目,例如,Controller中提交的相关特性主要针对提升MD-SAL存储性能及;Openflow Plugin中提交的相关特性也解决了原有Helium中统计性能问题

  • 后续需要重点关注
  • Controller,针对MD-SAL的提升对集群,及对原有Helium版本的功能影响
  • Device Identification and Drive Management,提供多厂商设备集成的管理
  • OpenFlow Plugin,新增特性对集群和主备切换的影响
  • Persistence Store Service,对非模型数据存储具有指导意义,后续持久化存储的方向
  • Topology Processing Framework,对现有Topology功能的影响及对此特性的可能的使用方法
  • Time Series Data Repository,作为性能分析工具的可行性,并对网络管理方法提出新的角度

Lithium中关键特性更新的更多相关文章

  1. InnoDB关键特性学习笔记

    插入缓存 Insert Buffer Insert Buffer是InnoDB存储引擎关键特性中最令人激动与兴奋的一个功能.不过这个名字可能会让人认为插入缓冲是缓冲池中的一个组成部分.其实不然,Inn ...

  2. SQL Server2014 SP2关键特性

    SQL Server2014 SP2关键特性 转载自:https://blogs.msdn.microsoft.com/sqlreleaseservices/sql-2014-service-pack ...

  3. InnoDB的关键特性-插入缓存,两次写,自适应hash索引

    InnoDB存储引擎的关键特性包括插入缓冲.两次写(double write).自适应哈希索引(adaptive hash index).这些特性为InnoDB存储引擎带来了更好的性能和更高的可靠性. ...

  4. Mycat 关键特性

    关键特性 支持SQL92标准 支持MySQL.Oracle.DB2.SQL Server.PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理. ...

  5. SQL Server 2016 CTP2.3 的关键特性

    SQL Server 2016 CTP2.3 的关键特性 数据库方面的增强 Row Level Security已经支持In-memory OLTP 表.用户现在可以对内存优化表实施row-level ...

  6. JAVA语言对比C++语言的几个优点和自身的关键特性

    之所以写这篇博客不是为了比较JAVA语言和C++语言到底孰优孰劣,而是从语言本身出发进行对比总结程序编码设计上的差别.因水平有限,某些内容可能太过片面,欢迎指正和讨论. JAVA语言在设计上很好地借鉴 ...

  7. Performance Tuning guide 翻译 || Performance Tuning Guide 11G中新增特性

    CSDN 对格式支持比較弱.能够到http://user.qzone.qq.com/88285879/blog/1399382878 看一致的内容. Performance Tuning Guide  ...

  8. innodb关键特性之double write

    # 脏页刷盘的风险 两次写的原理机制 1.解决问题 2.使用场景 3.doublewrite的工作流程 4.崩溃恢复 # doublewrite的副作用 1.监控doublewrite负载 2.关闭d ...

  9. xmake v2.1.5版本正式发布,大量新特性更新

    此版本带来了大量新特性更新,具体详见:xmake v2.1.5版本新特性介绍. 更多使用说明,请阅读:文档手册. 项目源码:Github, Gitee. 新特性 #83: 添加 add_csnippe ...

随机推荐

  1. 3.3 无连接运输:UDP

    3.3 无连接运输:UDP 简介: UDP提供不可靠的服务,它只做了运输层能做的最少工作,除了分解/复用以及少量的差错检测之外,几乎对IP没增加什么东西. 为什么应用开发人员宁愿再UDP之上构建应用, ...

  2. 【hdu6093】Rikka with Number

    多校第五場的題. 首先是一個好數只在某個進制下,不會是在兩個進制下都爲好數. 另外每個進制好數的個數爲d!-(d-1)!,因爲要保證第一位不爲0. 然後就是在臨界進制下有多少個好數的問題,可以變成兩個 ...

  3. 【BZOJ3166】ALO(主席树)

    [BZOJ3166]ALO(主席树) 题面 权限题qwq 资磁洛谷 题解 用一个\(set\)求出左右侧比这个数大的第\(2\)个数, 然后用可持久化\(Trie\)算一下就好啦 #include&l ...

  4. 【CF700E】Cool Slogans(后缀自动机)

    [CF700E]Cool Slogans(后缀自动机) 题面 洛谷 CodeForces 题解 构建后缀自动机,求出后缀树 现在有个比较明显的\(dp\) 设\(f[i]\)表示从上而下到达当前点能够 ...

  5. Alpha 冲刺 —— 十分之一

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作,对多个目标检测及文字识别模型进行评估.实验,选取较 ...

  6. BZOJ1264 [AHOI2006]基因匹配Match 【LCS转LIS】

    题目链接 BZOJ1264 题解 平凡的\(LCS\)是\(O(n^2)\)的 显然我们要根据题目的性质用一些不平凡的\(LCS\)求法 这就很巧妙了,, 我们考虑\(A\)序列的每个位置可能匹配\( ...

  7. 转载乙醇大师的appium简明教程

    appium简明教程(11)——使用resource id定位(仅支持安卓4.3以上系统) 乙醇 2014-06-28 21:01 阅读:16406 评论:21 appium简明教程(10)——控件定 ...

  8. 温习classList api

    有道题是一个removeClass的功能,代码里是正则分隔了传入的name,根据name的个数,循环移除掉,让寻找bug..看了了这几行代码,首先想到的是我会如何去优化. 如果看代码一两分钟就能找到公 ...

  9. Codeforces 601D. Acyclic Organic Compounds(四个愿望一次满足)

    trie合并的裸题...因为最多只有n个点,所以最多合并n次,复杂度$O(N*26)$. #include<iostream> #include<cstring> #inclu ...

  10. [学习笔记]Min-25筛

    %%yyb %%zsy 一. 基本操作:筛1~N中的素数个数.n=1e9 设F(M,j)表示,2~M的所有数中,满足以下条件之一的数的个数:①x是质数②x最小质因子大于(注意是大于没有等号)$P_j$ ...