Neutron 架构

与 OpenStack 的其他服务的设计思路一样,Neutron 也是采用分布式架构,由多个组件(子服务)共同对外提供网络服务。

Neutron 由如下组件构成:

Neutron Server

  对外提供 OpenStack 网络 API,接收请求,并调用 Plugin 处理请求。

Plugin

  处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络状态, 并调用 Agent 处理请求。

Agent

  处理 Plugin 的请求,负责在 network provider 上真正实现各种网络功能。

network provider

  提供网络服务的虚拟或物理网络设备,例如 Linux Bridge,Open vSwitch 或者其他支持 Neutron 的物理交换机。

Queue

  Neutron Server,Plugin 和 Agent 之间通过 Messaging Queue 通信和调用。

Database

  存放 OpenStack 的网络状态信息,包括 Network, Subnet, Port, Router 等。

Neutron 架构非常灵活,层次较多,目的是:

为了支持各种现有或者将来会出现的优秀网络技术。

支持分布式部署,获得足够的扩展性。

以创建一个 VLAN100 的 network 为例,假设 network provider 是 linux bridge, 流程如下:

  • Neutron Server 接收到创建 network 的请求,通过 Message Queue(RabbitMQ)通知已注册的 Linux Bridge Plugin。
  • Plugin 将要创建的 network 的信息(例如名称、VLAN ID等)保存到数据库中,并通过 Message Queue 通知运行在各节点上的 Agent。
  • Agent 收到消息后会在节点上的物理网卡(比如 eth2)上创建 VLAN 设备(比如 eth2.100),并创建 bridge (比如 brqXXX) 桥接 VLAN 设备。

这里进行几点说明:

1、plugin 解决的是 What 的问题,即网络要配置成什么样子?而至于如何配置 How 的工作则交由 agent 完成。

2、plugin,agent 和 network provider 是配套使用的,比如上例中 network provider 是 linux bridge,那么就得使用 linux bridge 的 plungin 和 agent;

如果 network provider 换成了 OVS 或者物理交换机,plugin 和 agent 也得替换。

3、plugin 的一个主要的职责是在数据库中维护 Neutron 网络的状态信息

这就造成一个问题:所有 network provider 的 plugin 都要编写一套非常类似的数据库访问代码。

为了解决这个问题,Neutron 在 Havana 版本实现了一个 ML2(Modular Layer 2)plugin,对 plgin 的功能进行抽象和封装。

有了 ML2 plugin,各种 network provider 无需开发自己的 plugin,只需要针对 ML2 开发相应的 driver 就可以了,工作量和难度都大大减少。

4、plugin 按照功能分为两类: core plugin 和 service plugin。

core plugin 维护 Neutron 的 netowrk, subnet 和 port 相关资源的信息,与 core plugin 对应的 agent 包括 linux bridge, OVS 等;

service plugin 提供 routing, firewall, load balance 等服务,也有相应的 agent。

-------------------------------------------------------引用来自--------------------------------------------------------------------------

https://www.cnblogs.com/CloudMan6/p/5722305.html

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587691&idx=1&sn=c71b110dade71c3e120ec6b2389b3e33&chksm=8d3080f2ba4709e44eb08c55223e141f7ed0e069ebd6f770b7770665e00ff72d48ce41596a0b&scene=21#wechat_redirect

转载于:https://www.cnblogs.com/gsophy/p/11114765.html

