OpenStack架构组成

OpenStack架构组成

OpenStack作为开源、可扩展、富有弹性的云操作系统,其设计规则如下:

  • 按照不同的功能和通用性划分不同项目,拆分子系统

按照功能和通用性划分不同服务,将一个整理功能,拆分为各个子服务/子功能,方便管理、排障。并且服务之间相互隔离,只通过API作为统一交互入口相互对接/通讯

  • 按照逻辑计划、规范子系统之间的通信

API之间进行交互会有特定/通用的方式对不同组件之间的通讯方式进行规范

各个子功能模块遵循一些规范进行通讯(API、 HTTP)

  • 通过分层设计整个系统架构

分层思想的连个维度:

以架构为单位,三层

1、全局组件 2、辅助组件 3、核心组件

以单个核心服务/组件进行分层:

1、API 2、子功能模块 3、其他(rabbitmq)

组件和组件通讯,内部子功能模块都可以通过消息队列/代理(rabbitmq)进行通讯

消息代理:作为组件和组件通讯/交互/数据传输的载体

  • 不同的功能子系统间提供统一的API接口

各组件之间通过统一的API接口进行交互/通讯/数据传输/调用

OpenStack概念架构

在这里插入图片描述

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

以架构维度来看的话:

以架构为单位

1.全局组件:

Keystone:提供认证

Ceilometer:监控、统计费用

Horizon:管理实例功能

2.辅助组件:

提供了一些必要的管理和资源换服务

Sahara、heat:大数据方向,用于数据的编排和处理,精细化的管理

ironic(裸金属、裸机):提供一个可以使用的操作系统 ,管理基础硬件资源

Trove:管理数据库,存储实例的数据和信息,和各个组件的数据、信息、日志

3、核心组件

为实例(虚拟机)服务

Neutron:网络服务

Glance:镜像服务

Swift:对象存储服务

Cinder:块存储服务

Nova:收集资源,提供给虚拟机,让Nova支持虚拟机的创建

OpenStack逻辑架构

在这里插入图片描述

  • (全局维度)OpenStack包括若个称为OpenStack服务的独立组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。(或者http方式。比如OpenStack一键装机中Apache承载API。Apache提供了一个展示web页面的方式,并且表示是以HTTP进行通讯)

安装功能划分不同的服务,并且服务相互独立,只会通过API相互对接。

组件内部的服务都有一个身份。每个核心组件都会有一个对应的用户进行管理

各个服务组件通过API进行对接

  • (核心组件维度)每个OpenStack服务又由若干组件组成。包含多个进程。所有服务至少有一一个API进程,用于侦听API请求,对这些请求进行预处理,并将它们传送到该服务的其他组件。除了认证服务,实际工作都是由具体的进程完成的

各服务之间对接方式是API,是HTTP进行通讯,可以有Rabbitmq进行通讯,也可以直接通过网络通讯

restful请求:

外部想请求内部的请求类型。是一种规范。例如:用户和企业之间,用户想要访问企业的页面需要借助网络,而网络之中的通讯,需要有一些标准化的规则

restful就是一种规范
规范请求的方式(格式),会进行过滤(filter) ,会进行合法性的验证,然后会对请求的结果进行反馈,比如forbi iden

API (预处理)
1、向keystone进行申请认证请求的合法性和权限
2、下发任务,会根据请求的功能需求,将不同的任务交给不同的组件来完成。统一收集结果和需要的资源,整合在一起,相应请求

  • 至于一个服务的进程之间通信,则使用AMQP消息代理。服务的状态存储在数据库中

单个服务内部的子功能模块之间的通讯------>AMQP

这幅图展示的内容:

1、首先展示了内部核心组件、辅助组件、全局组件

2、各核心辅助组件之间是怎么对接的

​ 通过API,通讯方式可以为消息代理

3、展示了各组件中,一部分核心的功能模块

4、展示OpenStack原生架构(基础)

​ 第三方功能模块:

1、可以服务原生架构的组件可以更完善更合理的运行

2、增加一个功能(原生架构或者不完善的----特定场景)

OpenStack组件通信关系

OpenStack内部根据功能可以划分不同的通讯方式

  • 基于AMQP协议的通信

    用于每个项目内部各个组件之间的通信。

  • 基于SQL的通信

    用于各个项目内部的通信。

  • 基于HTTP协议进行通信

    通过各项目的API建立的通信关系,API都是RESTful Web API。

    OpenStack中API是同一个很核心的概念

    restful:是一种交互/通讯的规范

    web:有Apache承载API,Apache提供了一个web展示页面

    API:组件和组件对接的技术(点到点)

    ​ URL—>对接—>URL

    ​ endpoint—>---endpoint(端点)

  • 通过Native API实现通信

    OpenStack各组件和第三方软硬件之间的通信。

    OpenStack和外出组件的通讯方式

OpenStack物理架构

在这里插入图片描述

物理架构中共有4中类型,按照职能划分:控制节点(把控全局)、网络节点(提供OpenStack内部组件/节点通讯)、计算节点(功能创建)、存储节点(存储服务)

控制节点内用于分发任务,主要管理其他节点。控制节点可以跑实例资源(处理具体任务)

​ 支持的服务包含:MySQL、Rabbitmq

​ 基础服务包含:keystone、Glance、Nova、Neutron(集中化管理网络服务)、Horizon

​ 扩展服务包含(为实例的更好运行提供服务):Cinder、Swift、Trove、Heat、Ceilometer

​ 网络类型包含:管理网络。可以通过网卡划分职能的方式管理其他节点

网络节点内基础服务包含:Neutron(实现网络服务)

​ 网络接口类型包含:管理网络(接收控制节点任务调度)、数据网络(数据库服务)、外部网络(外部第三方插件)

计算节点内基础服务包含:Nova Hypervisor、网络插件代理(OpenStack中通过插件和代理来实现网络二层、三层的具体功能)

​ 扩展服务包含:Ceilometer Agent

​ 网络接口类型包含:管理网络、数据网络

存储节点内基础服务包含:Cinder、Swift

​ 网络接口类型包含:管理网络、数据网络

网络节点(Network Node)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uXFvRFBw-1613694421958)(C:\Users\朱俊杰\AppData\Roaming\Typora\typora-user-images\image-20210126215650380.png)]提供者网络(Provider networks):

联网管理
ML2插件
Linux网络工具
Linux Bridge代理
DHCP代理
元数据代理(Metadata Agent)

自服务网络(Self-service networks )

联网管理
ML2插件
Linux网络工具
Linux Bridge代理
三层代理(L3 Agent)
DHCP代理
者网络(Provider networks):

联网管理
ML2插件
Linux网络工具
Linux Bridge代理
DHCP代理
元数据代理(Metadata Agent)

自服务网络(Self-service networks )

联网管理
ML2插件
Linux网络工具
Linux Bridge代理
三层代理(L3 Agent)
DHCP代理
元数据代理( Metadata Agent)

猜你喜欢

转载自blog.csdn.net/weixin_50345054/article/details/113856675