Openstack 网络知识资料详细介绍及总结

Openstack 网络知识资料总结:

Openstack 概念

我刚听说要去做 openstack 开发的时候,蛮激动的啊。虽然我不知道 openstack 是什么东西,但是我知道这个东西和云计算有关。云计算这东西,听着就高大上,各大互联网公司都有投人进去搞,所以大方向上是必须肯定的。于是我按捺不住了,想在自己的主机上部署 openstack,来体验下这个是什么东西。经过一顿折腾之后,终于在虚拟机里面用 devstack 把 openstack 给部署出来了(部署过程中,最坑的就是国内的防火墙)。

部署的过程,其实就是把一堆 Python 包安装到主机系统的过程。openstack 有一个 python 包叫做 Dashboard,这个东西提供了一个 Web 界面,从那里我真正体验到了 openstack 是个啥。在 Dashboard 上创建一台虚拟机的过程蛮有趣的,这个过程涉及到的步骤,很多都和现实中安装电脑很像。

Openstack Real Life
创建 ubuntu 镜像 使用 Ultraiso 刻录好一个 ubuntu 系统 的 U 盘
创建 provider 网络 叫电信的来给家里开通网络
创建 Instance 主机 买了一台主机,并用刚刚的 U 盘给它装好 Ubuntu 系统
启动 Instance 主机 把电信的网口插到主机网卡上

我在 Dashboard 创建了两台 Instance 主机,两台主机跑的好好的。就目前来说,这个效果和 VMware Workstation 软件就很像了,可以在一台物理机上,跑多虚拟主机。只不过 VMware Workstation 软件面向的是单台物理机,而 openstack 却可以 面对物理机集群 进行管理和虚拟化。当成百上千的物理机被 openstack 管理着,而终端使用用户只需要面对唯一的一个 Dashboard 界面,这个时候私有云的概念就体现出来了。

有了感性的认识后,再去 openstack 官网是什么定义自己的:

Open source software for creating private and public clouds.

OpenStack software controls large pools of compute, storage, and networking resources throughout a datacenter, managed through a dashboard or via the OpenStack API. OpenStack works with popular enterprise and open source technologies making it ideal for heterogeneous infrastructure.

Hundreds of the world's largest brands rely on OpenStack to run their businesses every day, reducing costs and helping them move faster. OpenStack has a strong ecosystem, and users seeking commercial support can choose from different OpenStack-powered products and services in the Marketplace.

The software is built by a thriving community of developers, in collaboration with users, and is designed in the open at our Summits.

OpenStack 软件控制整个数据中心的大型计算,存储和网络资源,用户可以通过 Dashboard 或 OpenStack API 进行管理。就我理解,Openstack 更像是一个操作系统,一个强大的云计算操作系统。

Openstack 网络概念

我前面通过 Dashboard 创建的两个 Instance 虚拟机,它们之间是可以互相 ping 通的,因为它们两是处于同一个二层网络的,都是直接链接到 Provider 网络。

| VM1 |       | VM2 |
|-------|       |-------|
  |           |
  | Eth(172.24.4.2)   | Eth(172.24.4.3)
____|______________________|___________
- - - - - - - - - - - - - - - - - - - - Provider (172.24.4.0/24)

上面的拓扑其实已经涵盖了 openstack 中比较核心的三个网络概念:Network,Subnet, Port 。我们把这三个概念和上面的网络拓扑映射一下:

  1. “Provider” 这个名字,对应的就是 openstack 的 Network
  2. “172.24.4.0/24” 这个 IP 地址池,对应的就是 openstack 的 Subnet
  3. “Eth(172.24.4.2)” 这个 Instance 网卡,对应的就是 openstack 的 Port

其实我们还可以让 VM1 和 VM2 不在一个二层网络上,只不过这个时候,就需要引入 openstack 网络的另一核心概念 Router。 

 | VM2 |
            |-------|
              |
              | Eth(10.0.0.2)
           _______|_______
           - - - - - - - - Private (10.0.0.0/24)
              |
              | If(10.0.0.1)
              |
 | VM1 |       | Router1 |
 |-------|       |----------|
  |            |
  | Eth(172.24.4.2)    | Gw(172.24.4.3)
____|_______________________|__________
- - - - - - - - - - - - - - - - - - - - Provider (172.24.4.0/24)

