文章目录

  • 一,OpenStack概述
    • 1.云计算概述
    • 2.云计算服务模型
    • 3.OpenStack概述
    • 4.OpenStack是什么?
    • 5.OpenStack不是什么?
    • 6.OpenStack常见的8个核心项目
    • 7.OpenStack优势
  • 二,OpenStack架构
    • 1.概述
    • 2.OpenStack概念架构
    • 3.OpenStack逻辑架构
    • 4.OpenStack节点类型
      • OpenStack-ironic裸金属
  • 三,OpenStack常见的核心项目
    • 1.keystone(用户认证服务)
    • 2.nova(计算服务)
    • 3.Cinder(块存储服务)
    • 4.Swift(对象存储服务)
    • 5.Glance(镜像服务)
    • 6.Neutron(网络服务)
    • 7.Ceilometer(计量服务)

一,OpenStack概述

前言

OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。

OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台

1.云计算概述

概念

  • 狭义的云计算是指IT基础设施的交付和使用模式
  • 广义的云计算是指服务的交付和使用模式

云计算资源

  • 网络资源
  • 存储资源
  • 计算资源

2.云计算服务模型

laaS(基础架构即服务)

  • 提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等
  • 面向对象一般时IT管理人员

用户能从中申请到硬件或虚拟硬件,包括裸机或虚拟机,然后在上边安装操作系统或其他应用程序

OpenStack就是一种laaS

PaaS(平台及服务)

  • 把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
  • 面向对象一般是开发人员

用户能从中申请到一个安装了操作系统以及支撑应用程序运行所需要的运行库等软件的物理机或虚拟机,然后在上边安装其他应用程序,但不能修改已经预装好的操作系统和运行环境

SaaS(软件即服务)

  • 直接通过互联网为用户提供软件和应用程序等服务
  • 面向对象一般是普通用户

用户可以通过网络以租赁的方式来使用一些软件,而不是购买,比较常见的模式是提供一组账号密码

3.OpenStack概述

OpenStack是一个云操作系统,它控制整个数据中心的大型计算、存储和网络资源池,所有这些都是通过一个仪表板进行管理的,仪表板为管理员提供控制,同时授权用户通过web界面提供资源。

  • NASA(美国国家航空航天局)和Rackspace共同发起
  • 以Apache许可证授权的自由软件和开放源代码项目
  • 为公有云即私有云的建设与管理提供软件的开源项目
  • 覆盖了网络、虚拟化、操作系统、服务器等各个方面

4.OpenStack是什么?

目前最流行的开源操作系统内核。

  1. 资源抽象

    OpenStack将各类硬件资源,通过虚拟化与软件定义的方式,抽象成资源池。

  2. 资源分配与负载调度

    OpenStack根据管理员/用户的需求,将资源池中的资源分配给不同的用户,承载不同的应用。

  3. 应用声明周期管理

    OpenStack已经可以提供初步的应用部署/撤除、自动规模调整能力。

  4. 系统运维

    OpenStack已经可以提供一定的系统监控能力。

  5. 人机交互

    OpenStack提供人机接口,外界可以通过API、命令行或图形界面的方式参与OpenStack进行交互。

5.OpenStack不是什么?

OpenStack不是虚拟化:

  • OpenStack的架构定位与技术范畴

    1. OpenStack只是系统的控制面。
    2. OpenStack不包括系统的数据面组件,如hypervisor、存储和网络设备等。
  • 云和虚拟化有着关键的区别

    云计算:IT能力服务化; 按需使用,按量计费; 多租户隔离;

    虚拟化:环境隔离,资源复用; 降低隔离损耗,提升运行效率; 提供高级虚拟化特性。

    虚拟化是实现云计算的技术支撑手段之一,但并非云计算的核心关注点。

OpenStack不是云:

  • OpenStack只是构建云的关键组件。

    内核、骨干、框架、总线。

  • 为了构建一个云,还需要许多东西:

6.OpenStack常见的8个核心项目

