OpenStack组件精讲——镜像服务

一、为什么要glance?

要理解镜像服务,先得搞清楚什么是镜像以及为什么要用镜像?

在传统 IT 环境下,安装一个系统要么从安装系统从头安装,要么用 Ghost 等克隆工具恢复。这两种方式有如下几个问题:

  1. 如果要安装的系统多了效率就很低
  2. 时间长,工作量大
  3. 安装完还要进行手工配置,比如安装其他的软件,设置 IP 等
  4. 备份和恢复系统不灵活

云环境下需要更高效的方案,这就是使用镜像。 镜像是像一个模板,里面包含了基本的操作系统和其他的软件。

举例来说,有家公司需要为每位员工配置一套办公用的系统,一般需要一个 Win7 系统再加 office 软件。

OpenStack 是这么玩的:

  1. 先手工安装好这么一个虚拟机
  2. 然后对虚机执行 snapshot,这样就得到了一个模板镜像
  3. 当有新员工入职需要办公环境时,立马启动一个或多个该镜像(模板)的 instance(虚拟机)就可以了

在这个过程中,第 1 步跟传统方式类似,需要手工操作和一定时间,但第 2、3 步非常快,全自动化,一般都是秒级别并且 2、3 步可以循环做。 比如公司新上了一套 OA 系统,每个员工的 PC 上都得有客户端软件,那么可以在某个现有虚拟机中先手工安装好 OA 客户端,然后执行 snapshot 操作,得到新的镜像,以后可以就直接使用新镜像创建虚拟机了。另外,snapshot 还有备份的作用,能够非常方便的恢复系统。

二、glance的功能

镜像服务的功能是管理镜像,让用户能够发现、获取和保存镜像。在 OpenStack 中,提供镜像服务的是 Glance,其具体功能如下:

①查询和获取镜像的元数据和镜像本身

②注册和上传虚拟机镜像,包括镜像的创建、上传、 下载和管理

③维护镜像信息,包括元数据和镜像本身。

④支持多种方式存储镜像,包括普通的文件系统、Swift. Amazon S3等

⑤对虚拟机实例执行创建快照命令来创建新的镜像,或者备份虚拟机的状态。

三、glance数据传输流程

 

glance-api 是系统后台运行的服务进程,对外提供 REST API,响应 image 查询、获取和存储的调用,不会真正处理请求。 如果操作是与 image metadata(元数据)相关,glance-api 会把请求转发给 glance-registry,glance-registry会解析请求内容,并与数据库(DB)交互存储、处理、检索镜像的元数据。

如果操作是与 image 自身存取相关,glance-api 会把请求转发给该 image 的 store backend。

glance-registry:是系统后台运行的glance注册服务进程,负责处理与镜像元数据相关的RESTful请求,元数据包括镜像大小、类型等信息。

DB模块:存储的是镜像的元数据,可以选用MYSQL、MariaDB、 SQLite等数据库。


存储后端(Store Backend) 自身并不存储镜像,它将镜像存放在后端存储系统中。镜像本身的数据通过glance_ store存放在各种后端,并可从中获取。支持本地存储、对象存储、RBD块设备、Sheepdog分布式存储、Cinder块存储、VMware数据存储。
 

四、镜像格式

raw                      无结构的磁盘格式

vhd                      此格式通用于VMware、Xen、 VirtualBox以及 其他虚拟机管理程序

vhdx                    vhd格式的增强版本,支持更大的磁盘尺寸

vmdk                   一种比较通用的虚拟机磁盘格式

vdi                       由VirtualBox虛拟机监控程序和QEMU仿真器支持的磁盘格式

iso                       用于光盘(CD- ROM)数据内容的档案格式

ploop                   由Virtuozzo支持,用于运行OS容器的磁盘格式

qcow2                 由QEMU仿真支持,可动态扩展,支持写时复制(Copy on Write)的磁盘格式

aki                       在Glance中存储的Amazon内核格式

ar                        在Glance中存储的Amazon虚拟内存盘(Ramdisk)格式

ami                      在Glance中存储的Amazon机器格式

五、镜像状态

1、镜像只是上传到glance,被glance统一管理 

queued :这是一种初始化状态, 镜像文件刚被创建,在Glance数据库只有其元数据,镜像数据还

                 没有上传至数据库中

saving:是镜像的原始数据在上传到数据库中的一种过渡状态,表示正在上传镜像

uploading:指示已进行导入数据提交调用,此状态下不允许调用PUT/file (saving状态会执行

                   PUTfile,这是另外一种上传的方法)

importing:指示已经完成导入调用,但是镜像还未准备好使用

2、在使用过程中可能呈现的五种状态

active:表示当镜像数据成功上传完毕,成为Glance中可用的镜像

deactivated:表示任何非管理员用户都无权访问镜像数据,禁止下载镜像,也禁止镜像导出和镜像克隆之类的操作

killed:表示镜像上传过程中发生错误,镜像不可读.

deleted:镜像将在不久后被自动删除该镜像不可再用,但是目前Glance仍然保留该镜像的相关信息和原始数据

pending_ delete:与deleted相似, Glance还没有清除镜像数据,但处于该状态的镜像不可恢复

六、访问权限

①Public(公共的):可以被所有的项目使用

②Private (私有的):只有被镜像所有者所在的项目使用

③Shared (共享的):一 个非共有的镜像可以共享给其他项目,这是通过项目成员(member-*) 操作来实现

④Protected (受保护的):这种镜像不能被删除

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值