这样一来 VM1 和 VM2 就不在同一个二层网络了,两个 Instance 虚拟机的网络环境也就实现了隔离。从拓扑上可以看出,这里多出了三样新部件:

  1. Router: 也就是拓扑中的 Router1
  2. Router-Gateway: 也就是拓扑中的 Gw(172.24.4.3),主要是为了 Router1 后面的虚拟机访问 Provider 网络。
  3. Router-Interface: 也就是拓扑中的 If(10.0.0.1),让 Router1 作为 Private 网络的 L3 网关。

上面两个网络拓扑,就覆盖 openstack 网络的核心概念了,当然仅仅有以上四个核心概念,是没办法适应实际 Data Center 复杂的网络拓扑需求的,为此有了其他虚拟网络概念如:FloatingIP, SecurityGroup, ServiceFunctionChain 等。

Openstack 网络组件介绍

Openstack 包含了非常多的子项目,目前几个核心的子项目如下:

  • Nova: 提供 compute 计算能力(虚拟机)
  • Neutron: 提供 networking 网络连接能力
  • Glance: 提供 image 镜像存储能力
  • Keystone: 提供 identity 身份认证能力
  • Cinder / Swift: 提供 storage 存储能力

网络虚拟化是块发展比较快的领域,到目前 Neutron 已经很好的支持 L2, L3, HA, SecurityGroup, LBaas, FWaas, VPNaas, DVR 等等。只不过我看过一些文章,里面说到 Neutron 的发展方向应该是,专注于 API 标准的定制。让各个网络功能从 Neutron 中剥离出去,让各个网络设备商的 SDN Controller Plugin 去聚焦和实现这部分功能。Neutron 需要设计出一组良好的北向接口规范,让自己成为一个纯粹的 API Server(这些观点的正确性,我也不确定,只不过换个高度看事情,未尝不是件好事)。

Neutron 里面有两个框架比较有趣, ML2 框架和 Extension Plugin框架 。ML2 是对 L2 网络功能的一次抽象,这让不同的 L2 虚拟化技术(LinuxBridge, OpenvSwitch…)只需统一对接到 ML2 即可。而 Extension Plugin 为一些在开发中的 SDN Controler or Network Function Virtual,能够方便的对接到 Neutron 中,进行部署测试,待其孵化成熟之后,再合并到 Neutron 项目中。我在主机上部署的 Openstack (Neutron + OVN),其实就是充分利用了 Neutron ML2 和 ExtensionPlugin 才得以实现,从这点上也看出了 Neutron 的灵活性非常强大。

上面简单介绍了 Neutron,现在说说 OVN (Open Virtual Network for OpenvSwitch),它是 OpenvSwitch 团队自己孵化 OVS 的子项目,目的是为了让 OVS 更加友好的支持虚拟网络,容我引用 IBM 的一篇博文的精彩观点:

Pick up from 如何借助 OVN 来提高 OVS 在云计算环境中的性能

众所周知,OpenvSwitch 以其丰富的功能和不错的性能,已经成为 Openstack 部署中最受欢迎的虚拟交换机。由于 Openstack Neutron 的架构引入了一些性能问题,比如 neutron-server 要与非常多的 agent 通信,RPC 就是一个性能瓶颈,还有 neutron 里面用到非常多的 namespace,namespace 资源有限而且系统开销比较大,这也是一个性能瓶颈。OVS 社区觉得从长远来看,Neutron 应该让一个其它的项目来做虚拟网络的控制平面,Neutron 只需要提供 API 的处理,于是 OVS 社区推出了 OVN(Open Virtual Network)这个项目,OVN 是 OVS 的控制平面,它给 OVS 增加了对虚拟网络的原生支持,大大提高了 OVS 在实际应用环境中的性能和规模。

如果想用 OVN 和 Neutron 进行集成使用,还需要 Networking-ovn Plugin 的帮助。Networking-ovn 是个比较简单的 Plugin,它的工作是将 Neutron 中对虚拟网络的定义,翻译到 OVN 对虚拟网络的定义中去。它的简单,来源于优美的 Neutron API 接口设计,和精简的 OVN 北向数据库表设计。

|   OPENSTACK   |
|           |
|   (neutron)   | API Server
-----------------------
     | |
     v v
---> networing-ovn <--- Service and Plugin
     | |
     v v
   |----------|
   |  OVN  |    SDN Controller for OpenvSwitch
   |----------|
     |
     v