服务 项目名称 描述
Compute(计算服务) Nova 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化计算(红帽默认为KVM),支持横向扩展
Network(网络服务) Neutron 负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响
Identity(身份认证服务) Keystone 类似于LDAP服务,对用户、租户和角色、服务进行认证与授权,且支持认证机制
Dashboard(控制面板服务) Horizon 提供一个Web管理界面,与OpenStack底层服务进行交互
Image Service(镜像服务) Glance 提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像
Block Storage(块存储服务) Cinder 负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储
Object Storage(对象存储服务) Swift 为OpenStack提供基于云的弹性存储,支持集群无单点故障
Telemetry(计量服务) Ceilometer 用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径

7.OpenStack优势

OpenStack 在控制性、 兼容性、 可扩展性、 灵活性方面具备有优势, 它可能成为云计算领域的行业标准。

控制性:完全开源的平台,提供API接口,方便与第三方技术集成

兼容性:OpenStack兼容其他共有云,方便用户进行数据迁移

可扩展性:模块化设计,可以通过横向扩展,增加节点、添加资源

灵活性:根据自己的需要建立相应基础设施、增加集群规模

行业标准:众多IT领军企业已经加入到OpenStack项目

二,OpenStack架构

1.概述

学习OpenStack的部署和运维之前,应当熟悉其架构和运行机制,OpenStack作为开源、可扩展、富有弹性的云操作系统,其设计基本原则如下:

  • 按照不同的功能和通用性划分不同项目,拆分子系统
  • 按照逻辑计划、规范子系统之间的通信
  • 通过分层设计整个系统架构
  • 不同的功能子系统间提供统一的API接口

2.OpenStack概念架构

  • OpenStack由多种服务组成,每种服务具有独立的命名。在整个OpenStack架构中,Keystone提供认证服务,接收来自用户和服务的认证请求,并对其身份进行认证。各个服务之间通过公用的API接口进行交互。大部分服务均包含一个API进程,用于侦听API请求,根据服务的性质选择处理请求或转发请求。服务进程之间的通讯通过消息队列实现,如AMQP。
  • 在部署完成的云系统平台上,用户通过Dashboard(控制面板服务)或RestaRt方式在经Keystone模块认证授权后,可以执行创建虚拟机服务。通过Nova模块创建虚拟机实例,Nova调用Glance模块提供的镜像服务,然后调用Neutron模块提供网络服务。根据需要可以选择给虚拟机增加存储卷,卷功能由Cinder模块提供服务。整个过程在Ceilometer模块的资源监控下完成。同时Cinder提供的Volume和Glance提供的镜像可以通过Swift对象存储机制进行保存

综上所述,可以看到OpenStack云平台服务的提供主要是依靠Nova、Glance、Cinder和Neutron四个核心模块完成,四个辅助Horizen、Ceilometer、Keystone、Swift提供的访问、监控、权限和对象存储功能。

3.OpenStack逻辑架构

  • 全局架构来看:OpenStack包括相互独立的服务组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。所以,API即是每个服务内部和外部的交界处,隔离了内外。
  • 服务之间交互过程:每个服务又由若干组件组成,包含多个进程。每个服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,( 预处理就是将请求暴露出来的API接口,给keystone进行认证,如果认证通过,则放入队列等待被处理。) 然后将它们传送到自己服务后端的其他组件,对请求进行处理,而不是API进程去处理。也就是说除了认证服务,实际工作都是由具体的进程完成的。
  • 服务内各个进程之间的通信:使用AMQP消息代理。服务的状态存储在数据库中。

消息队列:常用的三种类型,包括rabbitmq、 rocketmq、kafka,是两个独立的服务之间,消息传递的载体,解决消息在传输是请求的高并发问题,会以容器的方式,存储消息列表(包括请求、交互、报文),划分重要等级放入队列中,逐个处理,处理完的会自动删除。

OpenStack组件通信关系

  • 基于AMQP协议的通信
    用于每个项目内部各个组件之间的通信。

  • 基于SQL的通信
    用于各个项目内部的数据库通信。

  • 基于HTTP协议进行通信
    通过各项目的API建立的通信关系,API都是RESTful Web API。

  • 通过Native API实现通信
    OpenStack各组件和第三方软硬件之间的通信。

