Openstack组件实现原理 — Glance架构(V1/V2)
目录
Glance 安装列表
Openstack组建部署 — Glance Install
Glance Image service
Image service项目代号Glance,是Openstack的镜像服务组件。Glance主要提供了一个虚拟机镜像文件的存储、查询和检索服务,通过提供一个虚拟磁盘映像目录和存储库,为Nova的虚拟机提供镜像服务。现在Glance具有V1和V2(Openstack-F发布)两个版本。 
Image service 的组件
Glance-Api
glance-api:是一个对外的API接口,能够接受外部的API镜像请求。主要用于分析、分发、响应各种镜像管理的REST Request,然后通过其他模块(EG. glance-registry、Store Backend后端存储接口)完成镜像的发现、获取、存储等操作。默认绑定端口是9292。
Glance-Registry
glance-registry:用于存储、处理、获取Image Metadata。通过响应从glance-api发送过来的Image Metadata REST Request,然后与MySQL进行交互,实现Image Metadate的存储、处理、获取。默认绑定的端口是9191。
Glance-db
glance-db:在Openstack中使用MySQL来支撑,用于存放Image Metadate。 
Image Metadate(镜像元数据):指通过glance-registry来保存在MySQL Database中的镜像文件相关信息。
Image Store(Store Backend)
Image Store:用于存储镜像文件。通过Store Backend后端存储接口来与glance-api联系。通过这个接口,glance可以从Image Store获取镜像文件再交由Nova用于创建虚拟机。
Glance 通过Store Adapter(存储适配器)支持多种Imange Store方案: 
Glance允许上传私有或共有的不同格式镜像:
- Raw
 - Machine (kernel/ramdisk outside of image, a.k.a. AMI)
 - VHD (Hyper-V)
 - VDI (VirtualBox)
 - qcow2 (Qemu/KVM)
 - VMDK (VMWare)
 - OVF (VMWare, others)
 
Image
Image(镜像文件)的访问权限分为:
- Public 公共的:可以被所有的Tenant使用。
 - Private 私有的/项目的:只能被Image Owner所在的Tenant使用。
 - Shared 共享的:一个非公共的Image可以共享给指定的Tenant,通过
member-*操作来实现。 - Protected 受保护的:Protected Image不能被删除。
 
Image的状态类型:
- Queued:没有上传Image数据,只SQL Database中存有该镜像的元数据。
 - Saving:正在上传Image。
 - Active:正常状态。
 - Deleted/pending_delete: 已删除/等待删除的Image。
 - Killed:Image元数据不正确,等待被删除。
 
Image状态类型转换:
- ‘queued’ => (‘saving’, ‘active’, ‘deleted’)
 - ‘saving’ => (‘active’, ‘killed’, ‘deleted’, ‘queued’)
 - ‘active’ => (‘queued’, ‘pending_delete’, ‘deleted’)
 - ‘killed’ => (‘deleted’)
 - ‘pending_delete’ => (‘deleted’)
 - ‘deleted’ => ()
 
Glance 架构
Glance Restful API — V1
V1的功能:提供了基本的Image和Member操作 
1. 镜像文件的创建、删除、查询、更改 
2. 镜像Tenant成员的创建、删除和查询
V1包含有glance-api和glance-registry两个WSGI service,都提供了REST API接口来接收虚拟机镜像管理的请求。
两者的区别在于:glance-api的REST API能够对外开放而glance-registry的REST  API只能够被glance-api调用。
V1的架构:
需要注意的是:glance-api 不会真正去处理REST Request,可以将glance-api再分为两部分:
- 一部分是中间件,主要用于对
REST Request的分析、分发工作(EG. 分析出版本号) - 另一部分来提供实际的服务(EG. 与Store Backend后端存储接口交互,实现镜像上传、下载)
 
所以若glance-api接收到涉及SQL Database的操作请求时,会调用registry-clinet并生成HTTP指令,然后转发给glance-registry API进行处理。
Glance Restful API — V2
V2的功能:除了拥有V1的功能之外,还能够: 
1. 镜像Location的添加、删除和修改 
2. Metadata、Namespace、Image tag操作
V2架构图: 
V2在实现上,把glance-registry和glance-api合并到了一起,减少了一个中间环节。
Openstack组件实现原理 — Glance架构(V1/V2)的更多相关文章
- Openstack组件实现原理 — Nova 体系结构
		
