Neutron/ML2

  1. Neutron ML2

模块层2(ml2)插件是一种允许OpenStack网络同时地利用在复杂现实数据中心发现的各种第二层网络技术的框架。目前它与存在的openvswitch、linuxbridge和hyperv L2代理共同存在,而且想要替换和否决与那些L2代理相关联的巨大插件。ml2框架也想要大大简化增加对新L2网络技术的支持,并且比那些要求添加新的巨大核心插件需要更少的初始和持续的努力。模块化代理可能作为后续开发工作。

1.1.        ML2驱动

ml2驱动分别实现可扩展的网络类型和访问那些类型网络机制的集合。与metaplugin不同的是,多种机制被同时地用于访问相同虚拟网络的不同端口。这些机制能通过RPC和/或使用驱动原理利用L2代理来与外部设备或者控制器相互联系。类型和进程驱动程序被加载为python入口点使用stevedore库。

1.1.1.   驱动类型

每个可用的网络类型被ml2驱动类型管理。驱动类型维持任何需要指定类型的网络状态,并且执行供应商网络验证和租户网络配置。Ml2插件同时包含本地、扁平、vlan、gre和vxlan网络类型的驱动程序。

1.1.2.   驱动机制

每个网络进程被ml2驱动机制管理。驱动机制对已建立的类型驱动获取的信息有责任,以及确保能够恰当的应用到所给的能工作的网络进程。

驱动机制接口同时支持创建、更新和删除网络和端口资源。对每个在资源上采取行动,进程驱动使用两种方法——ACTION_RESOURCE_precommit,一种称为数据库事务处理上下文和ACTION_RESOURCE_postcommit,称为数据库事务完成后。Precommit方法被驱动机制用于验证采取的行动和做任何需要改变驱动机制的私有数据库。Precommit方法不应该阻塞以及因此不能和任何外部Neutron通信。Postcommit方法负责适当推动改变资源的实体负责应用改变。例如,postcommit方法将推动一个外部网络控制器改变,那负责适当地更新网络资源基于这些改变。

支持驱动机制目前在先行版本Havana中是半成品,同时它的接口在Havana推行前会发生改变。在未来的版本中,驱动机制接口也被称为用来建立端口绑定,决定VIF类型和网段。

1.2.           多区段网络

虚拟网络有多段相同或者不同类型组成的。数据库决策和驱动程序APIs支持多区段网络,但是对于多区段网络的客户端APIs现在还没有实现。

2.   ML2配置

2.1.           在Devstack中使用ML2

ML2插件在Devstack中完全支持。支持配置VLAN、GRE和VXLAN网络模式。配置这些模式如下:

2.2.           用VLANs模式的ML2配置Devstack

为配置ML2使用控制和计算结点的localrc文件如下所述,用来运行VLANs模式的Devstack。这等价于运行OVS或者LinuxBridge插件在VLAN模式下。

如下在你的控制节点添加如下的localrc文件:

Q_PLUGIN=ml2

ENABLE_TENANT_VLANS=True

ML2_VLAN_RANGES=mynetwork:100:200

为VLAN类型驱动程序设置指定的VLAN参数,在localrc下列变量被使用。这是一个空间独立的分配值列表:

Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS=(network_vlan_ranges=600:700)

2.3.           用隧道网络模式的ML2配置Devstack

一个控制和计算结点localrc文件显示在这里为了配置ML2运行隧道网络的Devstack。这是最基本的配置ML2的形式,而且等价于运行GRE隧道的OVS插件。

在控制节点localrc添加如下:

Q_PLUGIN=ml2

ENABLE_TENANT_TUNNELS=True

在计算结点,添加到你的localrc中:

Q_PLUGIN=ml2

ENABLE_TENANT_TUNNELS=True

改变GRE关键的范围使用隧道关键,添加到localrc:

TENANT_TUNNEL_RANGE=50:100

上面将启用OVS的GRE隧道。如果你想要使用OVS的VXLAN,确保你正在运行至少1.10版本的OVS,包括从上游领域的OVS项目中的Open vSwitch KLM。一旦你有了,下面就可以启用VXLAN隧道模式的ML2:

在控制节点上添加下列到localrc:

Q_PLUGIN=ml2

Q_ML2_TENANT_NETWORK_TYPE=vxlan

计算结点上添加下列代码到localrc中:

Q_PLUGIN=ml2

Q_ML2_TENANT_NETWORK_TYPE=vxlan

改变VXLAN VNIs的范围到使用,添加到localrc:

Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS=(vni_ranges=400:500)

2.4.           在Devstack中高级ML2配置

Devstack缺省运行OVS代理的ML2.使用不同的代理,在localrc中如下设置:

Q_AGENT=linuxbridge

ML2缺省不加载任何进程驱动程序,仅与OVS、LinuxBridge和Hyper-V代理共存。为了改变这个,在localrc中设置如下。有效参数是你想要使用的进程驱动程序的名字:

Q_ML2_PLUGIN_MECHANISM_DRIVERS=<list of MechansimDrivers>

默认地,所有的ML2类型驱动被加载。改变这个行为,在localrc设置如下。有效选项如下设置:local、flat、vlan、gre、vxlan。

Q_ML2_PLUGIN_TYPE_DRIVERS=vlan,gre

转载于:https://www.cnblogs.com/awy-blog/p/3594932.html

Neutron/ML2学习相关推荐

  1. 学习OpenStack之(6):Neutron 深入学习之 OVS + GRE 之 Compute node 篇

    0.环境 硬件环境见上一篇博客:学习OpenStack之(5):在Mac上部署Juno版本OpenStack 四节点环境 OpenStack网络配置:一个tenant, 2个虚机 Type drive ...

  2. 【neutron】OpenStack Neutron -- 学习资料

    OpenStack Neutron -- 学习资料 学习什么 neutron代码的整体架构,消息通知.rpc如何实现,RESTful API如何实现 neutron的部署,常见问题的定位方法 neut ...

  3. vxlan 资料及其在 neutron中的应用

    2019独角兽企业重金招聘Python工程师标准>>> VXLAN 是一个新兴的SDN 标准,它定义了一种新的 overlay 网络,它主要的创造者是 VMware, Cisco 和 ...

  4. Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Neutron Open vSwitch + VLAN Virtual Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  5. 学习openstack(五)

    OpenStack OpenStack介绍 OpenStack是一种免费的开源平台,帮助服务提供商实现类似于亚马逊EC2和S3的基础设施服务.OpenStack当前有三个核心项目:计算(Nova),对 ...

  6. 【neutron源码分析】neutron-server启动流程分析

    Neutron为Openstack的网络组件,其内部功能均是以plugin形式实现的,其中代表性的plugin就是ml2和l3,下面将从neutron启动的源码来分析neutron加载和扩展插件的流程 ...

  7. Play with Neutron IPv6 (by quqi99)

    作者:张华  发表于:2016-06-13 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 实验 ...

  8. Neutron原理详解

    一 OpenStack早些版本的网络方案 1 FLAT 2 FLATDHCP 3 VLAN 4 MULTI-HOST nova-network负责网络功能 二 FLAT 1 指定一个子网,规定虚拟机能 ...

  9. OpenStack-基本概念之neutron

    1  Neutron 概述 SDN ­­ (software­defined networking)软件定义网络所具有的灵活性和自动化优势使其成为云时代网络管理的主流. Neutron 的设计目标是实 ...

最新文章

  1. 70种芯片细分领域、国产MCU重要代表企业
  2. Hadoop(十二):从源码角度分析Hadoo是如何将作业提交给集群的
  3. 湖北宜昌:老太不慎落入江中 小伙奋勇救人
  4. 【数据结构与算法】之深入解析“将有序数组转换为二叉搜索树”的求解思路与算法示例
  5. 《大数据》第2期“专题”——我国政府数据开放现状和保障机制
  6. 技术实践丨PostgreSQL插件之pg_dirtyread “闪回查询“
  7. 转 ajax.dll 与 ajaxpro.dll的用法
  8. matlab2013语言设置,科学网—macOS MATLAB 更改界面语言设置——中文改为英文 - 李航的博文...
  9. android安装git插件安装教程,Android Studio 3.6.1上使用gitee
  10. 用注册表修改右键菜单
  11. 百度文库免费下载含豆丁、道客巴巴等
  12. KDiff3 merge conflict 窗口操作说明
  13. 计算机科普扫盲——固态硬盘
  14. python快乐数字怎么表达_幸福快乐用数字怎么表示?
  15. 【paper 2】Learning from Simulated and Unsupervised Images through Adversarial Training
  16. c语言基础知识选择题,C语言基础知识选择试题.doc
  17. PHP的LZF压缩扩展工具
  18. Linux开机启动、bashrc、定时任务
  19. 最有用的Java免费自学网站
  20. 2000-2021年 美国国际收支平衡表 德国国际收支平衡表 中国国际收支平衡表……

热门文章

  1. 新一代华为折叠屏手机MateX2,你会考虑入手吗?
  2. 中小企业老板辛苦一整年,为什么就赚不到钱?
  3. word正在等候其他应用程序完成OLE操作
  4. oracle 事务快照_了解事务和快照复制的分布规模
  5. 无法创建ssis数据流任务_SSIS中的数据分析任务概述
  6. 逻辑数据库设计 - 单纯的树(邻接表、路径枚举、嵌套集、闭包表)(引)
  7. Java foreach remove问题分析
  8. python-study-09
  9. ORACLE1.8-序列
  10. Myeclipse和 eclipse中的控制台汉字横着显示修改