4.OpenStack节点类型

控制节点

  • 顾名思义就是OpenStack中实现数据中心控制的节点,管理 OpenStack的所有服务组件,所有组件不管在哪里,都需要在控制节点上完成类似注册的工作
  • 控制节点必须安装三种类型的软件
    • 第一种

      • 控制接节点上必须安装的是一些相对于 Openstack服务来说的底层的软件,这些底层的软件需要为openstock组件来提供服务,这些软件有DB软件,消息队列软件, Memorycache和Etcd等
    • 第二种
      • 除了底层软件之外,控制节点上必须安装三个 OpenStack的核心组件
      • Keystone和glance是完整的安装在控制节点上的,Nova安装了一部分,Nova的安装是为了节点上的计算服务
      • Glance服务是可以控制节点上剥离的,一般 Glance占用资源小。一般大家都安装在控制节点上的
      • 控制节点是可以安装 Nova computed的,但是生产环境是不会这么干的
    • 第三种
      • 除了底层服务软件和核心组件之外,OpenStack还支持其他可选的组件,比如你的集群中有存储接口,那么在 OpenStack上需要安装管理存储节点和对应的服务组件等等,类似核心组件Nova的套路

网络节点

  • 网络节点只有Neutron组件,网络节点上的neutron安装core plugin(ML2)和service plugin(L3 service),具体的 Service Plugin可以根据你的需求选择

计算节点

  • 包含Nova部分组件和 Neutron部分组件Nova- compute,Neutron agent

存储节点

  • 安装存储组件的节点,一般有代表性的 Cinder(块存储)和 Swift(对象存储)

OpenStack-ironic裸金属

其实,OpenStack Ironic就是一个进行裸机部署安装的项目。所谓裸机,就是指没有配置操作系统的计算机。

从裸机到应用还需要进行以下操作:

  • (1)硬盘RAID、分区和格式化
  • (2)安装操作系统、驱动程序
  • (3)安装应用程序

ironic实现的功能,就是可以很方便的对指定的一台或多台裸机,执行以上一系列的操作。例如部署大数据群集需要同时部署多台物理机,就可以使用Ironic来实现。

  • Ironic可以实现硬件基础设施资源的快速交付

三,OpenStack常见的核心项目

1.keystone(用户认证服务)

keystone简介

  1. 提供身份验证、服务规则和服务令牌功能。
  2. 任何服务之间相互调用,都需要经过Keystone的身份验证。

keystone基本概念介绍

  1. User

    OpenStack最基本的用户。

    User即用户,他们代表可以通过keystone进行访问的人或程序。Users通过认证信息(credentials,如密码、API
    Keys等)进行验证。

  2. Project(Tenant)

    指分配给使用者的资源的集合。

    Tenant即租户,它是各个服务中的一些可以访问的资源集合。例如,在Nova中一个tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像存储,在Neutron中一个tenant可以是一些网络资源。Users默认的总是绑定到某些tenant上。

  3. Role

    Role即角色,Roles代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。Users可以被添加到任意一个全局的或租户的角色中。在全局的role中,用户的role权限作用于所有的租户,即可以对所有的租户执行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定的权限。

  4. Service

    Service即服务,如Nova、Glance、Swift。根据前三个概念(User,Tenant和Role)一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如何访问这个service,这里通常使用一些不同的名称表示不同的服务。

  5. Endpoint

    服务的URL路径,暴露出来的访问点。

    Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。因此,在keystone中包含一个endpoint模板,这个模板提供了所有存在的服务endpoints信息。一个endpoint template包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private和admin这三种权限。public url可以被全局访问,private url只能被局域网访问,admin url被从常规的访问中分离。

  6. Domain

    定义管理边界,可以包含多个project,user,role.

  7. Token

    Token是访问资源的钥匙。它是通过Keystone验证后的返回值,在之后的与其他服务交互中只需要携带Token值即可。每个Token都有一个有效期,Token只在有效期内是有效的。

  8. Policy

    OpenStack对User的验证除了OpenStack的身份验证以外,还需要鉴别User对某个Service是否有访问权限。Policy机制就是用来控制User对Tenant中资源(包括Services)的操作权限。对于Keystone service来说,Policy就是一个JSON文件,默认是/etc/keystone/policy.json。通过配置这个文件,Keystone Service实现了对User基于Role的权限管理。

  9. Credentials

    用于确认用户身份的凭证。

  10. Authentication

    确定用户身份的过程。

