ONOS高可用性和可扩展性实现初探

2023-05-16

为什么80%的码农都做不了架构师?>>>   hot3.png

 ONOS的发布直面OpenDaylight 进行挑战,直接将 SDN领域两大阵营(运营商和设备商)的竞争瞬间升级,之所以 ONOS能做到这一点,首先,ONOS的定位就是要为运营商提供敏捷和灵活的大规模部署能力,避开了设备商围绕着 OpenDaylight展开的品牌保卫战。另外, ONOS实现了高可用、可扩展的系统设计方案,基于此基础上对系统的层次结构以及网络实体进行高度抽象,这种优秀的设计和高度的抽象保障了系统的演进和能够被优化得更快更有效。这篇文章主要探寻 ONOSHA Scale-out的设计上的一些蛛丝马迹。

11105259_H5Zl.jpg

首先回忆一下SDN定义的三个特性:控制平面和数据平面的分离、逻辑上集中控制、开放的编程接口,然后再看ONOS的系统架构,可以看出ONOS的架构与这三个特性清晰的对应。如图1所示,在南向接口层,采用协议插件以实现控制平面与数据平面的分离;在北向接口层,提供一套应用编程接口以实现网络的可编程性的应用接口;在东西向的扩展上,通过分布式集群的方式以实现逻辑上集中控制。

11105300_ZTwm.png

图1 ONOS的分布式架构

当网络系统一旦涉及分布式,其复杂性就会急剧上升。一方面,在分布式情况下,系统中数据又呈现不同的状态和特性,比如对数据的一致性、实时性的需求不同,在性能和可用性方面做更多的工作;另一方面,需要考虑系统容错(单点故障)、灾难恢复和系统扩展(节点的增加/删除),因为系统中任何一个节点的状态变化,需要所有其他节点做相应的调整。

我们在SDN系统中讨论的一致性主要分为两种类型。一种是强一致性,其要求当一个实例更新网络状态时任何实例随后的读操作都返回最近更新的数值;另一种是最终一致性,当系统保证如果没有新的状态更新时,最终所有的实例都能获得最后的更新保持最终状态一致,中间允许读取操作延后一段时间。两者比较而言,最终一致性是一种特殊的弱一致,而强一致性将导致分布式数据管理的复杂性和延时。

在ONOS 系统中,如 表1所示, Distributed Core模块负责状态管理,进行拓扑、意图、链路资源等存储管理,这些数据属性可根据 ACID和 BASE(Basically Available, Soft-state, Eventual consistency)的性质进行划分。根据这些数据的特性,可以参用不同的协议来满足不同的需求。

104526_FusT_2249260.jpg

 强一致性要求数据在某个节点更新后,在这之后其它副本节点上获得该数据最新的更新,这种可以通过分布式事务协议 (Paxos)来实现,例如分布式锁。在对Switch-Controller映射关系进行更新时,必须是强一致性的,示意图如图2所示;弱一致性保证数据在一定时间窗口之后可以读到更新的数据,存在“不一致窗口”。最终一致性是弱一致性的一种特例,保证客户端能够读取到某操作对系统特定数据的更新,“不一致性窗口”的大小依赖于系统负载、副本数。最终一致性模型又包括Causal Consistency( 因果一致性 )、 Session Consistency(会话一致性 )等模型的划分,像如图3所示的网络状态最终一致性就是一个典型场景,在初期的ONOS版本中主要可以通过 Gossip协议实现,使用了基于 anti-entropy实现。

11105300_wU4D.png

                                                           图2 交换机与控制器映射的强一致性

11105301_rI7S.png

图3 网络状态的最终一致性

ONOS在系统的可用性和可扩展性方面做了大量工作。我们知道,单一节点的处理能力有限,例如计算资源和数据流量等方面会成为瓶颈,而且会形成网络的单点故障。为了提高系统的可用性,避免在系统某一个节点发生故障,导致系统无法正常运行,这时就需要更多的副本(Replica)节点。当系统中存在多个副本时,系统需要保证副本数据的一致性。ONOS根据其数据的不同性质,采取不同的同步和复制策略:全复制(Fully Replicated)、主从复制(Master-Slave Replicated)和分片(Partitioned/Distributed)。如图4所示,Network Toplogy是实时性要求不高的数据,利用gossip协议,采用乐观复制的方式在各个节点进行同步。

