openstack 网络简史
openstack 网络简史
研究openstack有2个月的时间,这段时间从网上获取N多宝贵资料,对我的学习有非常大帮助,在加上我自己的研究,最终对openstack整个网络体系有了个浅显的认识,写几篇文章,一个是对以往资料的总结。二来也希望的我的总结能为很多其它学习openstack的朋友们提供帮助。废话到这,进入正题。
nova-network:openstack最開始网络组件叫nova-network,其代码也都在nova中。支持的插件仅仅有Linux bridge。网络拓扑包含flat和vlan。
quantum:后来为了支持很多其它的插件,很多其它的网络拓扑。与nova交互更灵活,出现了quantumproject。quantum相比与nova-network,主要多出例如以下功能:
- 支持很多其他的插件:Linux bridge、ovs、其他商业公司的插件(bigswitch、brocade plugin、cisco、hyper-v、midonet、NEC openflow、plumgrid、ryu、VMware nsx)。非官方统计。linux bridge 31%、ovs 39%、cisco 11%、other 19%,能够看出网络插件大家更倾向于Linux bridge和ovs,至于bridge和ovs的优缺点,后面会专门讨论;
- 支持隧道技术gre、vxlan。
- 多出l3-agent和dhcp-agent。l3-agent用于路由和nat(iptables)、dhcp-agent用于fixed ip的dhcp分配(基于dnsmasq实现)。
neutron:quantum因为与一家公司重名,在Havana版本号中更名为neutron。
neutron相比于quantum。多出来的最基本的功能是公共插件ml2。ml2主要功能例如以下:
-
实现一种类型的插件一般包含两个部分。一 部分与数据库db打交道的*-plugin。一部分是调用详细的网络设备真正干活的*-agent,因为众多插件。其与db打交道的代码都是反复的,抽出反复代码则形成了ml2-plugin
- MechanismDriver,实现多个插件共存,比方Linux bridge和ovs共存,MechanismDriver的作用是将agent的类型agent_type和vif_type关联,这样vif_type就能够直接通过扩展api灵活设置了。所以想用 linux bridge,就在vif_type里,将port绑定成linux bridge,想用ovs,将port绑定成ovs。
- 在配置文件ml2_conf.ini能够将不同网络拓扑(flat/vlan/gre/vxlan)共存。
以上就是眼下openstack 网络发展简史。在这个过程中,我们不得不思考一个问题。在实际网络部署时,nova-network和neutron的选择、插件bridge和ovs的选择、网络拓扑flat、vlan、gre、vxlan的选择,这些类别的优缺点在兴许blog中会进一步展开讨论。
版权声明:本文博客原创文章,博客,未经同意,不得转载。