各种概念之间的关系解释:

  1. 租户下,管理着一堆用户(人,或程序)。
  2. 每个用户都有自己的credentials(凭证)用户名+密码或者用户名+APIkey,或其他凭证。
  3. 用户在访问其他资源(计算、存储)之前,需要用自己的credential去请求keystone服务,获得验证信息(主要是Token信息)和服务信息(服务目录和它们的endpoint)。
  4. 用户拿着Token信息,就可以去访问特点的资源了。

Keystone在OpenStack中的访问流程范例:

2.nova(计算服务)

Nova

  1. OpenStack云中的计算组织控制器。
  2. 管理OpenStack云中示例的生命周期。
  3. 管理计算资源资源、网络、认证所需的可扩展平台。

计算管理(codenamed “Nova”)基于用户需求为VM提供计算资源管理. 基于Python语言编写。

计算服务:计算节点–运行虚拟机的Hypervisor。

分布式控制器:负责处理器调度策略及API调用等。

Nova常用术语

  1. KVM

    内核虚拟化,OpenStack中默认的Hypersvisor。

  2. Qemu

    KVM的替补角色,没有KVM执行效率高,不支持虚拟化。

  3. Flavor

    新建虚拟机的配置列表,虚拟机模板。

  4. 安全组

    用来控制实例访问策略的容器。

  5. 安全组规则

    用来控制实例访问的具体策略。

Nova中的一些基本概念

  1. Nova-API

    对外统一提供标准化接口,接受和响应最终用户Compute
    API的请求,同时还实现与Openstack其他各逻辑模块的通讯与服务提供。

  2. Nova-Scheduler

    从队列上得到一个虚拟机实例请求并且决定它应该在哪里运行(使用多种过滤器或算法调度)。即负责调度将实例分配到具体的计算节点。

  3. Queue

    提供了一个守护进程之间传递消息的中央枢纽。消息队列系统作用还可以实现与Openstack其他各逻辑模块之间的通信建立连接枢纽。

  4. Nova-Datebase

    存储云基础设施的编译时和运行时的状态,从理论上讲,OpenStack Nova可以支持任何SQL-Alchemy支持的数据库,但是目前被广泛使用的数据库有sqlite3(只适用于测试和开发工作),MySQL和PostgreSQL。

  5. Nova-Compute

    主要是一个人工守护进程,它可以通过虚拟机管理程序的API(XenAPIfor XenServer/XCP,libvirtfor KVM or QEMU, VMwareAPIfor VMware等)来创建和终止虚拟机实例。支持多种虚拟化平台。

  6. Nova-conductor

    主要负责与Nova数据库进行交互。

  7. Nova还提供控制台的服务

    让最终用户通过代理服务器访问他们的虚拟实例的控制台。这涉及到多个守护进程(nova-console,nova-novncproxy、nova-xvpnvncproxy和nova-consoleauth)

Nova功能特效

  1. 实例的生命周期管理。
  2. 管理平台的计算资源。
  3. 统一风格的RestAPI。
  4. 支持透明的hypervisor。
  5. 各个模块通过消息队列实现交互。

3.Cinder(块存储服务)

Cinder简介

  1. 为虚拟机示例提供volume卷的块存储服务。
  2. 一个volume可以同时挂载到多个实例上。
  3. 共享的卷同时只能被一个示例进行写操作。

