关于OpenStack  

  OpenStack它是 Rackspace Cloud 和 NASA 负责的一个开源基础架构即服务的云计算项目。

  OpenStack 是一个由开发者和云计算技术人员的全球协作开发的面向公共和私有云的标准云操作系统,是在 Apache 许可条款下发布的免费开源软件。云服务提供者、企业和政府组织均可使用这个免费的 Apache 许可的软件来构建可大规模伸缩的云环境。

  OpenStack采用6个月一个开发周期的方式,每个代号均为首字母按字典顺序排到的某个城市名,依次是Austin、Bexar、Cactus、Diablo、Essex、Folsom、Grizzly、Havana和Icehouse。

起初OpenStack 包含六个核心软件项目:

  • Cloud Compute-Nova
  • Cloud Storage-Swift
  • Image Service-Glance(交付和注册)
  • Identity Service-Keystone
  • Dashboard-Horizon
  • Network Connectivity-Quantum

发展到九个核心软件项目:

  • 计算 (Compute) - Nova
  • 网络和地址管理 - Neutron
  • 对象存储 (Object) - Swift
  • 块存储 (Block) - Cinder
  • 身份 (Identity) - keystone
  • 镜像 (Image) - Glance
  • UI 界面 (Dashboard) - Horizon
  • 测量 (Metering) - Ceilometer
  • 编配 (Orchestration) – Heat

OpenStack的网络

  Neutron 之前世今生

  OpenStack 网络服务,现已由之前的 Quantum 改名为 Neutron。Neutron 是 OpenStack 核心项目之一,提供云计算环境下的虚拟网络功能。OpenStack Havana 版本的 Release Note 描述了 Neutron 新增加的功能:

  1. Multi-Vendor-Support:同时支持多种物理网络类型,支持 Linux Bridge、Hyper-V 和 OVS bridge 计算节点共存;
  2. Neutron-Fwaas:支持防火墙服务;
  3. VPNaas:支持节点间 VPN 服务;
  4. More-Vendors:更多的网络设备支持和开源 SDN 实现完善和提高,新增加了 ML2 (The Modular Layer2) 插件。

  OpenStack nova-network 网络模型

  在 OpenStack 网络组件没有独立出来之前,OpenStack 最初的 nova-network 网络模型,如图 :

  

  单一平面网络

  单一平面网络的缺点:

  1. 存在单一网络瓶颈,缺乏可伸缩性。
  2. 缺乏合适的多租户隔离。

  OpenStack Neutron 网络模型  

  OpenStack nova-network 独立成为单独的组件 Neutron 后,形象的网络模型的多平面网络、混合平面私有网络。

  

多平面网络

混合平面私有网络

通过私有网络实现运营商路由功能

 

通过私有网络实现每个租户创建自己专属的网络区段

  Neutron 网络创建

  Neutron 网络目的是为 OpenStack 云更灵活地划分物理网络,在多租户环境下提供给每个租户独立的网络环境。另外,Neutron 提供 API 来实现这种目标。Neutron 中用户可以创建自己的网络对象,如果要和物理环境下的概念映射的话,这个网络对象相当于一个巨大的交换机,可以拥有无限多个动态可创建和销毁的虚拟端口。 在 Horizon 上创建 Neutron 网络过程如下:

  1. 首先管理员拿到一组可以在互联网上寻址的 IP 地址,并且创建一个外部网络和子网。
  2. 租户创建一个网络和子网。
  3. 租户创建一个路由器并且连接租户子网和外部网络。
  4. 租户创建虚拟机。

  OpenStack 网络类型

  一个标准的 OpenStack 网络设置有 4 个不同的物理数据中心网络:

  • 管理网络:用于 OpenStack 各组件之间的内部通信。
  • 数据网络:用于云部署中虚拟数据之间的通信。
  • 外部网络:公共网络,外部或 internet 可以访问的网络。
  • API 网络:暴露所有的 OpenStack APIs,包括 OpenStack 网络 API 给租户们。

OpenStack 网络类型

  Neutron 服务网络管理的三种模式

  •   Flat 模式