第 7 章 Neutron - 067 - Neutron 架构相关推荐

  1. 【neutron】Neutron的基本原理与代码实现

    分享正文 大家好,很高兴今天能与大家分享一些Neutron的知识.今天分享的思路是:OpenStack网络基础.Neutron的软件实现.Nova虚拟机启动时的网络处理以及OVS流表分析. 一.Ope ...

  2. 《libGDX移动游戏开发从入门到精通》一第2章 libGDX的架构分析

    本节书摘来异步社区<libGDX移动游戏开发从入门到精通>一书中的第2章,第2.1节,作者: 黄俊东 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  3. 走向.NET架构设计—第四章—业务层分层架构(后篇)

    走向.NET架构设计-第四章-业务层分层架构(后篇) 前言: 在上一篇文章中,我们讨论了组织业务逻辑的模式:Transaction Script和Active Record,Domain Model. ...

  4. 公开课视频-《第03章 部署-IT基础架构》-大企业云桌面部署实战-在线培训-视频(奉献)...

    本系列课件用于企业内训.线下培训.公开课.书.项目(本企业下在使用云桌面).  ********************************** 在线-培训班-视频:(已完结) ********* ...

  5. 走向.NET架构设计—第四章—业务层分层架构(前篇)

    走向.NET架构设计-第四章-业务层分层架构(前篇) 前言:在任何一个项目中业务层毫无疑问是最重要的层,所以在设计的过程中,如何组织业务层是至关重要的.本章的讨论将会涉及Flower的架构模式一书中的 ...

  6. 第5章 MySQL高可用架构设计

    第5章 MySQL高可用架构设计 数据库复制 复制解决了什么问题????? 非共享架构 二进制日志 binlog工具 查看日志格式 show variables like "binlog_f ...

  7. 走向.NET架构设计—第四章—业务层分层架构(中篇)

    走向.NET架构设计-第四章-业务层分层架构(中篇) 前言: 在上一篇文章中,我们讨论了两种组织业务逻辑的模式:Transaction Script和Active Record.在本篇中开始讲述Dom ...

  8. 《网络空间内生安全》读书笔记:第七章 动态异构冗余架构

    第七章 动态异构冗余架构 DRS架构的静态性.确定性和相似性在非传统安全领域表现出严重的基因缺陷,一致对广义不确定扰动缺乏维持"初始信息熵不减"的能力,因而其抗攻击不具备稳定的稳定 ...

  9. 第三章 区块链技术架构与发展趋势

    第三章 区块链技术架构与发展趋势 整个区块链与密码学大体内容介绍安排如下: https://blog.csdn.net/qq_43479839/article/details/114630163 参考 ...

  10. VLSI数字信号处理系统——第十三章位级运算架构

    VLSI数字信号处理系统--第十三章位级运算架构 作者:夏风喃喃 参考: (1) VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著 (2) socvista https:/ ...

最新文章

  1. Android .so .aar..jar文件的使用方式
  2. [转]关于有偿提供拼图响应式后台的通知
  3. [九省联考2018]IIIDX 贪心 线段树
  4. phpstudy(自己电脑主机做服务器,手机网站界面打不开)
  5. php正则表达式图谱
  6. .foreach()需要判断空吗_这次我们来聊聊 Stream#forEach 源码
  7. 网页开发者模式调整到手机模式_突破极限?ROG 游戏手机 3 内藏 160Hz 刷新率模式...
  8. 微软去年安全业务收入150亿美元、新勒索软件以威联通设备为目标|1月27日全球网络安全热点
  9. 如何使用Photoshop修改论文中插图颜色
  10. 微信小程序云开发源码(垃圾分类源码)
  11. Win10使用Windows照片查看器(Windows Photo Viewer)来打开图片
  12. 如何在线将flac格式转换成mp3音频
  13. 3、Spark 和 D3.js 分析航班大数据
  14. 小蚁摄像机存储到计算机,小蚁摄像机电脑客户端
  15. 网站推广最实用不过的七种方法
  16. Dv-Hop Algorithm
  17. erp用不起了来?erp不好用?
  18. 发布.net core项目缺少‘Microsoft.NETCore.App‘
  19. 正则密码8-16位大写小写数字特殊字符
  20. Luogu P3594 [POI2015]WIL-Wilcze doły(单调队列)

热门文章

  1. 传智播客学python_传智播客python 12天学会Python系列视频 177个视频教程 完整学习Python编程...
  2. centos7 文件名中文乱码_CentOS 下中文文件名显示乱码问题
  3. curl get请求传递参数_使用curl调用restful API
  4. 性能计数器驱动_Vulkan 探密:AMD Vulkan 开源驱动源码解析-零
  5. python数据分析:Matplotlib
  6. 2015 CCPC 这次,我为自己鼓掌
  7. 计算机硬件不仅使用二进制,【判断题】计算机硬件中不仅使用二进制表示数据,也经常使用十六进制。...
  8. 15拆分成3个不同的自然数_素数大概有多少个?15岁的高斯翻过素数表之后给出了答案...
  9. 自动驾驶1-4 驾驶分类Taxonomy of Driving
  10. 翻译: Octave 入门教程