Cinder主要核心是对卷的管理,允许对卷、卷的类型、卷的快照进行处理。它并没有实现对块设备的管理和实际服务,而是为后端不同的存储结构提供了统一的接口,不同的块设备服务厂商在Cinder中实现其驱动支持以与OpenStack进行整合。

  • 块存储管理模块(codenamed “Cinder”)提供到虚拟机的永久性块存储卷.类似AWS的EBS块存储服务。

  • 多个卷可以被挂载到单一虚拟机实例,同时卷可以在虚拟机实例间移动,单个卷在同一时刻只能被挂载到一个虚拟机实例。

  • 块存储系统管理块设备到虚拟机的创建,挂载以及卸载。

  • 块设备卷完全与OpenstackCompute集成,并支持云用户在Dashboard中管理数据自己的存储。

  • 除了支持简单的Linux服务器本地存储之外,还支持众多的存储平台,包括Ceph,NetApp, Nexenta,SolidFire,Zadara。

  • 快照管理提供了强大的在块存储上实现数据备份的功能可以用来作为引导卷使用。

  • 块存储适合性能敏感性业务场景,例如数据库存储大规模可扩展的文件系统或服务器需要访问到块级裸设备存储。

Cinder的架构

  1. API Service:负责接受和处理 Rest请求,并将请求放入 RabbitMQ对列。
  2. Scheduler Service:处理任务队列的任务,并根据预定策略选择合适的 Volume Service 节点来执行任务。目前版本的Cinder仅仅提供了一个 Simple Scheduler, 该调度器选择卷数量最少的一个活跃节点来创建卷。
  3. Volume Service: 该服务运行在存储节点上,管理存储空间。每个存储节点都有一个 Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。为了支持不同类型和型号的存储,均通过Drivers的形式为Cinder的 Volume Service 提供相应的Cinder-Volume。
  4. Volume-Resize:在可用情况下调整卷大小。
  5. Volume-Backup-To-Ceph:现在卷可以备份到Ceph集群中。
  6. Volume-Migration:现在不同用户间可以透明地转移和交换卷。
  7. QoS:增加限速相关的元信息供Nova和其 Hypervisor使用。
  8. More-Drivers:更多的存储厂商加入和完善了自己的Cinder驱动。

4.Swift(对象存储服务)

Swift简介

  1. 高可用分布式式对象存储。
  2. 为nova组件提供虚拟化的镜像存储。
  3. 使用与互联网应用场景下非结构化的数据存储。
  • 分布式对象存储系统,类似于AWS的S3。
  • 通过采用基于标准化服务器的集群架构提供冗余,可扩展的对象存储。
  • 具有良好的扩展性,可以实现PB级别数据的存储。
  • 支持存储对象写入的多份拷贝,并且支持当拷贝丢失后的自我修复功能.确保数据的一致性。
  • 提供每GB高性价比的极佳的可用性和数据耐久性。
  • 支持原生的 OpenStack™ API 以及S3 compatible API。

Swift常用术语

  1. Account:

    用户定义的管理存储区域。

  2. Container:

    存储间隔,类似于文件夹或目录。

  3. Object:

    包含了基本的存储实体和它自身的元数据。

  4. Ring:

    记录了磁盘存储的实体名称和物理位置的映射关系。

Account包含Container,Container包含Object。

  1. Region:

    地域,从地理位置上划分的一个概念。

  2. Zone:

    可用区,按照独立的供网、供电基础设置划分。

  3. Node:

    节点,存储服务器。

  4. Disk:

    磁盘,物理服务器上的存储设备。

  5. Cluster:

    群集,为冗余考虑的部署架构。

Cluster包含Region,Region包含Zone;Zone包含Node。

Swift功能

Swift在物理结构上往往会存储对象的多个副本,通常按照物理位置的特点,将对象拷贝到不同的物理位置上,来保证数据的可靠性。

Swift数据模型

Swift采用层次数据模型,共设三层逻辑结构:Account/Container/Object(即账户/容器/对象),每层节点数均没有限制,可以任意扩展。数据存储基于NWR理论。

  1. Account对应租户,用于隔离。
  2. Container对应某个租户数据的存储区域。
  3. Object对应存储区域中具体的block。

Swift系统架构:

  • Swift 采用完全对称、面向资源的分布式系统架构设计。
  • 所有组件都可扩展,避免因单点失效而扩散并影响整个系统运转。
  • 通信方式采用非阻塞式I/O 模式,提高了系统吞吐和响应能力。