Flat 模式和 FlatDHCP 模式其实区别不大,都是基于网桥网络,只是 FLat 模式需要管理员手动配置(包括配置网桥和外部的 DHCP 设备)。

Flat 网络拓扑

  • FlatDHCP 模式

  这种模式下与 Flat 模式不同的地方在于有一个 DHCP 进程,每一个运行 nova-network 进程的节点(网络控制节点/nove-network 主机)就是一个单独的网络。Nova 会在 nova-network 主机建立网桥(默认名称 br100,配置项 flat_network_bridge=br100),并给该网桥指定该网络的网关 IP,同时 Nova 在网桥处起一个 DHCP 进程,最后,会建立 iptables 规则(SNAT/DNAT)使虚拟机能够与外界通信,同时与一个 metadata 服务器通信以取得 cloud 内的信息。
  计算节点负责创建对应节点的网桥,此时的计算节点网卡可以不需要 IP 地址,因为网桥把虚拟机与 nove-network 主机连接在一个逻辑网络内。虚拟机启动时会发送 dhcpdiscover 以获取 IP 地址。虚拟机通往外界的数据都要通过 nova-network 主机,DHCP 在网桥处监听,分配 fixed_range 指定的 IP 段。如图 。

  这种部署方式的缺点----单节点故障、无二层隔离(即所有的虚拟机都在一个广播域)。

FlatDHCP 网络拓扑

  VLAN 模式
  VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。VLAN 是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术。
  VLAN 模式与 Flat 模式的区别
  在 Flat 模式下,管理员的工作流程应该是这样的:

  1. 为所有租户创建一个 IP 池:

    nova-manage network create --fixed_range_v4=10.0.0.0/ –label=public
  2. 创建租户
  3. 租户创建虚拟机,为虚拟机分配 IP 池中的可用 IP

  DB 中虚拟机信息可能如下图,从图中我们看到 2 个虚拟机处于同一网段。

  

  在 VLAN 模式下流程如下:

  1. 创建新的租户,并记下租户的标识
  2. 为该租户创建独占的 fixed_ip 段:
    nova-manage network create --fixed_range_v4=10.0.1.0/ --vlan=  --project_id="tenantID"
  3. 租户创建虚拟机,从租户的私有 IP 段内分配 IP 给虚拟机

  因此,与 Flat 模式相比,VLAN 模式为网络增加了:将网络与租户关联和为网络分配一个 VLAN 号。

  Neutron总结

  OpenStack 虚拟网络 Neutron 把部分传统网络管理的功能推到了租户方,租户通过它可以创建一个自己专属的虚拟网络及其子网,创建路由器等等,在虚拟网络功能的帮助下,基础物理网络就可以向外提供额外的网络服务了,比如租户完全可以创建一个属于自己的类似于数据中心网络的虚拟网络。Neutron 提供了比较完善的多租户环境下的虚拟网络模型以及 API。像部署物理网络一样,使用 Neutron 创建虚拟网络时也需要做一些基本的规划和设计。

 参考:

[1] 龚永生.OpenStack网络.http://www.ibm.com/developerworks/cn/cloud/library/cl-openstack-network/

[2] 陈海洋.OpenStack 网络:Neutron 初探.http://www.ibm.com/developerworks/cn/cloud/library/1402_chenhy_openstacknetwork/

[3] OpenStack History.http://www.tiki-toki.com/timeline/entry/138134/OpenStack-History

[4] Seeing the fnords.An history of OpenStack open source project governance.http://www.tuicool.com/articles/raYrqi

[5] 51CTO调研中心.编年史:详细了解OpenStack的发展历程.http://news.watchstor.com/industry-138341.htm

