什么是OpenStack? OpenStack核心组件之运行流程

一、OpenStack简介

1. OpenStack概述

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

2. OpenStack服务

在这里插入图片描述

2.1 8个核心服务

都是为虚拟机提供服务的

  • Commpute
  • NetWork
  • Identity
  • Identity
  • Identity
  • Image Server
  • Block Storage
  • Object Storage
  • Telemetry

2.2 8个核心组件

  • Nova
  • Neutron
  • Keystone
  • Horizon
  • GIance
  • Cinder
  • Swift
  • Ceilometer

2.3 组件的详细解释

2.3.1 Nova(核心组件)(负责生命周期管理)
  • OpenStack获取底层虚拟化技术,就是转化过来的虚拟资源是通过一个统一的入口来接收的,这个入口就是Nova,也就是说Nova管理的是所有的虚拟化资源,可以把虚拟化资源拿过来给虚拟机使用,从而让虚拟机正常运行
    也就是说它调用的对象就是支撑实例运行的资源基础,所有它可以管理实例的生命周期
  • Hypervisor(虚拟机管理器),它是将物理资源转化为虚拟化资源供给虚拟机使用,这边实例创建后资源不是通过hypervisor或其他虚拟化技术来供给虚拟机的,而是由Nova作为统一调用,在由Nova输送给虚拟机,所以才会对Hypervisor进行屏蔽,其中Nova还可以通过多种不同的驱动,来支持多种不同的虚拟化技术,来达到横向扩展,达到一个通用性
2.3.2 Neutron(负责虚拟网络的管理)
  • 就相当于连接内外网,可以让实例与外界相同
  • 对一部分的资源的一个租令,从而自已定义分配资源,与其他租户之间互不影响,从而更方便管理
2.3.3 Keystone(全局组件)
  • 主要用于OpenStack中的所有组件之间相互交互、对接的认证机制,可以对用户等进行认证与授权
2.3.4 Horizon(Ui页面)
  • 给使用者提供一个友好的管理界面,在控制台选择好自已需求的规格,然后进行创建控制台会把我们的需求,传递给OpenStack底层从而对我们的需求进行创建
2.3.5 Glance(镜像模板)
  • 提供虚拟机镜像模板的注册与管理,如搭建一个负载均衡架构,封装为一个镜像,这个镜像就相当于一个负载均衡架构模板,只需要下载这个镜像,就可以供给多个用户使用,然后用这个镜像去创建虚拟机,创建出来的就是负载均衡架构的操作系统
2.3.6 Cinder(块存储)
  • 负责为运行实例提供持久的块存储设备,可以方便的扩展,按需付费,因为它不只是为一个用户提供服务是为多个用户提供,所以它支持的是多种后端存储类型
2.3.7 Swift(对象存储)
  • 为OpenStack提供基于云的弹性存储,支持集群无单点故障,它其实就是键值对的存储,存储的资源就是一些静态资源,它不能再对象存储中的内部直接修改源文件,而是需要下载下来才可以修改,然后在推送上去已做更新
2.3.8 Ceilometer(度量,监控)
  • 用于管理用户对资源的租期管理,为用户提供记账途径

2.4 Keystone工作流程

在这里插入图片描述

二、OpenStack优势

控制性

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

兼容性

  • OpenStack兼容其他公有云,方便用户进行数据迁移

可扩展性

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

灵活性

  • 根据自已的需要建立相应基础设施、增加集群规模

行业标准

  • 众多IT领军企业已经加入到OpenStack项目

三、OpenStack架构规范

在学习openstack部署与运维之前,需要熟悉它的架构和运行原理,OpenStack作为开源、可扩展、富有弹性云操作系统,其设计基本原则如果下:

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

四、OpenStack架构概念

4.1 架构图

在这里插入图片描述
核心是为虚拟机,所有的组件都是围绕着虚拟机提供服务的

4.2 解析

4.2.1 红框中的为全局组件:

Keystone:为所有服务模块提供认证与授权
Ceilometer:度量、监控所有数据资源
Horizon:UI平台管理,提供一个Web管理页面,为底层交互

4.2.2 绿框中为外部(辅助)组件(主要提供一些必要的管理和资源服务):

Ironic:提供裸金属环境(没有操作系统的计算机硬件,简称裸机)
Trove:提供管理数据库服务(控制关系型和非关系型数据库)
heat,sahara:提供对数据管理和编排

4.2.3 蓝框中为内部核心组件(主要是维持虚拟机正常运作的一些组件):

Glance:提供镜像服务
Neutron:提供网络服务
Swift:提供对象存储资源
Cinder:提供块存储资源(提供持久化存储,同时也会备份一份,从而解决了单点故障的问题)
Nova:管理实例的生命周期,并负责管理调用上面的四个资源给虚拟机使用

4.2.4 具体流程

云平台用户在经过Keystone服务认证授权后,
通过Horizon或者Rest API模式创建虚拟机服务,
创建过程中包括利用Nova服务创建虚拟机实例,
虚拟机实例采用Glance提供镜像服务,
然后使用Neutron为新建的虚拟机分配IP地址,并将其纳入虚拟网络中,
之后在通过Cinder创建的卷为虚拟机挂载存储块,
整个过程都在Ceilometer模块资源的监控下,
Cinder产生的卷(Volume)和Glance提供的镜像(Image),可以通过Swift的对象存储机制进行保存

五、OpenStack逻辑架构

5.1 架构图

在这里插入图片描述

5.2 理解思路

  • 1.先看OpenStack原生架构中的核心组件、其他组件、全局组件

  • 2.对接:各服务器之间的对接方式是API,使用HTTP进行通讯
    通讯:可以用Rabbitmq、也可以直接通过网络进行通讯

  • 3.单个模块内部的子功能模块之间的通讯是使用的AMQP

5.2.1 为什么要使用AMQP消息代理?

1.因为以服务本身拥有的消息传递和消息交互的通讯方式,进行通讯与数据传输会存在严重的瓶颈问题

2.openstack本身架构非常的复杂,庞大,处理的数据量非常多时,消息传递速率,效率及合理性会有一个严格的划分,需要使用一个队列(AMQP消息代理)去作为中间的承载,是靠rabbitmq去实现的AMQP,而这样的一个服务叫rabbitmq(消息队列)

5.3 解析

5.3.1 OpenStack三层服务组件

首先以逻辑架构来说,Openstack包含三层服务组件

5.3.1.1 红色的全局组件

红色的全局组件:keystone(身份验证),ceilometer(计量)和horizon(可视化界面UI)三部分组成;

5.3.1.2 蓝色的核心组件

蓝色的核心组件:glance(镜像)、Neutron(网络)、Cinder(块存储)、Swift(对象存储)和Nova(计算服务)五部分组成;

5.3.1.3 橙色的辅助组件

橙色的辅助组件:Ironic(裸金属)、trove(数据库)和heat以及sahara(数据编排)组成;

5.3.2 各组件之间对接、通讯方式

1.各组件之间通过统一的API进行对接;

2.各组件之间通过消息代理(RabbitMQ)进行通讯;

3.各组件之间通讯通过restful进行了一个格式的规范,以及合法的验证。

5.3.3 各组件内部分层

1.API作为内外交互的接口,同时也对其它组件发过来的信息做一个预处理(1、统一发往keystone进行验证 2、API根据不同的任务将需求发往后端的子功能模块);

2.实际上API是不处理请求的,请求都是各个组件后端的子功能模块来处理的;

3.各子功能模块之间的相互通讯借助于消息队列;

4.子功能模块处理完的请求再次反馈到API,再通过API对接出去;

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值