Swift系统组件:

  1. 代理服务(Proxy Server):对外提供对象服务API,会根据环的信息来查找服务地址并转发用户请求至相应的账户、容器或者对象服务;由于采用无状态的REST请求协议,可以进行横向扩展来均衡负载。
  2. 认证服务(Authentication Server):验证访问用户的身份信息,并获得一个对象访问令牌(Token),在一定的时间内会一直有效;验证访问令牌的有效性并缓存下来直至过期时间。
  3. 缓存服务(Cache Server):缓存的内容包括对象服务令牌,账户和容器的存在信息,但不会缓存对象本身的数据;缓存服务可采用Memcached集群,Swift会使用一致性散列算法来分配缓存地址。
  4. 账户服务(Account Server):提供账户元数据和统计信息,并维护所含容器列表的服务,每个账户的信息被存储在一个SQLite数据库中。
  5. 容器服务(Container Server):提供容器元数据和统计信息,并维护所含对象列表的服务,每个容器的信息也存储在一个SQLite数据库中。
  6. 对象服务(Object Server):提供对象元数据和内容服务,每个对象的内容会以文件的形式存储在文件系统中,元数据会作为文件属性来存储,建议采用支持扩展属性的XFS文件系统。
  7. 复制服务(Replicator):会检测本地分区副本和远程副本是否一致,具体是通过对比散列文件和高级水印来完成,发现不一致时会采用推式(Push)更新远程副本,例如对象复制服务会使用远程文件拷贝工具rsync来同步;另外一个任务是确保被标记删除的对象从文件系统中移除。
  8. 更新服务(Updater):当对象由于高负载的原因而无法立即更新时,任务将会被序列化到在本地文件系统中进行排队,以便服务恢复后进行异步更新;例如成功创建对象后容器服务器没有及时更新对象列表,这个时候容器的更新操作就会进入排队中,更新服务会在系统恢复正常后扫描队列并进行相应的更新处理。
  9. 审计服务(Auditor):检查对象,容器和账户的完整性,如果发现比特级的错误,文件将被隔离,并复制其他的副本以覆盖本地损坏的副本;其他类型的错误会被记录到日志中。
  10. 账户清理服务(Account Reaper):移除被标记为删除的账户,删除其所包含的所有容器和对象。

5.Glance(镜像服务)

Glance简介

  1. 为Nova提供镜像服务。
  2. 通常不负责镜像的本地存储。
  3. 实现对镜像的管理。

Glance是OpenStack镜像服务,用来注册、登陆和检索虚拟机镜像。Glance服务提供了一个REST API,使你能够查询虚拟机镜像元数据和检索的实际镜像。通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似OpeenStack对象存储系统。

镜像服务组件

  1. Glance-API :

    负责提供镜像服务的rest api。

    接收最终用户或Noav对镜像的请求,检索和存储镜像的相关API调用。

  2. Glance-registry: 存储,处理和检索有关镜像的元数据,元数据大小、类型等等。

  3. Database :存储镜像元数据,可以支持多种数据库,现在使用比较广泛的是mysql和sqlite.

Glance与其他模块的关系

6.Neutron(网络服务)

Neutron

  1. 提供网络服务的核心组件。
  2. 基于软件定义网络的的思想。
  • 网络服务(codenamed “Quantum/Neutron”)提供在被管理设备之间的网络连接服务.
  • 允许用户自己创建自己的网络并attach端口使用.
  • 通过开发的Plugins支持SDN和OpenFlow
  • 用户自定义子网地址,私有网络/公有网络以及FloatingIP分配规则
  • 基于插件的模型。

常用术语

  1. Bridge-int

    实现内部网络功能的网桥。

  2. Br-ex:

    跟外部网络通信的网桥。

  3. Neutron-server:

    提供API接口。

  4. Neutron-L2-agent:

    实现二层网络通信的代理。

  5. Neutron-DHCP-agent:

    为子网自动分发IP地址。

  6. Neutron-L3-agent:

    租户网络和floating IP间地址的转换。

  7. Neutron-metadate-agent:

    响应Nova的metadate请求。

  8. LBaas agent:

    为多台实例和Open vswitch agent提供负载均衡服务。

