研究讨论 OpenStack 各个模块

文章目录

  • 【Keystone 身份服务】
    • 一、主要功能
    • 二、相关概念
    • 三、:keystone工作流程图
  • 【Glance镜像服务】
    • 一、概念理解
    • 二、Glance镜像服务功能

【Keystone 身份服务】

Keystone (OpenStack Identity Service) 是OpenStack中的一 个独立的提供安全认证的模块,主要负责openstack用户的身份认证、 令牌管理、提供访问资源的服务目录、以及基于用户角色的访问控制。

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

一、主要功能

  • 身份认证(Authentication) : 令牌的发放和校验
  • 用户授权(Authorization) : 授予用户在一个服务中所拥有权限
  • 用户管理(Account) : 管理用户账户
  • 服务目录(Service Catalog) : 提供可用服务的API端点

二、相关概念

  • User: 指使用Openstack service的用户。
  • Project(Tenant): 可以理解为一个人、或服务所拥有的资源集合。
  • Role: 用于划分权限。通过给User指定Role,使User获得Role对应操作权限
  • Authentication: 确定用户身份的过程。
  • Token: 是一个字符串表示,作为访问资源的令牌。Token包含 了在指定范围和有效时间内,可以被访问的资源。
  • Credentials: 用于确认用户身份的凭证。用户的用户名和密码,或者是用户名和API密钥,或者身份管理服务提供的认证令牌。
  • Service: Openstack service,即Openstack中运行的组件服务。如nova、swift、glance、 neutron、 cinder等。
  • Endpoint: 一个可以通过网络来访问和定位某个Openstack service的地址,通常是一个URL。

注意
1、因为组件点到点的交互是通过 API 来完成的,API 由 Apache 所承载,Apache 提供了一个URL,所以 API 和 API 的对接也可以认为是 URL 和 URL 的对接。
2、OpenStack中核心、辅助组件的用户是在"yum install" 的时候创建的,OpenStack中关键的就是组件、服务之间的对接配置

三、:keystone工作流程图

研究讨论 OpenStack 各个模块_第1张图片
创建虚拟机首先需要登录用户认证,user向keystone认证,认证没问题以后登录,user需要向nova发送请求,请求安装虚拟机的指令,nove再次向Keyston返回请求验证,验证成功,创建虚拟机是需要glance镜像资源以及neutron网络等资源,那么nova都会想keystone请求验证来获取资源,验证都无问题则会进行VM的创建,创建成功以后返回信息给user

【Glance镜像服务】

它在OpenStack中的项目名称为Glance。在早期的OpenStack版本中,Glance只有管理镜像的功能,并不具备镜像存储功能。现在,Glance已发展成为集镜像上传、检索、管理和存储等多种功能的OpenStack核心服务。
Glance镜像服务

镜像
镜像的英文为Image,又译为映象,通常是指一系列文件或 一个磁盘驱动器的精确副本。镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件, 以访便用户下载和使用。

一、概念理解

举例子: Ghost是使用镜像文件的经典软件,其镜像文件可以包含更多信息,如系统文件、引导文件、分区表信息等,这样镜像文件就可以包含一个分区甚至是一块硬盘所有信息。Ghost可基 于镜像文件快速安装操作系统和应用程序。
举例子: VMware的虚拟机模板

二、Glance镜像服务功能

镜像服务就是用来管理镜像的,让用户能够发现、获取和保存镜像。在OpenStack中提供镜像服务的是Glance,其主要功能如下:

  • 查询和获取镜像的元数据和镜像本身
  • 注册和。上传虚拟机镜像,包括镜像的创建、上传、 下载和管理
  • 维护镜像信息,包括元数据和镜像本身。
  • 支持多种方式存储镜像,包括普通的文件系统、Swift、 Amazon S3等
  • 对虚拟机实例执行创建快照命令来创建新的镜像,或者备份虚拟机的状态

三、镜像格式
虚拟机镜像文件磁盘格式

