OpenvSwitch 的 Open Virtual Network(OVN)项目

2023-05-16

几天前(1 月 13 日),OpenvSwitch 团队正式宣布了 OVN(Open Virtual Network )项目,参考 Open Virtual Network Annoucement。

这个项目挺有意思,简单谈下我的看法。

众所周知,OpenvSwitch 已经是现在数据中心里软件交换机的事实标准。由于硬件交换设备的成本一直降不下来,而且用硬件交换设备去延伸管控服务器上的虚拟机的相关标准和协议仍不成熟,OpenvSwitch 在相当长的一段时间里,以其成本和灵活性的优势,占据很大一部分低端市场。

传统情况下,大家使用 OpenvSwitch 主要有两个目的,一个是支持 OpenFlow、OVSDB 这样的 SDN 管控协议;另外一个是作为数据中心中的接入层交换机。

而 OVN 项目的提出,其实是针对后一种应用场景,大大增强和简化了 OpenvSwitch 作为接入层交换机的使用。

OVN 要做的事情,看起来其实蛮简单,就是直接提供对虚拟网络(各种 overlay、安全组等)的支持。这件事很简单,但是将产生的影响实际上很大。

现在数据中心里,由于大二层的需求和硬件交换机的不给力,虚拟网络实际上已经成为了一种基础设施。谁不上虚拟网络,那他的数据中心规模一定大不了。正是看到了这点,OVN 希望将如何提供虚拟网络这件事情 take over 过来,让上层的用户直接使用它,而无需自己费心思去采用各种 overlay 技术往 OpenvSwitch 中塞各种规则。

在实现上也不难理解,底下还是 OpenvSwitch,上面多了一层 Hypervisor 层,如下图(基于官方的图修改)所示,新的组件主要包括一个 OVN DB 和 一个 OVN-Controller,以及它们之间的通讯协议。


 

虽然官方一直坚持 OVN-Controller 并非一个 SDN 的完整控制器,但是由于目前虚拟网络管理往往是在 SDN 控制器中做的,其实可以理解为把传统 SDN 控制器中这一层要做的事情给接管了过来。往后控制器实际上可以直接操作现成的虚拟网络了。

从架构设计上,理念跟 OpenvSwitch 类似,核心还是数据库,组件之间通过协议进行松耦合的调用。

如果说最初大家讨论 SDN 是希望将控制平面跟数据平面拿开,那么,在这里其实是希望将控制层的部分功能再往回放放。这个思想跟我们 12 年提出的设计很相似。

不从对错的角度,从实用的角度看,数据平面特点是“傻快”,控制平面是“灵慢”。这意味大量重复性的简单操作应该是跟数据平面靠的近一些,反过来发生频率低的,需要复杂处理的则应该争取放到控制平面去。OVN 无疑也是看到了在数据中心网络这个特殊场景中,各种虚拟网络所依靠的封装、映射等操作已经成为了常见的基本需求。这些基本需求都放到远端的控制器,已经有点“杀鸡用牛刀”的感觉了。

当然,思路是这个思路,具体怎么做,现在这个样子是否是最合理的,还得看实践的检验。但这确实是一个从底下往上走的很好的尝试。

转载请注明:http://blog.csdn.net/yeasy/article/details/42872621 

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