服务组件

  1. Neutron API

    l提供Openstack其他服务或管理员及用户访问的接口.

  2. 抽相层

    网络资源抽象化,包括网络,子网,端口及路由。将底层各种各样的网络资源按照openstack定义的网络描述规则化。

  3. Plug-in

    通过Plug-in方式可以整合更多的高级的功能以及与底层网络厂商的设备实现更好的集成。

网络Agent

  • Plug-in agent:本地虚拟交换配置。
  • Dhcp agent:为tenant网络提供DHCP服务。
  • L3agent:提供l3/NAT转发功能,为tenant网络中的vm提供外网访问。
  • Meteringagent:提供l3流量监控和计量。

网络描述

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

Neutron服务网络管理的三种模式,两种IP:

两种IP

  1. 固定IP(Fixed-IP):分配给虚拟机实例使用
  2. 浮动IP(FloatingIP):分配给虚拟机实例的外网地址,通过NAT方式实现。

三种模式

  1. Flat模式

    Flat 模式是最简单的一种联网模式。每个实例接收一个来自池的固定IP。所有实例均默认附加到相同的桥
    (br100)。桥必须进行手动配置。联网配置在实例引导前插入到实例中。在这种模式中,没有浮动IP特性。

  2. Flat DHCP模式

    用于测试环境。

    这种模式下与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段。

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

  3. VLAN模式

    用于生产环境。

    VLAN模式的目的是为每个项目提供受保护的网段,具有以下特点:

    1. NAT实现public ip。
    2. 除了public NAT外没有其它途径进入每个lan。
    3. 受限的流出网络,project-admin可以控制。
    4. 受限的项目之间的访问,同样project-admin控制。
    5. 所以实例和api的连接通过vpn。

7.Ceilometer(计量服务)

Ceilometer

  1. OpenStack中的数据监控器。
  2. 为流量计费提供数据支持。

核心概念

  1. Ceilometer-agent-computer:

    收集计算节点上的信息的代理。

  2. Ceilometer-agent-central:

    运行在控制节点上,轮询服务的非持续化数据。

  3. Ceilometer-collector:

    运行在控制节点上,监听Message Bus,将收到的消息写入到数据库中。

  4. Storage:

    数据存储,支持MySQL等,用于存储收到的样本数据。

  5. API server:

    运行在控制节点上,提供对数据节点的访问。

  6. Message Bus:

    计量数据的消息总线,收集数据提供给collector。