OpenStack云计算(一)——OpenStack 网络的更多相关文章

  1. 云计算与 OpenStack - 每天5分钟玩转 OpenStack(14)

    “云计算” 算是近年来最热的词了.现在 IT 行业见面不说这三个字您都不好意思跟人家打招呼. 对于云计算,学术界有各种定义,大家有兴趣可以百度一下. CloudMan 这里主要想从技术的角度谈谈对云计 ...

  2. OpenStack云计算快速入门之二:OpenStack安装与配置

    原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...

  3. OpenStack云计算快速入门之一:OpenStack及其构成简介

    原文:http://blog.chinaunix.net/uid-22414998-id-3263551.html OpenStack云计算快速入门(1) 该教程基于Ubuntu12.04版,它将帮助 ...

  4. 云计算与OpenStack(虚拟机Nova篇)

    <云计算与OpenStack(虚拟机Nova篇)> 基本信息 作者: 伯龙 程志鹏 张杰 出版社:电子工业出版社 ISBN:9787121201202 上架时间:2013-8-5 出版日期 ...

  5. 云计算与 OpenStack

    “云计算” 算是近年来最热的词了.现在 IT 行业见面不说这三个字您都不好意思跟人家打招呼. 对于云计算,学术界有各种定义,大家有兴趣可以百度一下. CloudMan 这里主要想从技术的角度谈谈对云计 ...

  6. OpenStack云计算简介

    1. 云计算的发展 云计算是IT技术不断发展的产物. 要理解云计算,需要对IT系统架构的发展过程有所认识. IT系统架构的发展到目前为止大致可以分为3个阶段: 1> 物理机架构 这一阶段,应用部 ...

  7. O014、云计算与OpenStack

    参考https://www.cnblogs.com/CloudMan6/p/5334760.html   云计算 基本概念   所有的新事物都不是突然冒出来的,都有前世和今生.云计算也是IT技术不断发 ...

  8. OpenStack (云计算与openstck简介)

    云计算 什么是云计算 云计算是一种按使用量付费的模式,这种模式提供可用的,便捷的,按需的网络访问,通过互联网进入可配置的计算资源共享池(资源包括,计算,存储,应用软件和服务) 云计算的特征 易于管理: ...

  9. 6.openstack之mitaka搭建网络节点

    部署网络服务 一:控制节点配置 1.建库建用户 mysql -u root -p CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neutron.* ...

随机推荐

  1. 树莓派进阶之路 (003) - Raspberry Pi(树莓派)国内软件源

    树莓派自带的软件源是 deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi 由于网站在国外 ...

  2. 【Android】Android如何实现手机震动

    实现手机震动其实很简单,手机震动使用是Vibrator类,然后震动也是需要权限的,在使用之前在AndroidManifest.xml文件中添加 <uses-permission android: ...

  3. 【HTML】如何判断当前浏览器是否是IE

    HTML里: HTML代码中,在编写网页代码时,各种浏览器的兼容性是个必须考虑的问题,有些时候无法找到适合所有浏览器的写法,就只能写根据浏览器种类区别的代码,这时就要用到判断代码了.在HTML代码中, ...

  4. MySQL -- Fast Index Creation

    1.fast index creation简介 MySQL5.5之后,对innodb表创建或删除辅助索引的效率提升了很多,即增加了新的功能fast index creation.因为MySQL5.5之 ...

  5. Linux内核同步:自旋锁

    linux内核--自旋锁的理解 自旋锁:如果内核配置为SMP系统,自旋锁就按SMP系统上的要求来实现真正的自旋等待,但是对于UP系统,自旋锁仅做抢占和中断操作,没有实现真正的“自旋”.如果配置了CON ...

  6. 反射式光电开关QRE1113

    The QRE1113 is a small IR reflectance sensor. This sensor is often used in line following robots bec ...

  7. [转]21分钟 MySQL 入门教程

    目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 ...

  8. 在 Visual Studio 2017 中找回消失的“在浏览器中查看”命令

    不知为何,在新安装 Visual Studio 2017 后,发现所有 Web 项目上右键菜单的"在浏览器中查看"命令消失了,只能以调试模式启动网站,非常别扭. 最后在 Stack ...

  9. 云服务器 nginx + tomcat 部署集群 配置

    nginx.conf #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log not ...

  10. 【Unity】11.1 角色控制器 (Character Controller)

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 角色控制器(Character Controller)主要用于对第三人称或第一人称游戏主角的控制.如果要创建类人角色,可 ...