openstack之Glance介绍
什么是Glance
glance即image service(镜像服务),是为虚拟机的创建提供镜像服务
为什么要有Glance
我们基于openstack是构建基本的Iaas平台对外提供虚机,而虚机在创建的时候必须为其选择操作系统,glance服务器就是为该选择提供不同的系统镜像
Glance的功能
glance服务使用户能够发现,注册,检索虚拟机的镜像,它提供一个能够查询虚拟机镜像元数据和检索真实镜像的REST API
具体的:REST API的体现就是一个URI,而在glance中通过一个URI地址来唯一标示一个镜像的形式如下
<Glance Server Location>/v1/images/<ID>
<Glance Server Location>:glance服务安装的位置
/v1:使用v1版本
/images:请求的类型为镜像
/<ID>:一个uuid,在glance中全局唯一
Glance的两个版本
在Newton之前的版本中,glance支持两种REST API V1和V2,两者区别还是很明显的:
1.V1只提供了基本的image和member操作功能:创建镜像、删除、下载、列表、查询、更新,以及镜像tenant成员的创建、删除和列表。
2.V2除了支持V1的所有功能外,主要还增加了如下功能:
镜像location的添加、删除和修改等操作
metadata namespace操作
image tag操作
3.V1和V2对image store的支持是相同的。
Newton版本中V1已经属于老版本了,以后终将被移除
镜像上传的存储方式有多种:Swift、File system、 Amazon S3、HTTP、Ceph、Cinder等
镜像的数据存放
镜像的数据包括:镜像元数据和镜像本身
其中镜像的元数据是通过glance中的一个glance-registry模块保存的数据库中,而镜像本身则是通过glance中的Glance store Divers存放到各种存储设备中。
这次试验我使用的是file system作为后端的存储,即将镜像存放到本地文件系统中。上传或存储镜像的目录位于安装glance服务的机器上的默认目录:/var/lib/glance/images/,我们应该确认该目录有足够大的空间可以使用。
需要特别强调的一点是:file后端通常位于控制节点本身,因而这种后端并不适用于多节点部署
镜像的访问权限
public 公共的:可以被所有的项目使用。
private 私有的/项目的:只能被image owner所在的project使用(即只能在一个项目中使用)
shared 共享的:一个非共享的image可以共享给其他project。
protected 受保护的:protected的image不能被删除
镜像及任务的各种状态
下图为官网图

注解:
queued:没有上传image数据,只有db中的元数据
saving:正在上传image data。
active:当镜像上传完毕,镜像就可以被使用,此时属于active
deactivated:表示任何非管理员用户都无权访问镜像数据,禁止下载镜像,也禁止镜像导出和镜像克隆之类的操作(请求镜像数据的操作)
killed:表示上传过程中发生错误,并且镜像不可读
deleted:glance已经保存了该镜像的数据,但是该镜像不在可用,处于该状态的镜像将在不久后被自动删除
pending_delete:与delete想说,glance还没有清除镜像数据,处于该状态的镜像不可恢复
PS:上面的一些含义简单了解下就可以。在命令行中不常见,只有在安装的horizon后出现图形化界面后会有显示
glance包含的组件
glance-api
接受api请求,并提供相应操作,包括发现、检索、存储
glance-registry
存储、处理、检索镜像的元数据,元数据包括例如镜像大小、类型等
Database
可以选择组件喜欢的数据库存储进行元数据,大多数使用MySQL或者SQLite.
Storage repository for image files
指的是存储镜像文件的仓库或者称为backend,可以是:
1本地文件存储(或者任何挂载到glance-api控制节点的文件系统)
2.对象存储Object Stroage(Swift)
3.块存储RADOS(ceph)
4.VMware数据存储
5.HTTP
Glance与Openstack与其他服务的关系
对glance来说,他的客户端Glance Cli可以是:
1.glance的命令行工具
2.Horizon
3.nova
同keystone一样,glance是Iass的另外一个中心,keystone是关于权限的中心,而glance是关于镜像的中心。glance可以被终端用户或者nova服务访问:接受磁盘或者镜像的API请求和定义镜像元数据的操作
Glance工作流程详解
管网图

