Openstack的nova-network的vlan模式扩展
openstack的nova-network的vlan模式是可以在安装的时候,将网络划分为多个子网,每个项目一个或者多个子网进行虚拟机创建。 但是他现在代码级别上不支持:如果一开始安装的环境的vlan网段数目太少,后面使用要进行扩展的话容易出现问题。
场景
我们的场景是开始只建立一个vlan网段用于fixed_range(172.17.51.0/24,vlanID:51),num_networks=1,现在我们要加一个网络,vlanId 52,除了在物理交换机上要配置该虚拟网络,计算节点要使用trunk口以外,还需要在openstack集群中使用命令:
nova-manage network create --lable vlan52 --fixed_range_v4 172.17.52.0/24 --vlan 52 --project_id 80c29c88d3c349a78d4ed558e224eac4
执行完成以后,我们使用命令查看:
[root@node-8 ~]# nova-manage network list id IPv4 IPv6 start address DNS1 DNS2 VlanID project uuid 1 172.17.51.0/24 None 172.17.51.3 218.6.200.139 8.8.4.4 51 80c29c88d3c349a78d4ed558e224eac4 e8df9310-ba2c-45a8-9645-6d6d045da71e 14 172.17.52.0/24 None 172.17.52.3 8.8.4.4 None 53 80c29c88d3c349a78d4ed558e224eac4 eada580e-cf13-42d5-9c4e-b8e5c61de6d
请注意上面的结论的VlanID的值,虽然我们输入的vlan是52,但是这里的VlanID却是53,为什么? 当然,为什么我在这里纠结这个vlanID呢,因为在网络节点上创建br网桥,vlan都需要这个vlantag来进行数据的封包,如果他不正确,虚拟实例将无法ping到网关,也无法ssh连接。
实际测试中我还建立了其他环境,而那个环境一开始就有4个网络,我们如果指定的vlan是51,那么vlanID的最终数据库存储将是54,结论很明显,我新建立一个vlan,将使用已有的vlan的数量+我输入的vlanID,不明白为什么这样弄,不符合我们新创建的vlan的ID的增加顺序。
源码跟踪:
if CONF.network_manager == 'nova.network.manager.VlanManager':1190 vlan = kwargs.get('vlan', None)1191 print kwargs1192 if not vlan:1193 print num_used_nets1194 index_vlan = index + num_used_nets1195 print index_vlan1196 #vlan = kwargs['vlan_start']1197 vlan = kwargs['vlan_start'] + index_vlan1198 used_vlans = [x['vlan'] for x in nets]1199 print used_vlans1200 if vlan in used_vlans:1201 # That vlan is used, try to get another one1202 used_vlans.sort()1203 vlan = used_vlans[-1] + 1
这是/usr/lib/python/site-package/nova/network/manager.py的内容,而vlanID不正确也正是这段代码导致的.这里我了几个print。执行我们前面的创建虚拟网络的命令,将打印:
... 1 1 [51L] ...
即index_vlan=1,used_vlans=[51L], 修改方法: 将1197行的vlan=kwargs['vlan_start']+index_vlan修改为vlan=kwargs['vlan_start'] 将原来创建的网络关联删除,使用命令:
nova network-disassociate network-id nova-manage network delete network-id
重新执行网络创建命令,将可以得到正确的vlanID,而且还能在后续的虚拟机创建后,虚拟机能使用该fixed_range到达实例。
最后,发现这是一个官方的bug列表里已经有人提出了的: https://bugs.launchpad.net/nova/+bug/1288609
根据官网的的修改方法: 修改/usr/lib/python/site-package/nova/network/manager.py 的1189行,该vlan = kwargs.get('vlan', None)为vlan = kwargs.get('vlan_start', None)
patch地址:https://review.openstack.org/#/c/99692/
转载于:https://www.cnblogs.com/CLTANG/p/4332553.html
Openstack的nova-network的vlan模式扩展相关推荐
- OpenStack中 Nova的Cell架构模式介绍
目录 1,什么是cell ?为什么有cell ? 2,cell的两种架构模式及工作原理 3 , Cell v2实现的原理 1,什么是cell ?为什么有cell ? 当openstack nova 集 ...
- OpenStack网络 - 使用vlan模式来剖析openstack网络相关概念及原理
OpenStack网络 - 使用vlan模式来剖析openstack网络相关概念及原理 OpenStack网络 OpenStack网络设置比较复杂,阅读了一些文档,主要是采用两种网络 flat net ...
- 技术解析:openstack vlan模式下的隔离和数据流向(转)
一.隔离 计算机网络,是分层实现的,不同协议工作在不同层,按着OSI的分层模型,共有七个层,我们一般所说的隔离,通常指的是第2层,也叫"数据链路层";数据链路层的网络包,也叫&qu ...
- 深入理解 Neutron -- OpenStack 网络实现(2):VLAN 模式
问题导读 1.br-int.br-ethx的作用是什么? 2.安全组策略是如何实现的? 3.VLAN 模式与GRE模式有哪些不同点?流量上有哪些不同? 4.L3 agent实现了什么功能? 接上篇深入 ...
- OpenStack Juno版本网络节点gre模式配置
2019独角兽企业重金招聘Python工程师标准>>> OpenStack Juno版本网络节点gre模式配置 #开启linux的ip转发功能 #nano /etc/sysctl.c ...
- OpenStack之八: network服务(端口9696)
注意此处用的一个网络,暂时不用启动第二个网 官网地址 https://docs.openstack.org/neutron/stein/install/controller-install-rdo.h ...
- VXLAN 隧道 基础介绍 Virtual eXtensible Local Area Network,虚拟可扩展局域网
一.概述 VXLAN(Virtual eXtensible Local Area Network,虚拟可扩展局域网),是一种虚拟化隧道通信技术.它是一种 Overlay(覆盖网络)技术,通过三层的网络 ...
- havana版openstack(controller节点+network节点+compute节点)安装 CentOS6.5
1.1 三个节点的openstack系统的安装 说明本次构建主要依据手册进行安装.在网络方面开始选择了VLAN ,但是由于硬件switch不支持,后又从VLAN格式更改为GRE. 构筑下面的测试 ...
- 【深度学习】孪生网络(Siamese Network)的模式和训练过程
[深度学习]孪生网络(Siamese Network)的模式和训练过程 文章目录 1 概述 2 Siamese network 孪生神经网络 3 孪生神经网络和伪孪生神经网络分别适用于什么场景呢? 4 ...
最新文章
- 【Spring】spring基于纯注解的声明式事务控制
- R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如、粗体、斜体等
- JavaScript语言精粹_JSON
- 微信企业号OAuth2.0授权-Java
- Android --- SDK 和 API 是什么意思
- 比起掉头发,我更怕掉队
- HttpHandler
- cmake 常用变量和常用环境变量
- 99年毕业设计获优的程序-图书管理程序 续
- 【SAP消息号AA776】
- 利用LFW对人脸识别模型进行精度评测
- NVivo 2018 Essential Training NVivo 2018基础教程 Lynda课程中文字幕
- c# AutoCAD 操作交互
- Android渲染优化之卡顿检测、统计fps
- HDU, 3579 Hello Kiki
- 小程序分类图标提取_腾讯手机管家“垃圾分类”小程序上线 get分类指南
- python3 租房信息
- Windows 7RTM综合评述
- 利用Python实现高斯混合模型(GMM)
- 【HDU 1889】Reaux! Sham! Beaux!(模拟+水题)
热门文章
- controller层没反应_热拉提一年做几次?热提拉的副作用根本没在怕的~
- 虚拟机上部署的项目 访问路径怎么写_桌面虚拟化即将流行开来——基于Hyper-V虚拟机的桌面虚拟化部署...
- python openstack rabbitmq_OpenStack--Rabbitmq组件消息队列
- centos 6.7 mysql rpm_CentOS 6.7 下RPM方式安装MySQL 5.6
- java文档注释生产api没有注释_一个神奇的没有springboot注释的api文档生成器---JApiDocs...
- 华为怎么安装服务器系统版本,服务器怎么安装操作系统版本
- python24.dll_2_48_python24.dll
- linux内存管理策略,Glibc内存管理—ptmalloc内存分配策略(1)
- hive中的逻辑运算符 案列_Hive内置运算符
- python写配置文件方法_Python读写配置文件的方法