----------------------
|  OpenvSwitch   |  DataPlan support for Virtual Networking Function
|          |

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Fuel快速安装OpenStack图文教程

    1 介绍 1.1关于 Mirantis Mirantis,一家很牛逼的openstack服务集成商,他是社区贡献排名前5名中唯一一个靠软件和服务吃饭的公司(其他分别是Red Hat, HP, IBM, Rackspace).相对于其他几个社区发行版,Fuel的版本节奏很快,平均每两个月就能提供一个相对稳定的社区版. 1.2Fuel 是什么? Fuel 是一个为openstack 端到端"一键部署"设计的工具,其功能含盖自动的PXE方式的操作系统安装,DHCP服务,Orchestrati

  • 详解OpenStack云平台的网络模式及其工作机制

    网络,是OpenStack的部署中最容易出问题的,也是其结构中难以理清的部分.经常收到关于OneStack部署网络方面问题和OpenStack网络结构问题的邮件.下面根据自己的理解,谈一谈OpenStack的虚拟网络.网络拓扑和网络流.个人理解有限,仅抛砖引玉,有问题请指正,谢谢. 一.相关概念和要点(可跳过) 1.OpenStack中nova-network的作用 OpenStack平台中有两种类型的物理节点,控制节点和计算节点.控制节点包括网络控制.调度管理.api服务.存储卷管理.数据库管

  • 简单谈谈OpenStack中的网络隔离

    前言 最近,关于xx公有云的用户网络,由于隔离问题引发安全讨论,大家顿时对啥"经典网络"."VPC"等概念兴趣大增,大家的热议中多次提到AWS的VPC,亚马逊的AWS怎么搞的,我们不得而知,但是我们可以聊聊OpenStack的,毕竟它一直在模仿AWS嘛: "隔离"啥 首先,我们先搞清楚,所谓"隔离",到底是在"隔"什么: 我们知道,计算机网络,是分层实现的,不同协议工作在不同层,这些层的设计.制定都有国际标

  • CentOS系统中一键安装Openstack图文教程

    前言 首先找到一个国外的网站, http://openstack.redhat.com/Main_Page,进入到quickstart页面中 简单翻译如下: 用到的工具是一个被成为RDO的东东, 能够在基于RHEL内核的linux系统,如RedHat,CentOS,Scientific Linux下,快速实现三步安装.  一:安装RDO软件 sudo yum install -y http://rdo.fedorapeople.org/rdo-release.rpm 二:安装一个叫packsta

  • 一步一步教你安装openstack(图文)

    openstack,安装的门槛比较高,而且相当麻烦,很多的安装文档作者省了不少安装步骤.这对初学的人带来了很大的麻烦,也许作者轻易节省一步,就会创成后面的安装失败.而且初学者由于对openstack不是很了解,错误无法排查,因此很多人都在中途放弃对openstack的学习.其实有一个安装工具可以快速的安装openstack,不需要了解openstack各个组件的之间的关系,只需鼠标轻轻一点,就可以完成对openstack的安装:而且还有诸多功能,如对openstack健康检查,查看节点日志等.

  • Openstack 网络知识资料详细介绍及总结

    Openstack 网络知识资料总结: Openstack 概念 我刚听说要去做 openstack 开发的时候,蛮激动的啊.虽然我不知道 openstack 是什么东西,但是我知道这个东西和云计算有关.云计算这东西,听着就高大上,各大互联网公司都有投人进去搞,所以大方向上是必须肯定的.于是我按捺不住了,想在自己的主机上部署 openstack,来体验下这个是什么东西.经过一顿折腾之后,终于在虚拟机里面用 devstack 把 openstack 给部署出来了(部署过程中,最坑的就是国内的防火墙

  • SQL Server 日期相关资料详细介绍

    一.日期类型: 对于SQL Server 2008 来说(因为2000甚至2005已经稍微有被淘汰的迹象,所以在此不作过多说明,加上自己工作使用的是2008R2.所以不保证08以前的能用),日期类型有: 数据类型 格式 范围 精确度 存储大小(以字节为单位) 用户定义的秒的小数精度 时区偏移量 time hh:mm:ss[. nnnnnnn] 00:00:00.0000000 到 23:59:59.9999999 100 纳秒 3 到 5 是 否 date YYYY-MM-DD 0001-01-

  • OpenStack之日志详细介绍

    OpenStack日志                 最近做项目用到OpenStack,由于刚刚开始使用,有很多错误,然后查询日志,抽空把日志系统的资料整理下来,大家可以看下. 日志对于一个稳定的系统来说相当重要,对于OpenStack这样一个大型的系统,日志当然也是必不可少,理解Openstack系统的日志对于保证OpenStack环境稳定非常重要.对于出现系统错误,查看日志是一个很好的习惯. OpenStack通过生成大量日志信息来帮助排查系统安装运行期间出现的问题,接下来介绍几个常见服务

  • VMware网络连接模式(桥接、NAT以及仅主机模式的详细介绍和区别)

    在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥接模式.NAT模式.仅主机模式.自定义网络连接模式.那么这几种网络连接模式都各自有什么主要用途,它们之间又有哪些区别呢? 磨刀不误砍柴工,为了更好地使用虚拟机,了解这几种连接模式的主要用途以及它们之间的区别是非常有必要的.在这里,我们就以下面的网络连接示意图为例来进行相关介绍. 在VMware中,虚

  • Centos7 网络配置详细介绍

    Centos7 网路配置详细介绍 1.查看当前网卡信息 [root@localhost ~]# nmcli connection show NAME UUID TYPE DEVICE enp0s3 5d58d8cc-8caf-458b-a672-ed0cdf58292e 802-3-ethernet --- CentOS7中对网上的命名规则有所变更,具体规则如下: eno1 :代表由主板 BIOS 內建的网卡 ens1 :代表由主板 BIOS 內建的 PCI-E 界面的网卡 enp2s0 :代表

  • Docker 网络模式(四种)详细介绍

    Docker 网络模式 本文首先介绍了Docker自身的4种网络工作方式, Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理.然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分.因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求. 四种网络模式 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: · host模式,使用--net=h

  • Openstack 使用migrate进行数据库升级实现方案详细介绍

    Openstack 使用migrate进行数据库升级实现方案详细介绍 OpenStack中随着版本的切换,新版本加入一些数据库表或者增加字段等是必然的事情,如何比较容易的进行这些数据库升级的适配和管理,这里就要用到oslo_db中的migrate了,这里以为M版本的heat为例,讲解一下migrate管理db的原理. 我们使用migrate需要用到的主要包含以下两部分:1.versions里面的为版本号+数据库适配脚本:2.migrate.cfg为migrate需要用到的配置文件,两部分的命名是

  • CentOS 一键安装Openstack详细介绍

     CentOS 一键安装Openstack 最近再看Openstack相关知识,一直想试试安装一下,可是参考了很多资料,并不如人意.由于一直用的Linux版本为CentOS,大部分Openstack安装都要求在Ubuntu上进行.我也不知到什么原因,并不喜欢Ubuntu,可能是觉得太花哨了,而且总提示更新什么的,好了,废话不多说. 找到一个网站,国外的,  http://openstack.redhat.com/Main_Page,进入到quickstart页面中,简单翻译如下: 用到的工具是一

  • Docker自定义网络详细介绍

    目录 Docker自定义网络 一.自定义网络介绍 二.创建自定义网络 Docker自定义网络 一.自定义网络介绍 1.介绍 常规docker容器启动,可以用–link,进行容器网络绑定,但是一旦容器多了之后就会非常麻烦,所以要自定义一个docker网络,小白推荐使用–link命令 自定义网络修复了docker0的容器之间无法用容器名相互ping通的问题,只能使用ip才能ping通,但是我们自定义的网络是可以用ip或者容器名相互ping通的 2.命令 自定义网络命令 说明 docker netwo

  • Linux系统配置网络详细介绍

    上一篇文章已经安装好了虚拟机和Linux系统了,这次就来简单的说一下LInux系统的网络配置吧 简单介绍Linux的文件夹 bin:存放的是用户的命令 sbin:存放的是root用户的命令 etc:存放的是当前系统的环境配置文件 home:存放用户的 root:存放root用户的 opt:是可以用来存放软件的 usr:其子文件夹-->local也是可以用来存放用户需要的软件的 tmp:表示临时,通常存放日志文件 可视化配置网络 首先得查看一下自己的Linux系统是否链接网络,大家可以打开Linu

随机推荐