赞
踩
glance服务本身不提供镜像,是用来管理镜像。glance服务使用户能够发现,注册,检索虚拟机的镜像,它提供一个能够查询虚拟机镜像元数据和检索真实镜像的REST API。
它在OpenStack中的项目名称为Glance。在早期的OpenStack版本中,Glance只有管理镜像的功能,并不具有镜像存储功能。现在,Glance已发展成为集镜像上传、检索、管理和存储等多种功能的OpenStack核心服务。
镜像的英文为Image,又译为映像,通常是指一系列文件或一个磁盘驱动器的精确副本。镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用。
镜像服务就是用来管理镜像的,让用户能够发现、获取和保存镜像。在OpenStack中提供镜像服务的是Glance,其主要功能如下:
1.查询和获取镜像的元数据和镜像本身
2.注册和上传虚拟机镜像,包括镜像的创建、上传、下载和管理
3.维护镜像信息,包括元数据和镜像本身
4.支持多种方式存储镜像,包括普通的文件系统、Swift、Amazon S3等
5.对虚拟机实例执行创建快照命令来创建新的镜像,或者备份虚拟机的状态
删除、修改,元数据和名称空间操作,以及镜像标记操作
接受云系统镜像的创建,删除,读取请求
glance-api 是接受 rest api请求的。完成诸如镜像的查找,获取,上传,删除等操作,默认是监听9292端口
Glance提供的RESTful API版本
v1只提供基本的镜像和成员操作功能,包括镜像创建、删除、下载、列表、详细信息查询、更新,以及镜像租户成员的创建、删除和列表
v2除了支持v1的所有功能外,主要增加了镜像位置的添加、
云系统的镜像注册服务
glance-registry 是用于Mysql的数据交互,用户存储或获取镜像的元数据(metadata);提供镜像元数据相关的REST接口,通过glance-Registry,可以向数据库中写入或获取镜像的各种数据。glance-Registry监听的端口是9191.Glance数据库中有两种表,一张是image表,主要存储了镜像格式,大小等信息;另一张是image property表,主要存了镜像定制化信息。
image-store是一个存储的接口层,通过这个接口,glance可以获取镜像,image store支持的存储有Amazon的S3,Openstack本身的swift,还有诸如ceph,sheepdog,GluasterFS等分布式存储,image store是镜像保存与获取的接口,它仅仅是一个接口层,具体的实现需要外部的存储支持。
虚拟机镜像文件磁盘格式
raw:无结构的磁盘格式
优点:访问速度非常快
缺点:不支持动态扩容、前期耗时多(创建20G磁盘类比workstation)
vhd:该格式通用于VMware、Xen、VirtualBox以及其他虚拟机管理程序(微软公司提出的格式)
vhdx:vhd格式的增强版本,支持更大的磁盘尺寸
vmdk:—种比较通用的虚拟机磁盘格式(vmware公司想要统一虚拟化平台的一种格式)
vdi:由VirtuaBox虚拟机监控程序和QEMU仿真器支持的磁盘格式(VirtulBox官方支持的结构)
iso:用于光盘(CD-ROM)数据内容的档案格式(基本类型)
ploop:由Virtuozzo支持,用于运行OS容器的磁盘格式
qcow2:由QEMU仿真支持,可动态扩展,支持写时复制(Copy on Write)的磁盘格式aki:在Glance中存储的Amazon内核格式(Qemu支持的类型)
ari:在Glance中存储的Amazon虚拟内存盘(Ramdisk)格式 ami:在Glance中存储的Amazon机器格式
aki:在Glance中存储的Amazon内核格式
##AKI、ARI、AMI:亚马逊所推出支持的类型
镜像文件容器格式
bare:没有容器或元数据“信封”的镜像
ovf:开放虚拟化格式
ova:在Glance中存储的开放式虚拟化设备格式
aki:在Glance中存储的Amazon内核格式
ari:在Glance中存储的Amazon虚拟内存盘(Ramdisk)格式
Docker:在Glance中存储的容器文件系统的Dockerd的tar档案
注: 如果不能确定选择哪种容器格式,那么简单地容器格式指定为bare是安全
queued:这是一种初始化状态,镜像文件刚被创建,在Glance数据库只有其元数据,镜像数据还没有上传至数据库中
saving:是镜像的原始数据在上传到数据库中的一种过渡状态,表示正在上传镜像
uploading:指示已进行导入数据提交调用,此状态下不允许调用PUT/file(saving状态会执行PUT/file,这是另外一种上传的方法)
importing:指示已经完成导入调用,但是镜像还未准备好使用
Public(公共的):可以被所以的项目使用
Private(私有的):只有被镜像所有者所在的项目使用
Shared(共享的):一个非公有的镜像可以共享给其他项目,这是通过项目成员(member-*)操作来实现的
Protected(受保护的):这种镜像不能被删除
这是一个典型的CS架构
客户端是Glance服务应用程序使用者,是OpenStack命令行工具、Horizon或Nova服务
glance-api是系统后台运行的服务进程,是进入Glance的入口。它对外提供REST API,负责接收用户的RESTful请求,响应镜像查询、获取和存储调用
glance-registry是系统后台运行的glance注册服务进程,负责处理与镜像元数据的RESTful请求,元数据包括镜像大小、类型等信息。Glance-api接收的请求转发给glance-registry。glance-registry会解析请求内容,并与数据库交互,存储、处理、检索镜像的元数据。glance-api对外提供API,而glance-registry的API只由glance-api使用
Glance的DB模块存储的是镜像的元数据,可以选用MYSQL、MariaDB、SQLite等数据库。镜像的元数据通过glance-registry存放在数据库中。注意,镜像本身(chunk数据)是通过glance存储驱动存放的各种存储后端中的。
存储后端(Store Backend)Glance自身并不存储镜像,它将镜像存放在后端存储系统中。镜像本身的数据通过glance_store存放在各种后端,并可从中获取。支持本地、对象存储、RBD块设备、Sheepdog分布式存储、Cinder块存储、VMware数据存储。
具体使用哪种backend,是在/etc/glance/glance-api.conf中配置的
流程解析
是存一些元数据信息的,不是真正存放镜像的数据库)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。