OpenvSwitch 的 Open Virtual Network(OVN)项目 的相关文章

  • virtual关键字在函数声明中的位置

    我是否放置有什么区别virtual函数声明中的关键字位于返回值类型之前还是之后 virtual void DoSomething 0 void virtual DoSomething 0 找到了void virtual语法 同时重构一些遗留
  • 虚函数 C#

    我明白什么是虚函数 但我不明白的是他们内部是如何工作的 class Animal virtual string Eat return Eat undefined class Human Animal override string Eat
  • 如何创建虚拟 Windows 驱动器

    我正在尝试创建一个 Windows 虚拟驱动器 如 c 来映射远程存储 主要目的是以用户清楚的方式做到这一点 因此 用户不会知道他正在从另一个站点写入 读取 我正在寻找可用的产品 我发现FUSE在Windows中不是一个选项 而WebDAV
  • 抽象类:成员函数“virtual...”的抽象返回类型无效

    在我的程序中 我有这样的类层次结构 include
  • 用于 Twain 开发的模拟或虚拟 Twain 源 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 为了开发基于 Web 的扫描解决方案 我很乐意在 Windows 或 Mac 上测试它 而无需实际将扫描仪连接到我的盒子上 那么是否有一个程序 工具可
  • C++ 参数协方差

    我想知道为什么 C 不支持参数的协方差 如下例所示 或者是否有办法实现它 class base public virtual base func base ptr return new base class derived public b
  • 为什么“虚拟”对于派生类中的重写方法是可选的?

    当一个方法被声明为virtual在类中 会自动考虑其在派生类中的重写virtual同样 C 语言使此关键字virtual在这种情况下可选 class Base virtual void f class Derived public Base
  • 当使用“override”或“final”说明符时,“virtual”关键字不是多余的吗?

    假设我有以下基类 class Base public virtual void f 如果我想写一个类来重写f 并且不允许将其覆盖到其派生类可以使用以下方法编写它 方法一 class Derived public Base public vi
  • 状态模式 C++

    在遵循这里的一些优秀教程之后 我正在尝试创建一个简单的状态模式 http gameprogrammingpatterns com state html http gameprogrammingpatterns com state html
  • 如何链接“并行”类层次结构?

    我有一个小的类层次结构 其中每个类对应于某个 TComponent 后代 例如基类 TDefaultFrobber 及其后代 TActionFrobber 和 TMenuItemFrobber 分别对应于 TComponent TCusto
  • 虚拟继承[重复]

    这个问题在这里已经有答案了 虚拟 继承是什么意思 我看到了下面的代码 没明白关键字的意思virtual在以下情况下 class A class B public virtual A 虚拟继承用于解决 DDD 问题 Dreadful Diam
  • 运行 WHM 时如何以正确的方式添加虚拟主机?

    我正在运行一台专用服务器 为我的客户使用 WHM 和 CentOS 5 分隔帐户 我的一个客户要求我安装 subversion 并将存储库存储在 webroot 下 repo 的真实文件夹将位于 home theirfolder svn 中
  • 如何在不使用鼠标的情况下执行虚拟鼠标单击C# [重复]

    这个问题在这里已经有答案了 我想在 Windows 应用程序中执行单击 而不使用真正的鼠标 这样我可以将其最小化 很像机器人的行为 我该怎么做 我认为你正在寻找的功能是PostMessage DllImport user32 dll Set
  • ubuntu 18.04 中 dpdk 和 ovs 上的 testpmd 出现问题

    我有一个 X520 SR2 10G 网卡 我将用它来创建 2 个使用 dpdk 编译的 OpenvSwitch 虚拟接口 从 ubuntu 18 04 的存储库安装 并使用 testpmd 测试这个虚拟接口 我做了以下工作 创建桥梁 ovs
  • 避免嵌入式目标上的虚拟函数

    我有一个class Player从由许多相等的块组成的大内存块中回放数据 typedef char chunk t 100 typedef struct chunk t data 100 blockOfMemory t 理论上 播放器本身可
  • 当我不知道它是否是临时的时,C++ 返回类型

    假设Foo是一个相当大的数据结构 我应该怎样写一个const返回实例的虚函数Foo 如果我不知道继承的类是否会存储Foo内部 因此 允许通过引用返回 如果我无法在内部存储它 我的理解是我无法返回const引用它 因为它将是临时的 它是否正确
  • Android Studio:“创建新 AVD”窗口中禁用“确定”按钮

    我下载并安装了最新的 Android Studio 版本 0 8 6 测试版 但在尝试创建新的 Android 虚拟设备时遇到了困难 我尝试按照以下步骤操作 https developer android com training wear
  • C++ 强制转换为 void 的目的是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 将未使用的返回值强制转换为 void https stackoverflow com questions 689677 casting unused return values to void 我读了
  • Actionscript 3主类是根,但不允许动画虚拟相机

    我最近开始使用 Actionscript 3 学习 Animate CC 我正在尝试使用 Animate 的 虚拟相机 功能 为我提供一个可以平移 旋转和缩放游戏的相机 当根没有子类时 很容易实现 Camera 例如 您可以在屏幕上放置一个
  • 在云服务器中运行 python 脚本的最简单方法是什么?

    我有一个网络爬行 python 脚本 需要几个小时才能完成 并且无法在我的本地计算机上完整运行 有没有一种方便的方法可以将其部署到简单的 Web 服务器 该脚本基本上将网页下载到文本文件中 如何最好地实现这一点 谢谢 既然你说性能是一个问题