11105301_VjiD.png

图4 Distributed Core中复制策略

实际上ONOS从prototype 1 到 prototype 2在分布式管理上有了很大变化,比如用Hazelcast取代zookeeper的一些职责,而在onos 1.1.0版本中,使用Raft替代Hazelcast。因此这篇文章只是初步的了解ONOS系统在分布式构建下的一些数据特性,以及如何保证数据一致性所采用的算法、协议。这里我们不禁会提出另外一个问题:为什么不用Zookeeper,而选择了Hazelcast?最后又选择了Raft?

想要和本文作者进行问题交流可以加入交流群:194240432


转载于:https://my.oschina.net/sdnlab/blog/385157

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ONOS高可用性和可扩展性实现初探 的相关文章

  • Ubuntu 16.04 安装onos 2.2.0

    之前使用了别人分享的安装好的p4虚拟机 xff0c 应该是这个人的 xff0c 不过我记得的是用的谷永普的 xff0c 当时还是从微云上下载的 xff0c 但是找不到了 不过无所谓 xff0c 本文不讲p4的安装 xff0c 有需要的 xf
  • 【SDN控制器分析之一】ONOS架构概述

    ONOS 设计目标 ONOS是一个采用OSGI技术来管理子项目的SDN控制器开源项目 xff0c 在最初设计时有这么几个目标是明确的 xff1a 代码模块化 xff1a 支持把新的功能作为新的独立单元引入特性可配置 xff1a 无论是在启动
  • onos实现driver的自动加载

    AbstractDriverLoader 已知driverAdminServer 根据path读取配置文件的内容 1 进入到XMLDriverLoader里 xff0c 根据XML 创建Provider gt XMLDriverLoader
  • ONOS之开放分布式SDN操作系统

    为什么80 的码农都做不了架构师 xff1f gt gt gt 关于构建ONOS xff08 开放式网络操作系统 xff09 的项目专题 xff0c 是通过性能激发创建的实验性分布式 SDN 控制平台 xff0c 满足大型运营商网络的可扩展
  • ONOS高可用性和可扩展性实现初探

    为什么80 的码农都做不了架构师 xff1f gt gt gt ONOS 的发布直面OpenDaylight 进行挑战 xff0c 直接将 SDN 领域两大阵营 xff08 运营商和设备商 xff09 的竞争瞬间升级 xff0c 之所以 O
  • ONOS预热篇之ONOS简介

    为什么80 的码农都做不了架构师 xff1f gt gt gt ONOS问世后引起广泛关注 xff0c 关于 ONOS 与 ODL 的纷争不绝于耳 xff0c 最近小编拜读了一下 ONOS 白皮书 xff0c 并做了一点粗浅总结 xff0c
  • ONOS意图框架

    1 意图基本概念 Intent是用于描述应用需求的不可变模型对象 xff0c ONOS核心根据其改变网络行为 在最低级别上 xff0c 可以用以下方式描述意图 即意图的组成 xff1a 1 Network Resource xff1a 一组
  • ONOS架构中的YANG、P4 Runtime

    本文总结自毛健炜的 ONOS架构中的YANG P4 Runtime 的演讲 ONOS xff0c 全称是开放网络操作系统 xff0c 通常以控制器的身份为人所知 它是由ON LAB组织发起的一个开源项目 xff0c 在与ONF组织合并之后
  • ONOS-ifwd-app源码分析总结

    ONOS ifwd源码分析 xff0c 参考资料 xff1a https www sdnlab com 10297 html 在之前的文章中 xff0c 介绍了ONOS sample apps的获取 xff0c 但是将其生成的oar文件导入
  • ONOS简介

    一 与ODL区别 ONOS与OpenDayLight 两个控制器之间的较量 ODL 立场 xff1a 设备厂商 xff1a Cisco Citrix Systems Red Hat Brocade Ericsson ClearPath HP
  • 集群源码安装ONOS

    集群源码安装ONOS 1 每一台待安装onos的配置 bin bash sudo mv apache karaf 3 0 3 tar gz opt sudo mv apache maven 3 3 1 bin tar gz opt cd o
  • ONOS源码笔记--机制

    app注册 private ApplicationId appId appId 61 coreService registerApplication 34 org onosproject fwd 34 注册应用 xff0c 一般在activ
  • 使用ONOS的REST API来下发流表

    1 启动ONOS后 xff0c 浏览器进入doc http 10 109 247 211 8181 onos v1 docs 2 找到Flow xff0c 并打开POST 3 可以直接在这个上面编辑flow stream里面模拟GET获得的
  • 从零开始安装ubuntu18+P4+ONOS

    1 安装VMware Tools xff08 前面VM虚拟机安装Ubuntu的教程太多 xff0c 就不写了 xff09 先从虚拟机下载好 xff0c 然后将压缩包里的文件夹移动出来 xff08 可以用解压或者直接点开压缩包 xff0c 移
  • ONOS 控制器安装和app新建和编译

    1 1 ONOS 控制器编译与安装 ONOS 1 8 版本起强制使用 BUCK 构建工具 xff0c 不再使用 maven xff0c 编译和打包方式与旧版本有所区别 步骤 xff1a 配置环境 gt 下代码 gt 编译 gt 运行 配置环
  • Mininet连接ONOS的一些问题

    Mininet连接ONOS的一些问题 一 启动ONOS二 简单小问题1 Mininet创建最简拓扑后连接不上远程控制器2 Mininet创建最简拓扑后主机之间ping不通3 不启动fwd应用自己通过REST API下发流表发现两台主机间pi
  • Ubuntu Server 14.04部署ONOS

    参考官网 xff1a https wiki onosproject org display ONOS Installing 43 and 43 Running 43 ONOS 由于笔者习惯ssh xff0c ubuntu默认没有开启ssh
  • P4连接ONOS——导入ONOS虚拟机

    补充 xff1a 2020年5月11日 13点07分 近期有同学私信我安装过程中有这个报错 xff0c 如下图 根据报错信息 xff0c 似乎是下载这个包服务器501出错 xff0c 很可能是因为内网无法下载这个包 我忘记说了 xff0c
  • ONOS链路发现源码

    ONOS链路发现源码 send LLDP by ynogpu private void sendProbes Long portNumber String portDesc if context packetService 61 61 nu
  • java.lang.NoSuchFieldError:DEF_CONTENT_CHARSET

    我正在尝试运行 java 程序 但收到以下运行时错误 错误如下所示 Exception in thread main java lang NoSuchFieldError DEF CONTENT CHARSET at org apache

