openstack 网络简史

研究openstack有2个月的时间,这段时间从网上获取N多宝贵资料,对我的学习有非常大帮助,在加上我自己的研究,最终对openstack整个网络体系有了个浅显的认识,写几篇文章,一个是对以往资料的总结。二来也希望的我的总结能为很多其它学习openstack的朋友们提供帮助。废话到这,进入正题。

nova-network:openstack最開始网络组件叫nova-network,其代码也都在nova中。支持的插件仅仅有Linux bridge。网络拓扑包含flat和vlan。

quantum:后来为了支持很多其它的插件,很多其它的网络拓扑。与nova交互更灵活,出现了quantumproject。quantum相比与nova-network,主要多出例如以下功能:

  1. 支持很多其他的插件: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的优缺点,后面会专门讨论;
  2. 支持隧道技术gre、vxlan。
  3. 多出l3-agent和dhcp-agent。l3-agent用于路由和nat(iptables)、dhcp-agent用于fixed ip的dhcp分配(基于dnsmasq实现)。

neutron:quantum因为与一家公司重名,在Havana版本号中更名为neutron。

neutron相比于quantum。多出来的最基本的功能是公共插件ml2。ml2主要功能例如以下:

  1. 实现一种类型的插件一般包含两个部分。一 部分与数据库db打交道的*-plugin。一部分是调用详细的网络设备真正干活的*-agent,因为众多插件。其与db打交道的代码都是反复的,抽出反复代码则形成了ml2-plugin

  2. MechanismDriver,实现多个插件共存,比方Linux bridge和ovs共存,MechanismDriver的作用是将agent的类型agent_type和vif_type关联,这样vif_type就能够直接通过扩展api灵活设置了。所以想用 linux bridge,就在vif_type里,将port绑定成linux bridge,想用ovs,将port绑定成ovs。

  3. 在配置文件ml2_conf.ini能够将不同网络拓扑(flat/vlan/gre/vxlan)共存。

以上就是眼下openstack 网络发展简史。在这个过程中,我们不得不思考一个问题。在实际网络部署时,nova-network和neutron的选择、插件bridge和ovs的选择、网络拓扑flat、vlan、gre、vxlan的选择,这些类别的优缺点在兴许blog中会进一步展开讨论。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

openstack 网络简史的更多相关文章

  1. 开发人员必读openstack网络基础

    云计算中的网络非常复杂,需要对网络的基础理论有一定的认识和了解,转载网上针对openstack中涉及到网络概念的文章 开发人员必读openstack网络基础1:什么是L2.L3 开发人员必读opens ...

  2. 深入理解openstack网络架构(4)-----连接到public network

    原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture3 译文转自:http://b ...

  3. 深入理解openstack网络架构(3)-----路由

    原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture2 译文转自:http://b ...

  4. 深入理解openstack网络架构(1)

    原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture 译文转载自:http://b ...

  5. openstack 网络架构 nova-network + neutron

    openstack网络架构(nova-network/neutron) openstack网络体系中,网络技术没有创新,但用到的技术点很庞杂,包含bridge.vlan.gre.vxlan.ovs.o ...

  6. 清除OpenStack网络与路由

    下面,我们以删除一个路由设备为例,讲解整个过程(以下命令都在控制节点执行) 列出所有路由设备,获得要删除的路由器id # neutron router-list [root@controller ~] ...

  7. OpenStack 网络服务 Neutron 私有网络构建(十九)

    本章内容基于之前提供者网络构建的基础上进行改动,之前文章参考如下: Openstack 网络服务 Neutron介绍和控制节点部署 (九) Openstack 网络服务 Neutron计算节点部署(十 ...

  8. OpenStack 网络服务 Neutron 多网卡(提供者网络)(十八)

    OpenStack 网络服务 Neutron 多网卡,分为内部网络.外部网络 使用vmware模拟两张网卡 添加网卡 网卡配置 cd /etc/sysconfig/network-scripts cp ...

  9. OpenStack云计算(一)——OpenStack 网络

    关于OpenStack OpenStack它是 Rackspace Cloud 和 NASA 负责的一个开源基础架构即服务的云计算项目. OpenStack 是一个由开发者和云计算技术人员的全球协作开 ...

随机推荐

  1. 趣味Java算法题(附答案)

    [程序1]    题目:古典问题:有一对兔子,从出生后第3个月起每一个月都生一对兔子,小兔子长到第三个月后每一个月又生一对兔子,假如兔子都不死,问每一个月的兔子总数为多少?    //这是一个菲波拉契 ...

  2. 探索Android该Parcel机制(上)

    一.先从Serialize说起 我们都知道JAVA中的Serialize机制,译成串行化.序列化……,其作用是能将数据对象存入字节流其中,在须要时又一次生成对象. 主要应用是利用外部存储设备保存对象状 ...

  3. java编程中容易犯2的细节汇总

    1.for() 和 while() 执行步骤 for(s1;s2;s3){ s4;} 1.进入循环执行s1;       2.执行s2;//条件为真才执行s4,不然就跳出for了.      3,执行 ...

  4. 【原创】leetCodeOj ---Construct Binary Tree from Preorder and Inorder Traversal 解题报告

    原题地址: https://oj.leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 题目 ...

  5. HDU 1885 Key Task 国家压缩+搜索

    点击打开链接 Key Task Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  6. 新手学Unity3d的一些网站及相应学习路线

    一.unity3d有什么优势 如果您对开发游戏感兴趣,而又没有决定选择哪一个游戏引擎,别犹豫了 unity3d是一个很好的选择! 就我来看unity3d优势主要有以下几方面:首先部署简单,自带了一个I ...

  7. 解决ASP.NET Web API Json对象循环参考错误

    前言 一般我们在开法 ASP.NET Web API 时,如果是使用 Entity Framework 技术来操作数据库的话,当两个 Entity 之间包含导览属性(Navigation Proper ...

  8. [原创].NET 分布式架构开发实战之一 故事起源

    原文:[原创].NET 分布式架构开发实战之一 故事起源 .NET 分布式架构开发实战之一 故事起源 前言:本系列文章主要讲述一个实实在在的项目开发的过程,主要包含:提出问题,解决问题,架构设计和各个 ...

  9. POJ 3076 Sudoku DLX精确覆盖

    DLX精确覆盖模具称号..... Sudoku Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 4416   Accepte ...

  10. hdu 5030 Rabbit's String(后缀数组&二分法)

    Rabbit's String Time Limit: 40000/20000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...