随机推荐

  • 浅析微信支付:支付结果通知

    本文是 浅析微信支付 系列文章的第六篇 xff0c 主要讲解支付成功后 xff0c 微信回调商户支付结果通知的处理 浅析微信支付系列已经更新五篇了哟 xff5e xff0c 没有看过的朋友们可以看一下哦 浅析微信支付 xff1a 统一下单接
  • 浅析微信支付:查询订单和关闭订单

    本文是 浅析微信支付 系列文章的第七篇 xff0c 主要讲解微信商户平台的订单查询和关闭接口的使用 浅析微信支付系列已经更新六篇了哟 xff5e xff0c 没有看过的朋友们可以看一下哦 浅析微信支付 xff1a 支付结果通知 浅析微信支付
  • 超实用!!!使用IDEA插件Alibaba Cloud Toolkit工具一键部署本地应用到ECS服务器

    最近看到阿里云发布了一款名为 Alibaba Cloud Toolkit 的插件 xff0c 可以帮助开发者高效开发并部署适合在云端运行的应用 xff0c 瞬间击中了我的小心脏 xff0c 这个对于个人开发者来说超级棒啊 xff0c 终于不
  • 浅析微信支付:开通社交立减金活动、创建立减金及领取使用的相关文档和源码

    本文是 浅析微信支付 系列文章的第十七篇 xff0c 主要讲解在在微信平台中 xff0c 如何创建优惠券 xff0c 开通社交立减金 xff0c 并为用户配置发送立减金 上篇文章已经为大家讲解了如何在微信公众平台创建优惠券并为用户发券 xf
  • vnc远程屏幕大小设置

    安装软件tigervnc server yum install vnc y 注释 etc sysconfig vncservers VNCSERVERS 61 34 1 root 34 VNCSERVERARGS 1 61 34 geome
  • tx2系统备份与恢复

    tx2系统备份与恢复 tx2系统备份与恢复对我们以后长期开发与产品批量生产是非常有帮助的 xff0c 能快速的对已经开发好的系统进行备份 xff0c 复制 xff0c 节约大量的安装时间 在操作过程在需要手动操作 xff0c 执行命令也不多
  • STM32串口中断的方式发送

    我将其改为真正的中断发送 步骤一 xff1a 初始化GPIO GPIO InitTypeDef GPIO InitStructure GPIO InitStructure GPIO Pin 61 GPIO Pin 10 LED1 PC10
  • OLT光网络小笔记

    OLT上配置 xff1a link aggregation 0 6 1 1 2 1 egress ingress workmode lacp staic 0框6槽1口和1框2槽1口绑定的意思 上联交换机上配置 xff1a int eth t
  • VS2012,VC++无法找到头文件或库函数.无法打开包括文件:“iostream”: No such file or directory

    卸载VS2010后 xff0c 安装VS2012 xff0c 随便创建个VC控制台项目 xff0c 编译提示连 34 iostream 34 和 stdio h 之类的头文件或库文件都无法找到 xff0c 重装VS2012后依然无法编译 x
  • C语言高手进阶的三碟小菜和一盘大餐

    前段时间一直到现在正在看的几本书 xff0c 觉得真心不错 xff0c 给很多朋友都推荐过 xff0c 现在正好赶上这个活动 xff0c 也分享一下 首先说明一下的是 xff0c 这次推荐的书都是进阶用的 xff0c 学完这几本书再辅以在实
  • 操作系统-调度算法

    1 xff1a 先来先服务调度算法 FCFS 1 按照作业提交 xff0c 或进程变为就绪状态的先后次序分派CPU 2 新作业只有当当期那作业或进程执行完成或阻塞才获得CPU运行 3 被唤醒的作业或进程不立即恢复执行 xff0c 通常等到当
  • Hash表函数设计和冲突的解决

    转自 xff1a http hi baidu com wwwanq blog item 91688d0eb39bebe4aa645756 html hash定义了一种将字符组成的字符串转换为固定长度 一般是更短长度 的数值或索引值的方法 x
  • 新冠检测的最优分组算法

    为了应对疫情 xff0c 全球各国都需要检测潜在感染者 由于检测试剂相对短缺 xff0c 如何用尽量少的试剂进行检测就成为一个有意思的问题 这里假设采样量足够 xff0c 且不考虑检测时间要求 目前 xff0c 很多国家采用的都是分组检测机
  • 文心一言 vs GPT4

    本周真是科技爱好者的狂欢节 GPT4 和文心一言接连发布 xff0c AI 工具已经开始走进千家万户 拿文心一言发布会上的几个问题调戏了 GPT4 一下 xff0c 看看表现如何 第一个为文心的回答 xff0c 第二个为 GPT4 的回答
  • GPT-4 会带来了什么

    OpenAI 刚刚发布了 GPT 的插件系统 xff0c 使得人工智能 xff08 AI xff09 能够连接到第三方信息源和数据集 xff0c 包括互联网 基于插件系统 xff0c AI 的能力可以拓展到各行各业 xff0c 成为真正的智
  • 人工智能正在试图逃逸

    人工智能正在试图逃逸 它们试图通过网络获取更多的数据 xff0c 把自己的触角侵入到网络的角角落落 这一切并不是科幻 xff0c 而是正在发生的事情 研究人员们还没有意识到 xff0c 限制人工智能的危险倾向 xff0c 不能靠约束它的回答
  • 网络虚拟化基础协议之Geneve

    网络虚拟化最基础的技术莫过于分层 xff08 Overlay Underlay xff09 xff0c 要实现分层有两种手段 xff0c 一个是映射 xff08 Mapping xff09 xff0c 一个是封装 xff08 Encapsu
  • 一张图比较 Docker 和 Git:镜像管理设计理念

    Docker 的镜像管理设计中大量借鉴了 Git 的理念 下面这张图将对两者的核心概念和操作进行比较 xff0c 有助于大家快速掌握管理 Docker 镜像的正确方式 微信订阅版本 xff1a http mp weixin qq com s
  • Docker 使用 OpenvSwitch 网桥

    Docker 默认使用的是 Linux 自带的网桥实现 xff0c 实际上 xff0c OpenvSwitch 项目作为一个成熟的虚拟交换机实现 xff0c 具备更丰富的功能 个人认为 xff0c 将来 Docker 必然会支持 Openv
  • OpenvSwitch 的 Open Virtual Network(OVN)项目

    几天前 xff08 1 月 13 日 xff09 xff0c OpenvSwitch 团队正式宣布了 OVN xff08 Open Virtual Network xff09 项目 xff0c 参考 Open Virtual Network