最近把市场上OpenStack的书籍都认真读读,看到好的图,就截图帮助理解。
其实我本人网络方面一直都比较薄弱,为了逼自己学习,就是写写文档,帮助自己的理解。估计大家看完,就可以了解到我的Neutron网络的理解,还是比较肤浅。
解析一个东西,写一堆,真的不如一个图,这个真的是深刻体会。这个图是老外的书里的。
上面两张图,表达的意思,基本是一样的。
Neutron,其实和其他的OpenStack组件差不多,他都是一个中间层,自己基本不干具体的活,通过插件的机制,调用第三方的组件来完成相关的功能。
对于Neutron来说,在Havana版本前,支持Linux Bridge和Openvswitch两种插件。后来发现直接通过Neutron去调用插件的方式,有些不够理想
- linux bridge和ovs,实现功能的代码,其实有很大部分是重复的,这样让人感觉很不爽
- 出于功能和性能的考虑,有些场景下,需要同时使用linux bridge和OVS,采用这种直接调用插件的模式,是无法实现的。
在H版本以后,社区就推出一个Neutron插件 Modular Layer 2 (ml2) plugin,这个插件底下调用linux bridge和ovs两个Driver。
linuxbridge和OVS,可以干的活是支持不同的网络,目前这两种Driver,都可以实现下面几种网络功能。
- local
- flat
- vlan
- vxlan
- GRE (linux bridge 不支持)
那么这5种网络里,local网络,主要是用于测试,GRE网络,目前社区已经基本处于维护,大家基本也可以不考虑。所以大家只需要了解其中3种就可以。
OpenStack的网络里,可以有4种的网络流量
- 管理网络:消息队列和数据库访问的网络
- API网络:外部调用API
- External:连接外网(provider 网络)
- Guest:虚拟机互相通讯网络 (Tenant 网络)
4种网络里,和Neutron有关的就是External和Guest,Provider网络和Tenant 网络。
对于Provider 网络和Tenant 网络,技术实现基本都是一样的,区别仅仅在于
- Provider 网络,是有管理员创建
- Tenant 网络,是由用户自己创建
Provider 网络,常用的网络是:Flat和Vlan。vxlan基本是没有使用的可能性。
Tenant 网络,可以设置的选项就是 vlan,vxlan和flat,local主要是测试使用。
目前OpenStack官方文档已经比较完善,不过Liberty版本的文档,有一个很大的变化,网络采用Linux Bridge,并没有使用OVS,这样使得安装的过程更加简单.
修改历史
2015年12月2日:经过大师兄的帮忙,终于把网络调试通过。文档已经可用。
2015年11月30日:尝试安装vlan模式,文档没有经过检验。
目前OpenStack官方文档已经比较完善,不过Liberty版本的文档,有一个很大的变化,网络采用Linux Bridge,并没有使用OVS,这样使得安装的过程更加简单.
修改历史
2015年11月27日:完成基本的安装,控制节点也可以安装计算服务。
目前OpenStack官方文档已经比较完善,不过Liberty版本的文档,有一个很大的变化,网络采用Linux Bridge,并没有使用OVS,这样使得安装的过程更加简单,并且文档提供Provider network的安装。
本文档应该是采用Linux bridge,
provider 网络是Flat模式
租户网络为flat,
tenant_network_types = flat
tenant_network_types =
都是可以的。官方文档目前是为空。
修改历史
2015年12月11日:拿到交换机的配置权限,对网络进行测试。基本没问题。
2015年11月27日:在控制节点加上计算服务,这样可以一台机器完成。
2015年11月26日:经过同事验证,发现几个小问题,基本修正,文档基本可用。
已经到了无法忍受的地步,不清楚是防火墙还是什么原因,导致最近blog经常无法访问,也就只能考虑迁移,选择香港青云的节点来完成迁移。整整折腾了一个晚上,总算完美解决。
操作系统是CentOS7.1,慢慢熟悉中。真的已经很久没折腾PHP。还需要解决一个备份的问题,考虑用dropbox来搞定。