Glance是什么

在OpenStack中提供镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传查找镜像、删除镜像、编辑镜像基本信息的功能,在Bexar版本集成到项目中,在早期的glance管理中 glance只拥有管理镜像的功能,后续才添加了储存镜像的功能,属于OpenStack中的核心组件之一。

Glance的功能

  • Glance提供虚拟机镜像的发现,注册,取得服务。
  • Glance提供restful API可以查询虚拟机镜像的metadata,并且可以获得镜像。
  • 通过Glance,虚拟机镜像可以被存储到多种存储上,比如简单的文件存储或者对象存储(比如OpenStack中swiftx项目)
  • 维护镜像,包括元数据和镜像本体
  • 查询和获取镜像的元数据和本体

Glance中的相关概念

镜像(Mirroring)

  • 是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。可以把许多文件做成一个镜像文件,与GHOST等程序放在一个盘里用GHOST等软件打开后,又恢复成许多文件,RAID 1和RAID 10使用的就是镜像。常见的镜像文件格式有ISO、BIN、IMG、TAO、DAO、CIF、FCD,但在glance中镜像主要承载的是系统的副本。

images API的v1和v2版本

在Newton之前的版本中,glance支持两种REST API V1和V2,两者区别还是很明显的:

  • V1只提供了基本的image和member操作功能:创建镜像、删除、下载、列表、查询、更新,以及镜像tenant成员的创建、删除和列表。

  • V2除了支持V1的所有功能外,主要还增加了如下功能:

  1. 镜像location的添加、删除和修改等操作

  2. metadata namespace操作

  3. image tag操作

  4. V1和V2对image store的支持是相同的。

注:Newton版本中V1已经淘汰了

镜像上传的存储方式有多种:Swift、File system、 Amazon S3、HTTP、Ceph、Cinder等

镜像的数据存放

镜像的数据包括:镜像元数据和镜像本身

其中镜像的元数据是通过glance中的一个glance-registry模块保存的数据库中,而镜像本身则是通过glance中的Glance store Divers存放到各种存储设备中。

镜像的数据存放

镜像的数据包括:镜像元数据和镜像本身

其中镜像的元数据是通过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还没有清除镜像数据,处于该状态的镜像不可恢复

当我们添加一个镜像到glance时,你必须指定虚拟机的disk格式和container格式,关于disk格式请自行研究kvm等虚拟。

disk和container格式是每个部署的基本配置,常用的格式如下:

磁盘格式

  • 不同的虚拟化应用的厂针有不同的虚拟机镜像的disk格式:

raw

这是一种非结构化的磁盘映像格式

vhd

这是VHD磁盘格式,是VMware,Xen,Microsoft,VirtualBox和其他公司的虚拟机监视器使用的一种常见磁盘格式

vhdx

这是VHDX磁盘格式,它是vhd格式的增强版本,除了其他功能外,还支持更大的磁盘大小。

vmdk

许多常见的虚拟机监视器支持的另一种常见磁盘格式

vdi

VirtualBox虚拟机监视器和QEMU仿真器支持的磁盘格式

iso

光盘(例如CDROM)的数据内容的存档格式。

ploop

Virtuozzo支持并用于运行OS容器的磁盘格式

qcow2

QEMU仿真器支持的一种磁盘格式,可以动态扩展并支持“写时复制”

aki

这表明Glance中存储的是Amazon内核映像

ari

这表明Glance中存储的是Amazon ramdisk映像

ami

这表明Glance中存储的是Amazon机器映像

容器格式

容器container格式是指虚拟机映像是否包含一个文件格式,该文件格式还包含有关实际虚拟机的元数据。

需要注意的是:容器格式字符串在当前并不会被glance或其他OpenStack组件的使用,所以如果你不确定,简单的将容器格式指定bare是安全的。

容器格式

bare

这表明该图像没有容器或元数据信封

ovf

这是OVF容器格式

aki

这表明Glance中存储的是Amazon内核映像

ari

这表明Glance中存储的是Amazon ramdisk映像

ami

这表明Glance中存储的是Amazon机器映像

ova

这表明Glance中存储的是OVA tar存档文件

docker

这表明Glance中存储的是容器文件系统的Docker tar归档文件

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