openstack -- glance
一、what is glance?
1、 glance 是 openstack 项目中负责 image server 管理的模块,其功能包括虚拟机镜像的查看、注册、检索
1)、 what is image? && why should we use the image?
- 传统安装 windows+ms office
如果要安装的系统多了效率就很低
时间长,工作量大
安装完还要进行手工配置,比如安装其他的软件,设置 IP 等
备份和恢复系统不灵活
- openstack 是这么 use 的
先手工安装好这么一个虚机
然后对虚机执行 snapshot,这样就得到了一个 image
当有新员工入职需要办公环境时,立马启动一个或多个该 image 的 instance(虚机)就可以了
备注:第一步,跟传统的一样,但2,3步,几乎全自动化,秒级别,备份也极为方便快捷
2)、 what is image server?
- image server 的功能是管理 image,让用户发现、获取、保存 image
- openstack 中 image server 的功能组件就是 glance
- 提供 rest API 让用户能查询和获取 image 的元数据和 image 本身
- 支持多种格式的 image 存储,如 普通文件系统、swift、Amazon S3 等
- 对 Instance 执行 Snapshot 创建新的 image
二、glance in openstack
三、基本概念认知
1、 image identifiers(image URL)
1)、 全局唯一格式:<Glance Server Location>/images/<ID>
2、 image status :
2)、 Queued:镜像ID已经被保留,镜像还没有上传
3)、 Saving:镜像正在被上传
4)、 Active:镜像可以使用了
5)、 Killed:镜像损坏或者不可用
6)、 Deleted:镜像被删除
3、 disk format :
4、 container format : !ovf (方便虚拟机的 import 和 input )
四、glance架构
1、 glance API
1)、 glance API 是系统后台运行的服务进程
2)、 不会真正处理 API 请求
- 如果是与 image metadata (元数据)相关的操作,glance API 将请求转发给 glance registry
- 如果是与 image 自身存取相关的操作,glance API 会把请求转发给该 image 的 store backend
- 补充:
a、什么是元数据:
任何文件系统中的数据分为数据和元数据。
数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode...)等等。
在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。
b、元数据的管理方式:
元数据管理有两种方式,集中式管理和分布式管理。
集中式管理 是指在系统中有一个节点专门司职元数据管理,所有元数据都存储在该节点的存储设备上。所有客户端对文件的请求前,都要先对该元数据管理器请求元数据。
分布式管理 是指将元数据存放在系统的任意节点并且能动态的迁移,对元数据管理的职责也分布到各个不同的节点上。
c、管理方式的优缺点:
大多数集群文件系统都采用集中式的元数据管理。因为集中式管理实现简单,一致性维护容易,在一定的操作频繁度内可以提供较满意的性能。
缺点是单一失效点问题,若该服务器失效,整个系统将无法正常工作。而且,当对元数据的操作过于频繁时,集中的元数据管理成为整个系统的性能瓶颈。
分布式元数据管理的好处是解决了集中式管理的单一失效点问题, 而且性能不会随着操作频繁而出现瓶颈。其缺点是,实现复杂,一致性维护复杂,对性能有一定影响。
2、 glance registry
1)、 Image 的 metadata 会保持到 database 中,默认是 MySQL
2)、 glance-registry 是系统后台运行的服务进程。 负责处理和存取 image 的 metadata,例如 image 的大小和类型。
3、 store adapter
1)、 Glance 自己并不存储 image。 真正的 image 是存放在 backend(store adapter) 中的
2)、 具体使用哪种 backend,是在 /etc/glance/glance-api.conf 中配置的
3)、 backend
- S3
- swift
- filesystem:默认存储后端
- RBD:Ceph的Rados block device (RBD)
- http:通过HTTP在Internet上读取可用的虚拟机镜像
- !其他分布式存储