目录 目录 前文列表 Nova体系结构 虚拟机实例化流程 前文列表 Openstack组件部署 - Overview和前期环境准备 Openstack组建部署 - Environment of Con ...
 - Openstack组件实现原理 — OpenVswitch/Gre/vlan
		
目录 目录 前文提要 Neutron 管理的网络相关实体 OpenVswitchOVS OVS 的架构 VLan GRE 隧道 Compute Node 中的 Instance 通过 GRE 访问 P ...
 - Openstack组件实现原理 — Keystone认证功能
		
目录 目录 前言 Keystone安装列表 Keystone架构 Keystone的管理对象 一个理解Keystone管理对象功能的例子 Keystone管理对象之间的关系 Keystone V3的新 ...
 - openstack学习心得:glance 架构、概念、后端存储配置方式
		
glance 架构 glance 服务概述 Image 服务 使得用户可以发现.注册.检索虚拟机镜像.它对外提供REST API使得你能够查询虚拟机镜像元数据和检索一个真实的镜像.你可以通过镜像服务将 ...
 - Openstack组件部署 — Networking service_Compute Node
		
目录 目录 前文列表 安装组件 配置通用组件 配置自服务网络选项 配置Linux 桥接代理 配置Nova使用网络 完成安装 验证操作Execute following commands on Cont ...
 - Openstack组件部署 — Networking service_安装并配置Controller Node
		
目录 目录 前文列表 前提条件 网络环境 完成下面的步骤以创建数据库 创建service credentials服务凭证 创建Neutron的API Endpoints 配置自服务网络 安装网络组件 ...
 - Openstack组件部署 — Netwotking service组件介绍与网络基本概念
		
目录 目录 前文列表 Openstack Networking serivce 基本的Neutron概念 Neutron的抽象对象 网络networks 子网subnets 路由器routers 端口 ...
 - Openstack组件部署 — Nova_Install and configure a compute node
		
目录 目录 前文列表 Prerequisites 先决条件 Install and configure a compute node Install the packages Edit the etc ...
 - Openstack组件部署 — Nova_安装和配置Controller Node
		
目录 目录 前文列表 Prerequisites 先决条件 To create the databases To create the service credentials Create the C ...
 
随机推荐
- SAS 读取数据文件
			
每次读取数据时需要告诉SAS3件事:1:数据存在哪里?2:数据的形式3:创建的数据集的类型(永久/临时) 1 读取SAS数据集 DATA temp; /*temp 为创建的数据集名称*/ INFILE ...
 - 【Java架构:基础技术】一篇文章搞掂:MyBatis
			
本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文主要总结于刘增辉的<MyBatisc从入门到精通>一书,有兴趣的朋友可以自行研读 建议仔细研读官方文档: http ...
 - 2018icpc沈阳/gym101955 J  How Much Memory Your Code Is Using? 签到
			
题意: 给你定义一堆变量,计算一下这些变量共占了多少k内存. 题解: 按题意模拟即可,善用ceil() // // Created by melon on 2019/10/22. // #includ ...
 - python四种方法实现去除列表中的重复元素
			
转载:https://blog.csdn.net/together_cz/article/details/76201975 def func1(one_list): ''''' 使用集合,个人最常用 ...
 - NGINX-二级域名
			
先给二级域名添加到 DNS 解析再配置 nginx server { #侦听80端口 listen 80; #定义使用 www.nginx.cn访问 server_name ~^(?<subdo ...
 - IDEA如何import一个新的项目
			
首先解决依赖问题:打开pom.xml 2.打开File->setting 将里面的User setting file位置找到,放上settings.xml(注意要打开,将第一行位置改一下) 3. ...
 - python调用tushare获取沪深A股票资金流向数据
			
接口:moneyflow 描述:获取沪深A股票资金流向数据,分析大单小单成交情况,用于判别资金动向 限量:单次最大提取4000行记录,总量不限制 积分:用户需要至少1500积分才可以调取,基础积分有流 ...
 - android中SharedPreferences
			
SharedPreferences:用于存储少量并且数据格式简单,基本上都是普通的字符串,标量类型的值,比如:应用程序的各种配置信息等. SharedPreferences:保存的数据格式主要是key ...
 - spring基于注解的事务控制
			
pom配置: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...
 - 关于UEditor的使用配置(图片上传配置)
			
接到新需求,需要在平台上使用富文本编辑器,我这次选择了百度的UEditor 在官网上下载l.net版本的1.4.3开发版本 http://ueditor.baidu.com/website/downl ...