深挖Openstack Glance - 基本知识

2024-06-15 14:08

本文主要是介绍深挖Openstack Glance - 基本知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一. glance的作用:提供虚拟机镜像的发现、注册、检索,使用RESTful接口接收外部请求

 

二. 版本说明

glance有两个版本API v1/v2,其中v2版本(F版)较为简洁,将glance-api和glance-registry合并在一块。

1. glance-api:接收REST API的请求,分析消息请求信息并分发命令(如新增、删除、更新等)

2. glance-registry:负责接收响应镜像元数据命令的Restful请求,分析消息请求信息并分发命令(如获取元数据、更新元数据等)

 

三. 任意一个用户都可以向glance上传和注册image,还可以设定该image是否可以公开为其他tenant用户使用。

 

四. image使用URI作为唯一标识:

<Glance ServerLocation>/images/<ID>

其中,Glance Server Location是镜像的所在位置,ID是镜像在Glance的唯一标识

 

五. image状态:

1. queued:没有上传image数据,只有db中的元数据

2. saving:image data正在被上传

3. active:image完全可用

4. killed:image元数据不正确,等待被删除

5. deleted/pending_delete:已删除/等待删除

 

六. glance目录解析:(待完善)

1. /glance/api/v1/router.py:将WSGI收到的HTTP操作映射到glance-api模块的Controller类的方法

2. /glance/api/v1/images.py:提供与image相关的操作

3. /glance/registry/client/v1/api.py:registry API入口,调用client.py中的函数

4. /glance/api/v2/image_data.py:提供对image上传下载的操作

 

七. Paste模块

在/etc目录下有两个文件glance-api-paste.ini和glance-registry-paste.ini,当WSGI Server接收到URL_Path形式的HTTP Request时,这些Request首先会被这些paste文件处理,执行其文件中标注的需要执行的WSGIapp和middleware。

在paste文件中,每个Section的格式均为[type:name],主要有这几种类型的Section:

1. composite section

request进来后第一个通过的Section,表示需要将一个HTTP URL Request调度到一个或多种Application上。

[composite:rootapp]
paste.composite_factory = glance.api:root_app_factory
/: apiversions
/v1: apiv1app
/v2: apiv2app
/v3: apiv3app


2. app section

一个app就是实际处理REST API请求的python类,表明这是一个独立的服务程序。

[app:apiv1app]
# paste.app_factory: 表明调用哪个函数来获得application
paste.app_factory = glance.api.v1.router:API.factory


3. filter section

一种装饰器,为app提供一层封装,起过滤作用,用于过滤Request和Response,在app处理请求之前会先调用filter对象。

[filter:healthcheck]
# paste.filter_factory: 表明调用哪个函数来获得这个filter中间件
paste.filter_factory = oslo_middleware:Healthcheck.factory
backends = disable_by_file
disable_by


4. pipeline section

是对多个filter和某个app进行封装,表明在app处理请求之前会先调用pipeline所指定的多个filter对象。

在pipeline section中,最后一个名字对应的section一定是app类型,其它名字对应的一定是filter类型。

# Use this pipeline for no auth or image caching = DEFAULT
[pipeline:glance-api]
pipeline = healthcheck versionnegotiation osprofiler unauthenticated-context rootapp

比如pipeline:glance-api表明在访问glance-api之前需要先调用healthcheck、versionnegotiation等一系列filter对象,而最后的rootapp就是一个app section。


八. URL的Routes分发

首先WSGI接收到用户请求,经过几层过滤器,到达rootapp处理,rootapp内部根据用户提供的版本信息(v1/v2)交由apiv1app或apiv2app处理。

以v1版本为例,从horizon传过来的HTTP请求首先来到/glance/api/v1/router.py,查找匹配的HTTP请求。类API继承wsgi.Router:

class API(wsgi.Router):

mapper.connect匹配对应的请求,比如获取image详情:

mapper.connect("/images/detail",controller=images_resource,action='detail',conditions={'method': ['GET', 'HEAD']})

当用户的glance操作请求通过WSGI,通过分发dispatch进入控制器Controller之后,接下来就是开始glance镜像的具体操作。


这篇关于深挖Openstack Glance - 基本知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063671

相关文章

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

OpenStack离线Train版安装系列—3控制节点-Keystone认证服务组件

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack离线Train版安装系列—2计算节点-环境准备

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack离线Train版安装系列—1控制节点-环境准备

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack离线Train版安装系列—0制作yum源

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系

OpenStack镜像制作系列2—Windows7镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系列

OpenStack镜像制作系列1—环境准备

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack离线Train版安装系列—10.控制节点-Heat服务组件

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版