raw:无结构的磁盘格式
vhd:该格式通用于VMware、Xen、VirtualBox以及其他虚拟机管理程序
vhdx:vhd格式的增强版本,支持更大的磁盘尺寸
vmdk:一种比较通用的虚拟机磁盘格式
vdi:由VirtualBox虚拟机监控程序和QEMU仿真器支持的磁盘格式
iso:用于光盘(CD-ROM)数据内容的档案格式
ploop:由virtuozzo支持,用于运行OS容器的磁盘格式
qcow2:由QEMU仿真支持,可动态扩展,支持写时复制(Copy on Write)的磁盘格式
aki:在Glance中存储的Amazon内核格式
ari:在Glance中存储的Amazon虚拟内存盘(Ramdisk)格式
ami:在Glance中存储的Amazon机器格式
磁盘结构:
RAW :磁盘镜像实例,以进制形式存储的方式(图片)
优点:访问速度非常快
缺点:不支持动态扩容、前期消耗多(创建20G磁盘类比workstation)
Vhd:微软公司提出的格式
VMDK: vmware公司想要统虛拟化平台的一 种格式
Vdi: VirtualBox官方 支持的结构
ISO:基本类型
Qcow2: Qemu支 持的类型
AKI、 ARI、 AMI:亚马逊所推出支持的类型
容器:
磁盘存储的数据、元数据需要相互隔离,所以会使用到容器
Bare :基础类型,
Ovf:标准的格式体系,支持动态扩容,而且支持导出导入
AKi、 Ami、 Ari: 亚马逊
组件工作流程
glance- api
json yaml xml格式的

raw优点:访问速度非常块;缺点:不支持动态扩容,前期消耗多

四、镜像格式
镜像文件容器格式

bare:没有容器或元数据“信封”的镜像
ovf:开放虚拟化格式
ova:在Glance中存储的开放虚拟化设备格式
aki:在Glance中存储的Amazon内核格式
ari:在Glance中存储的Amazon虚拟内存盘(Ramdisk)格式
Docker:在Glance中存储的容器文件系统的Docker的tar档案

五、镜像状态
状态1

queued:这是一种初始化状态,镜像文件刚被创建,在Glance数据库只有其元数据,镜像数据还没有上传至数据库中
saving:是镜像的原始数据在.上传到数据库中的一种过渡状态,表示正在上传镜像
uploading:指示已进行导入数据提交调用,此状态下不允许调用PUT/file (saving状态会执行PUT/file,这是另外一种上传的方法)
importing:指示已经完成导入调用,但是镜像还未准备好使用

状态2

active:表示当镜像数据成功上传完毕,成为Glance中可用的镜像
deactivated:表示任何非管理员用户都无权访问镜像数据,禁止下载镜像,也禁止镜像导出和镜像克隆之类的操作
killed:表示镜像上传过程中发生错误,镜像不可读
deleted:镜像将在不久后被自动删除,该镜像不可再用,但是目前Glance仍然保留该镜像的相关信息和原始数据
pending_delete: 与deleted相似,Glance还没有清除镜像数据, 但处于该状态的镜像不可恢复

七、Glance详细架构图
研究讨论 OpenStack 各个模块_第2张图片

  • 客户端是Glance服务应用程序使用者,是OpenStack命令行工具、Horizon或Nova服务
  • glance-api是系统后台运行的服务进程,是进入Glance的入口。它对外提RESTAPI, 负责接收用户的RESTful请求,响应镜像查询、获取和存储的调用。
  • glance-registry是 系统后 台运行的glance注册服务进程,负责处理与镜像元数据相关的RESTful请
    求,元数据包括镜像大小、类型等信息。Glance-api接收的请求如果是与镜像的元数据相关的操作glance-api会把请求转发给glance-registry。glance-registry会解析请求内容,并与数据库交互,存储、处理、检索镜像的元数据。glance-api对外提供API,而glance-registry的API只由Glanc使用。

八、工作流程
研究讨论 OpenStack 各个模块_第3张图片

  • OpenStack的操作都需经Keystone进行身份认证(AuthN)并授权(AuthZ),Glance也不例外。Glance是一个C/S架构,提供一个REST API,用户就通过RESTAPI来执行镜像的各种操作。[Glance Domain Controller是一个主要的中间件,相当于调度器,作用是将Glance内部服务的操作分发到以下各个功能层
  • Registry Layer(注册层):是一个可选层,通过使用单独的服务控制Glance Domain Controller与GlanceDB之间的安全交互。
  • Glance DB:是Glance服务使用的核心库,该库对Glance内部所有依赖数据库的组件是共享的。(这个库是存一些元数据信息的,不是真正存镜像的数据库)
  • Glance Store:用来组织处理Glance和各种存储后端的交互,提供了一个统一的接口来访问后端的存储。所有的镜像文件操作都是通过调用Glance Store库来执行的,它负责与外部存储端或本地文件存储系统的交互。

总结:

1、glance-api是系统后台运行的服务进程,对外提供REST API,相应image查询、获取和存储的调用,glance-api不会真正处理请求
2、如果是与image metadata(元数据)相关的操作,glance-api会把请求转发给glance-registry
3、如果是与image自身存取相关的操作,glance-api会把请求转发给该image的store backend
4、查看glance-api进程:ps -elf | grep glance-api

你可能感兴趣的:(云计算,openstack,运维,运维,云计算,openstack)