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/ --vlan  --project_id 80c29c88d3c349a78d4ed558e224eac4

执行完成以后,我们使用命令查看:

[root@node- ~]# nova-manage network list
id IPv4 IPv6 start address DNS1 DNS2 VlanID project uuid
172.17.51.0/ None 172.17.51.3 218.6.200.139 8.8.4.4 80c29c88d3c349a78d4ed558e224eac4 e8df9310-ba2c-45a8--6d6d045da71e
172.17.52.0/ None 172.17.52.3 8.8.4.4 None 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':
vlan = kwargs.get('vlan', None)
print kwargs
if not vlan:
print num_used_nets
index_vlan = index + num_used_nets
print index_vlan
#vlan = kwargs['vlan_start']
vlan = kwargs['vlan_start'] + index_vlan
used_vlans = [x['vlan'] for x in nets]
print used_vlans
if vlan in used_vlans:
# That vlan is used, try to get another one
used_vlans.sort()
vlan = used_vlans[-] +

这是/usr/lib/python/site-package/nova/network/manager.py的内容,而vlanID不正确也正是这段代码导致的.这里我了几个print。执行我们前面的创建虚拟网络的命令,将打印:

...

即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到达实例。

最后,原来这是一个nova官方已发现的bug:

https://bugs.launchpad.net/nova/+bug/1288609

修改方法就不一样了。

Openstack的nova-network的vlan模式扩展的更多相关文章

  1. Openstack的nova-network的vlan模式扩展2

    接上一篇,上一篇我们使用的是nova-manage命令来创建的网络,这里就有一些知识需要了解 遇到的问题 控制节点的前面的BUG已经按官方解决BUG方式解决了,但是在开发dashboard,使用nov ...

  2. VLAN 模式下的 OpenStack 管理 vSphere 集群方案

    本文不合适转载,只用于自我学习. 关于为什么要用OpenStack 管理 vSphere 集群,原因可以有很多,特别是一些传统企业,VMware 的使用还是很普遍的,用 OpenStack 纳管至少会 ...

  3. openstack项目【day24】:VLAN模式

    本节内容 一 二层基础知识 1.1 vlan介绍 1.1.1:vlan的含义 1.1.2:vlan的类型 1.1.3:vlan的不足 1.2 : 二层交换的基础知识 1.2.1:二层交换机最基本的功能 ...

  4. OpenStack neutron vlan 模式下的网络包流向

    时间:2015-01-15 18:09:41 1.什么是Neutron? Neutron是OpenStack的network project ,是NaaS(networking-as-a-servic ...

  5. 深入理解 Neutron -- OpenStack 网络实现(2):VLAN 模式

    问题导读 1.br-int.br-ethx的作用是什么?2.安全组策略是如何实现的?3.VLAN 模式与GRE模式有哪些不同点?流量上有哪些不同?4.L3 agent实现了什么功能? 接上篇深入理解 ...

  6. Openstack命令行创建不同vlan段虚拟机

    默认使用nova-network的vlan模式,但是在使用默认的dashboard的时候,不能指定创建的虚拟机的使用网段,固定IP地址. 实际上该功能是在存在的,只是openstack的dashbbo ...

  7. VLAN模式

    一 二层基础知识 1.1 vlan介绍 本小节重点: vlan的含义 vlan的类型 交换机端口类型 vlan的不足 1.1.1:vlan的含义 局域网LAN的发展是VLAN产生的基础,因而先介绍一下 ...

  8. nova network工作原理及配置

    1. nova network简介 网络管理和配置是云计算中一项非常重要的功能.nova自带的nova-network实现了一些基本的网络模型,允许虚拟机之间的相互通信及虚拟机对internet的访问 ...

  9. OpenStack 初探(一) -- All-In-One模式部署(初学OpenStack必备)

    OpenStack 初探(一) -- All-In-One模式部署(初学OpenStack必备) 一.操作前需了解:     1. OpenStack提供IaaS(基础设施即服务)服务,它是开源的云计 ...

随机推荐

  1. PHP伪静态

    伪静态 从形式上看是一个静态地址,实际上还是访问的动态地址, 比如:访问:http://www.abc.com/news-sport-id123.html 实际上是:http://www.abc.co ...

  2. navicat使用

      navicat我觉得做程序的基本上都会用,它方便,快捷,直观等,优点很多,这也是我写这篇文章的原因.以前我基本上都是用phpmyadmin,也挺好用,不过也有不少缺点,比如数据库备份文件太大,根本 ...

  3. EXCEL技巧——SUBTOTAL函数巧妙应用

    想用COUNTA来计算非空单元格的数量,但它会把隐藏的单元格也算进去,所以用到了SUBTOTAL这个函数.做个记录,方便日后使用 函数表示: SUBTOTAL(function_num, ref1,  ...

  4. python logging usage

    python中,logging模块主要是处理日志的. 所谓日志,可理解为在软件运行过程中,所记录的的一些运行情况信息 软件开发人员可以根据自己的需求添加日志,日志可以帮助软件开发人员 了解软件的运行信 ...

  5. Return Largest Numbers in Arrays

    题目要求 右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组. 提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素. 答题思路 ...

  6. 【Android测试】Android截图的深水区

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/6113059.html 需求 这两天遇到这样一个事情,因为某 ...

  7. ORM系列之二:EF(4) 约定、注释、Fluent API

    目录 1.前言 2.约定 2.1 主键约定 2.2 关系约定 2.3 复杂类型约定 3.数据注释 3.1 主键 3.2 必需 3.3 MaxLength和MinLength 3.4 NotMapped ...

  8. WordPress基础:让搜索引擎及时更新文章

    如果文章更新之后,想让搜索引擎也及时更新,你需要以下步骤 1.快速编辑文章时,勾选ping 2.设置->阅读,保证搜索引擎允许搜索 3.设置->撰写->添加url 通知url列表参考 ...

  9. chm转换为html

    在Windows下chm转换为html的超简单方法(反编译CHM文件的方法) 通过调用Windows命令,将chm 文件转换为html 文件. 方法: 命令行(cmd),输入hh -decompile ...

  10. 在Hyper-V中安装和配置Ubuntu网络

    http://www.abcde.cn/knowledgebase/845/Hyper-VUbuntu.html (文中的nameserver要改成自己路由器的IP:我的是192.168.2.1.) ...