首页 > 技术文章 > OpenStack介绍

Xing88 2020-12-10 17:07 原文

一、云计算服务模型

1、laaS(基础架构即服务)

·提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等

·面向对象一般是IT管理人员

2、PaaS(平台即服务)

·把安装好开发环境的系统平台作为一种服务通过互联网提供给用户

·面向对象一般是开发人员

3、SaaS(软件即服务)

·直接通过互联网为用户提供软件和应用程序等服务

·面向对象一般是普通用户

 

二、什么是OpenStack

OpenStack 是一系列开源工具(或开源项目)的组合,主要使用池化虚拟资源来构建和管理私有云及公共云。其中的六个项目主要负责处理核心云计算服务,包括计算、网络、存储、身份和镜像服务。还有另外十多个可选项目,用户可把它们捆绑打包,用来创建独特、可部署的云架构。

1、OpenStack服务

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

 

 

 

 

 

 

 

 

 

 

 

2、OpenStack优势

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

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

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

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

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

 

3、OpenStack架构

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

·安装不同的功能和通用性划分不同项目,拆分子系统

·安装逻辑计划、规范子系统之间的通信

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

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

概念架构图:

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

逻辑架构图:

·OpenStack包括若干个称为OpenStack服务的独立组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。

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

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

 

OpenStack物理架构

整个OpenStack是由控制节点,计算节点,网络节点,存储节点,四大部分组成。(这四个节点也可以单机部署)

控制节点负责对其余几点的控制,包含虚拟机创建、迁移、网络分配、存储分配等等
控制节点架构:
控制节点包括以下服务
管理支持服务
基础管理服务
扩展管理服务

计算节点负责虚拟机运行
计算节点架构
计算节点包含Nova、Neutron、Telemter三个服务

网络节点负责对外网络与内网之间的通信
网络节点架构
网络节点仅包含Neutron服务

存储节点负责对虚拟机的额外存储管理等等
存储节点架构
存储节点包含Cinder,Swift等服务

 

4、OpenStack组件通信关系

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

·基于SQL的通信:用于各个项目内部的通信

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

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

 

三、核心服务概述

Keystone身份认证服务

KeyStone是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证,令牌发放和校验,服务列表,用户权限定义等

Keystone类似一个服务总线,或者说是整 个Openstack框架的注册表,其他服务通过keystone来注册其服务的Endpoint (服务访问的URL),任何服务之间相互的调用,需要经过Keystone的身 份验证,来获得目标服务的Endpoint来找到目标服务

 

1、主要功能

身份认证:负责令牌的发放和校验

用户授权:授权用户有指定的可执行动作的范围

用户管理:管理用户的账户

服务目录:提供可用服务的API端点位置

 

2、管理对象

 

·user:表示API的一个特定使用者,属于一个指定的domain。可以赋予user权限(role),每一个user-domian或user-project都可以有一组权限

·Groups:表示一组拥有某权限的用户,属于一个指定的domain。可以赋予group特定的role,此时group内的user都自动具备该role表示的权限

·Credentials:与user关联的认证凭据。一个user可能有一个或多个credential,一个credential与某个project关联

·Projects:在OpenStack中表示一组资源,一个project属于某一个domain

·Domain:表示一组projects和user的集合,每一个project或user只能属于一个domian,但user可以属于多个project。domian有命名空间的概念,即在一个命名空间内的名称是否是全局唯一

·Role:角色,表示一组在project或domain范围内允许操作

·Service:openstack架构的组件服务,如nova、neutron、cinder、swift、glance等。

·Endpoints:表示服务的URL

·Tokens:表示认证用户的标识,有认证服务生成,没有token的资源URL,token的使用是在X-Auth-Token和X-Subject-Token头部

推荐阅读