随机推荐

  • 卷积神经网络不能处理“图”结构数据?这篇文章告诉你答案

    本文要介绍的这一篇paper是ICML2016上一篇关于 CNN 在图 xff08 graph xff09 上的应用 ICML 是机器学习方面的顶级会议 xff0c 这篇文章 lt lt Learning CNNs for Graphs g
  • cs231n 作业2 心路历程

    Assignments 2 作业说明在这里 Fully connected Neural Network 今天写的时候思考了一下为什么课件里写的都是 W x 43 b Wx 43 b W x 43 b
  • 加域时提示指定的网络名不再可用

    加域时提示指定的网络名不再可用 发布于 2011 06 10 由 alefwoo 没有评论 发表评论 VMware虚机加入域时提示 xff1a 指定的网络名不再可用 能够正常解析出域名 xff0c 能够ping通 xff0c 提示指定的网络
  • ONOS之开放分布式SDN操作系统

    为什么80 的码农都做不了架构师 xff1f gt gt gt 关于构建ONOS xff08 开放式网络操作系统 xff09 的项目专题 xff0c 是通过性能激发创建的实验性分布式 SDN 控制平台 xff0c 满足大型运营商网络的可扩展
  • Linux网络唤醒软件,Linux网络唤醒

    在Linux下 xff0c 当机器处于睡眠或待机状态时 xff0c 想通过网络进行唤醒 WOL xff0c wake on lan 时 xff0c 可以通过如下相关命令来实现 xff1a 在A机 嵌入式设备 上 xff0c 让其睡眠 xff
  • Maven常用命令:

    Maven库 xff1a http repo2 maven org maven2 Maven依赖查询 xff1a http mvnrepository com 一 xff0c Maven常用命令 xff1a 1 创建Maven的普通Java
  • Lodash 源码大全

    这个文章的意义在于 想学习loadsh的所有源码 从github的顺序开始看 严格按照顺序的 xff0c 所以难免有集合函数数组这样的跳跃 loadsh很多运算我们也可以写出来 xff0c 但是严谨性可复用性却没有loadsh强 是分界线
  • 最优化-可行方向法

    Zoutendijk可行方向法 约束条件一般有两种 ax b 61 0 ax b lt 61 0 取可行初始点x1 x1满足所有的约束条件 取约束条件中所有 lt 61 0 的约束条件 xff0c 并判断他们是否为0 获得线性规划子问题 一
  • http 登录Digest认证相关知识

    Digest access authentication https en wikipedia org wiki Digest access authentication Digest access authentication is on
  • Centos7 VNC报vncserver@:1.service:control process exited,code-exited status=98

    在一台服务器上安装完centos7后 xff0c 准备安装vncserver xff0c 安装完systemctl start vncserver 64 1 service xff0c 始终报错 xff1a 关闭防火墙和SELinux后 x
  • CAS 5.2.x 单点登录 - 搭建服务端和客户端

    一 简介 单点登录 xff08 Single Sign On xff09 xff0c 简称为 SSO xff0c 是目前比较流行的企业业务整合的解决方案之一 SSO的定义是在多个应用系统中 xff0c 用户只需要登录一次就可以访问所有相互信
  • 如何计算无人机机架对应螺旋桨大小和尺寸!

    1 计算原理 决定螺旋桨的直径是相邻两个轴的直线距离 xff0c 就是图中AB线的距离 xff0c AB线的距离也刚好螺旋桨的最大直径 思考 xff1a 如何计算AB的距离 xff1f 在三角形中 xff0c 求AB的距离 xff0c 可以
  • 搬家,告辞

    https www cnblogs com cww97
  • 【网络基础】自动协商

    自动协商 协商的内容是什么 xff1f 协商的内容是速率和双工 通过什么来协商 xff1f 通过FLP 快速链路脉冲 xff09 来协商 FLP如何协商速率 xff1f 接口发送flp时 如果在规定时间内收到了响应 xff08 flp xf
  • 2.如何优化操作大数据量数据库(改善SQL语句)

    二 改善SQL语句 很多人不知道SQL语句在SQL SERVER中是如何执行的 xff0c 他们担心自己所写的SQL语句会被SQL SERVER误解 比如 xff1a select from table1 where name 61 39
  • LACP和PAgP的四种模式

    PAgP的四种模式 模式含义开启 xff08 on xff09 端口不进行协商 xff0c 直接形成以太网通道 xff1b 在这种模式下 xff0c 对端必须也是on模式 xff0c 以太网通道才能正常工作 关闭 xff08 off xff
  • BGP的同步

    实验原理 xff1a BGP 同步规则 xff1a BGP 路由器不应使用通过 IBGP 获悉的路由或将其通告给外部邻居 xff0c 除非该路由是本地的或通过 IGP 获悉的 如果启用了同步 xff0c 则路由器通过 IBGP 获悉路由后
  • 【软件工程导论-ZZU】02. 软件生命周期、开发过程与模型

    二 软件生命周期 开发过程与模型 1 软件生命周期 软件生命周期 xff1a 是软件的产生直到报废或停止使用的生命周期 实际从事软件开发工作时 xff0c 软件规模 类型 开发环境及技术方法等因素会影响到阶段划分 xff0c 及各阶段的执行
  • MySQL5.7安装与配置(YUM)

    安装环境 xff1a CentOS7 64位 xff0c MySQL5 7 1 配置YUM源 在MySQL官网中下载YUM源rpm安装包 xff1a http dev mysql com downloads repo yum span cl
  • ONOS高可用性和可扩展性实现初探

    为什么80 的码农都做不了架构师 xff1f gt gt gt ONOS 的发布直面OpenDaylight 进行挑战 xff0c 直接将 SDN 领域两大阵营 xff08 运营商和设备商 xff09 的竞争瞬间升级 xff0c 之所以 O