注解:
A client
使用glance服务的应用程序,可以是命令行工具,horizon,nova等
REST API
glance是一个client-server架构,提供一个REST API,而使用者就是通过REST API来执行关于镜像的各种操作
Glance Domain Controller
glance内主要的中间件实现,相当于调度员,作用是将glance内部服务的操作分发到各层(Auth认证,Notifier,Policy策略,Quota,Location,DB数据库连接)具体任务由每个层实现。
第一层:Auth
验证镜像自己或者它的属性是否可以被修改,只有管理员和镜像的拥有者才可以执行修改操作,否则保存。
第二层:Property protection
由glance domain controller控制的七层组件
可选层,只有在glance的配置文件中设置了property_protection_file参数才会生效,它提供了两种类型的镜像属性:
1.核心属性,是在镜像参数中指定的;
2元数据属性,是任意可以被附加到一个镜像上的key/value
该层的功能就是通过调用glance的public API来管理对meta属性的访问,你也可以在它的配置文件中限定这个访问
第三层:Notifier
把下列信息添加到queue队列中
1.关于所有镜像修改的通知
2.在使用过程中发生的所有的异常和警告
第四层:Policy
1.定义操作镜像的访问规则rules,这些规则都定义在/etc/policy.json文件中
2.监控rules的执行
第五层:Quota
如果针对一个用户,管理员为其规定好他能够上传的所有镜像的大小配额,此处的Quota层就是用来检测用户上传是否超出配额限制:
1.如果没有超出配额限制,那么添加镜像的操作成功
2.如果超出了配额,那么添加镜像的操作失败并且报错。
第六层:Location
与Glance Store交互,如上传下载等。由于可以有多个存储后端,不同的镜像存放的位置都被该组件管理。
1.当一个新的镜像位置被添加时,检测该URI是否正确。
2.当一个镜像位置被改变时,负责从存储中删除该镜像。
3.阻止镜像位置的重复
第七层:DB
1.实现了与数据库API的交互
2.将镜像转换为相应的格式以记录在数据库中。并且从数据库接收的信息转换为可操作的镜像对象。
Registry Layer
可选层,用来组织安全
通过使用这个单独的服务,来控制Glance Domain Controller与Glance DB之间的通信
Clance DB
glance服务使用同一一个核心库Glance DB,该库对glance内部所有依赖数据库的组件来说是共享的。
Glance Store
用来组织处理Glance和各种存储后端的交互
所有有的进行文件操作都是通过调用Glance Store库执行的,它负责与外部存储端和(或)本地文件存储系统的交互。
Glance Store提供了一个统一的接口来访问后端的存储
Disk和Container格式
当我们添加一个镜像到glance时,你必须指定虚拟机的disk格式和container格式,关于disk格式请自行研究kvm等虚拟。
disk和container格式是每个部署的基本配置,常用的格式如下:
1.Disk Format
不同的虚拟化应用的厂针有不同的虚拟机镜像的disk格式:
raw
This is an unstructured disk image format
vhd
This is the VHD disk format, a common disk format used by virtual machine monitors from VMware, Xen, Microsoft, VirtualBox, and others
vhdx
This is the VHDX disk format, an enhanced version of the vhd format which supports larger disk sizes among other features.
vmdk
Another common disk format supported by many common virtual machine monitors
vdi
A disk format supported by VirtualBox virtual machine monitor and the QEMU emulator
iso
An archive format for the data contents of an optical disc (e.g. CDROM).
ploop
A disk format supported and used by Virtuozzo to run OS Containers
qcow2
A disk format supported by the QEMU emulator that can expand dynamically and supports Copy on Write
aki
This indicates what is stored in Glance is an Amazon kernel image
ari
This indicates what is stored in Glance is an Amazon ramdisk image
ami
This indicates what is stored in Glance is an Amazon machine image
2.Container Format
容器container格式是指虚拟机映像是否包含一个文件格式,该文件格式还包含有关实际虚拟机的元数据。
需要注意的是:容器格式字符串在当前并不会被glance或其他OpenStack组件的使用,所以如果你不确定,简单的将容器格式指定bare是安全的。
你可以设置如下容器格式:
bare
This indicates there is no container or metadata envelope for the image
ovf
This is the OVF container format
aki
This indicates what is stored in Glance is an Amazon kernel image
ari
This indicates what is stored in Glance is an Amazon ramdisk image
ami
This indicates what is stored in Glance is an Amazon machine image
ova
This indicates what is stored in Glance is an OVA tar archive file
docker
This indicates what is stored in Glance is a Docker tar archive of the container filesystem
openstack之Glance介绍的更多相关文章
- openstack架构简单介绍J版(更新中)
title : OPENSTACK架构简单介绍 openstack的发展及历史 openstack是什么? OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算软件,以A ...
- OpenStack核心组件-glance镜像服务
1. glance介绍 Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚拟机镜像的metadata ...
- openstack核心组件--glance镜像(2)
一.glance介绍: Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚 ...
- OpenStack组件——Glance镜像服务
1.glance介绍 Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚拟机镜像的metadata及 ...
- openstack核心组件——glance— 镜像服务(6)
云计算openstack核心组件——glance— 镜像服务(6) 一.glance介绍: Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像 ...
- 云计算openstack核心组件——glance— 镜像服务(6)
一.glance介绍: Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚 ...
- OpenStack (glance 镜像服务)
glance介绍 glance 提供云虚拟机上的服务镜像(Image)功能,该模块可看成车间里的模具生产部门,其功能包括虚拟机镜像的查找.注册和检索等.该模具最基本的使用方式就是在为云虚拟机实例提供安 ...
- 云计算OpenStack核心组件---glance镜像服务(6)
一.glance介绍: Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚拟机镜像的metadata ...
- OpenStack:安装Glance
>安装Glance1. 安装# apt-get install glance python-glanceclient删除sqlite文件rm -f /var/lib/glance/glance. ...
随机推荐
- 成都Uber优步司机奖励政策(2月22日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Mac iTem2 自动登录服务器配置
假设你要连接的服务器地址为123.123.123.123,端口号为8888,用户名为root,密码为mimamima 编写shell文件"login_server.sh",并放置于 ...
- Ruby 基础教程1-9
异常 1.异常结构 [ begin] ... rescue [retry] ... [ensure] . ...
- 最新flowable研究学习及其汉化flowable6.3中文
flowable 是activiti的分支,现在感觉比activiti要强大一些,官网是 https://flowable.org/ 下载最新的6.31版本. 放到tomcat下面,汉化需要对flow ...
- 用python读取配置文件config.ini
还在学习中...写的有点凌乱 感觉还是应该先学会读取配置文件才行,把一些经常需要修改的但是又经常需要用到的参数放到配置文件中方便使用(我是这么觉得的) 首先是config.ini的存放位置,我们把它放 ...
- lintcode174 删除链表中倒数第n个节点
删除链表中倒数第n个节点 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 注意事项 链表中的节点个数大于等于n 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表1->2 ...
- 关于Python3中函数:
# 关于Python3中函数: - 定义 定义函数使用关键字def,后接函数名和放在圆括号()中的可选参数列表,函数内容以冒号起始并且缩进.一般格式如下:``` def 函数名(参数列表): &quo ...
- vue 与jq 的对比
vue.react和angular,众所周知,他们是前端框架的3个大佬.这篇主要想对比一下用vue和用jq的区别,至于和其他框架的对比,我想vue的官网说的更为详细. 我算是独自用vue写过一个小型项 ...
- kaldi HMM-GMM全部训练脚本分解
目录 train_mono.sh train_deltas.sh train_lda_mllt.sh train_sat.sh train_mono.sh 单音素训练脚本: //初始化,[topo f ...
- UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战
发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...