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. MYSQL,innodb_buffer_pool_size内存分配

    为MYSQL.innodb_buffer_pool_size=8G.MySQL一起动就会将占用掉8G内存(觉得TOP能够看到内存被使用了8G),可是近期才细致研究一下.原来不是这种(可能自己对Linu ...

  2. Nginx+Varnish

    Nginx+Varnish 实现动静分离,为服务器分流,降低服务器负载 相必大家在看加快网站响应速度方面的文章时,都提过这么一条:动静分离.那怎样实现动静分离呢,这里笔者就亲自搭建相关服务实现动静分离 ...

  3. HDU1237 简单的计算器 【堆】+【逆波兰式】

    简单的计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  4. sizeClass和autolayout学习资源整理

    sizeClass和autolayout,看来不得不開始放弃frame的写法,收集点资料集中学习下 Adaptivity User Interfaces苹果官方文档:https://developer ...

  5. C++编程有趣的标题1 于1~9填写的运算结果的中间符号等于100

    于1 2 3 4 5 6 7 8 9将九个数字"+"要么"-"符号使得结果100,编程的所有组合. 注意:数字顺序不能改变 <pre name=" ...

  6. 使用X264编码yuv格式的视频帧使用ffmpeg解码h264视频帧

    前面一篇博客介绍在centos上搭建点击打开链接ffmpeg及x264开发环境.以下就来问个样例: 1.利用x264库将YUV格式视频文件编码为h264格式视频文件 2.利用ffmpeh库将h264格 ...

  7. C# winForm里窗体嵌套

    ShowAllPage sAllPage = new ShowAllPage();            sAllPage.FormBorderStyle = FormBorderStyle.None ...

  8. Java中Integer类的方法

    java.lang 类 Integer java.lang.Object java.lang.Number java.lang.Integer 全部已实现的接口: Serializable, Comp ...

  9. java实现线性链表结构

    package com.hephec.ds; public class LinkedList<T> { //定义一个内部类节点Node Node实例代表链表的节点 class Node{ ...

  10. 关于 cookie 使用中遇到的问题

    前段时间在一个项目中涉及到cookie的存取,于是打算封装一个 cookie 的CRUD .按理来说,这本身是一个很简单的问题,不注意的话简单的问题也有大坑. /** * Set or get coo ...