OpenStack必备基础知识相关推荐

  1. python基础一入门必备知识-Python数据分析入门必备基础知识

    今天,老师要带大家解数据分析的定义.核心思路.应用领域以及开发流程,向大家全方位展示数据分析入门必备基础知识,全都是干货哦!虽然看完本文,不能让大家立马变身为一名数据分析师,但是能让大家对数据分析有一 ...

  2. 笔刷怎么做_零基础怎么学板绘?板绘小白必备基础知识

    零基础怎么学板绘?板绘小白必备基础知识!零基础学板绘需要准备什么东西?零基础学板绘需要学习哪些软件?板绘是做电影时要用到的人物场景原画的最重要的绘画方式,也是美术爱好者日常学习和创作的首选方式之一.那 ...

  3. java高手之路上的必备基础知识

    其实Java也就这么回事,重要的还是坚持,不能三天打鱼两天晒网.每一个分支下都是一门专业的技术,重要的是证明学精,熟练运用各项软件语言. 下面和大家分享java高手之路上的必备基础知识: 1.面向对象 ...

  4. 【网络通信】【电信运营商实战工程师】思科设备篇-网络工程师必备基础知识

    电信运营商实战工程师系列文章. 思科设备篇-网络工程师必备基础知识. 文章目录 1. 电信运营商网络设备机房 2. 认识并管理运营商网络设备 3. GNS3 安装与配置 4. IPv4地址及子网划分 ...

  5. 电商软件性能测试,实战 | 电商业务的性能测试(一): 必备基础知识

    原标题:实战 | 电商业务的性能测试(一): 必备基础知识 1. 测试步骤及模型分析 1.1 测试步骤总览 需求分析与测试设计(性能需求目标+业务模型拆解) 测试数据准备和构造(基于模型的数据准备) ...

  6. 电子工程师必备基础知识

    电子工程师必备基础知识(一) 运算放大器通过简单的外围元件,在模拟电路和数字电路中得到非常广泛的应用.运算放大器有好些个型号,在详细的性能参数上有几个差别,但原理和应用方法一样. 运算放大器通常有两个 ...

  7. 学习光盘刻录必备基础知识

    学习光盘刻录必备基础知识 2011年04月11日 [b] 学习光盘刻录必备基础知识[/b] 日期:2009-10-10 11:04 1.什么是CD-R? CD-R就是光盘刻录片(CD Recordab ...

  8. c语言需要哪些英语基础,学习C语言的必备基础知识(国外英语资料).doc

    学习C语言的必备基础知识(国外英语资料) 满卧裹瑟莉筑部获搪肪棱惺杀摄械圭旬敷豹休登悬邱雀报台盼拈毒鹰进怀却恩登雄旁二宇谊婆叔陌嘎扇体歌嫉蹿久题篡憨琵夹涌芦鸣褐颂诅讳拴狸果液梦绸亥氯确杯牌憨耗终贼况榔 ...

  9. LeetCode 牛客网 C++ 算法 刷题必备基础知识

    LeetCode 牛客网 C++ 算法 刷题必备基础知识 {ignore} 文章目录 LeetCode 牛客网 C++ 算法 刷题必备基础知识 {ignore} main综合模板 数组排序库 字符串库 ...

  10. 可能是最详细的Android图片压缩原理分析(一)—— Android图片压缩必备基础知识

    本篇文章已授权微信公众号guolin_blog(郭霖)独家发布 稀土掘金链接 前言: 最近在研究图片压缩原理,看了大量资料,从上层尺寸压缩.质量压缩原理到下层的哈夫曼压缩,走成华大道,然后去二仙桥,全 ...

最新文章

  1. 宁德时代机器人编程开发_全球首例丨可编程的活体机器人已诞生,100%青蛙基因,超级计算机时代,将无所不能?!...
  2. 你可能不需要一个 JavaScript 框架(二)
  3. chrome浏览器本地文件支持ajax请求的解决方法
  4. Navicat for Oracle实现连接Oracle
  5. 【高并发】JUC中原子类介绍
  6. 吴恩达对话LeCun:神经网络跌宕四十年
  7. 计算机算法常用英语,计算机术语 算法相关术语
  8. 小米路由器r1d刷第三方_好物推荐 篇三:服役多年的小米路由器R1D准备让他退休, 小米路由R3D开始上岗...
  9. 计算机内存不足提示栻框,【计算机】CIMS概论6.ppt
  10. 【前端大屏可视化项目适配方案】
  11. surfaceView全屏和退出全屏
  12. 在HTML中实现两个div并排显示
  13. 抖音直播间怎样避免被封禁,直播间行为规范必看:国仁楠哥
  14. offsetParent、offsetTop、offsetLeft、offsetHeight、offsetWidth
  15. 容器化 Spring Boot 代码的 9 个技巧
  16. python将文字转换为语音_python把文字转成语音
  17. 自动采集收录导航系统源码分享
  18. Spark之wordCount合集
  19. nginx状态码详解
  20. 07vue+elementUI完成注册及登陆

热门文章

  1. Thread-Specific Data(线程私有数据)
  2. python笔记三之面向对象(继承,封装,多态)
  3. 七夕,思念里的流浪狗在哭---众智云
  4. 安工大计算机学院李雪,计算机学院本科生党支部召开党员大会
  5. 最新问题:错误代码ERROR ITMS-90096 一.ERROR ITMS-90096解决方法
  6. Android之sdcard保存数据
  7. (三十)信号——信号产生原因以及信号处理行为的简介
  8. 风控ML[15] | 风控模型报告以及上线后需要监控的内容
  9. 删除联想硬盘OEM分区——最简单方法
  10. AppSo发布到AppWall页面流程及页面原型还原