马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
Glance用来作为独立的大规模镜像查找服务,当它与Nova和Swift配合使用时,就为openstack提供了虚拟机镜像的查找服务,像所有的OpenStack项目一样,遵循以下设计思想: - 基于组件的架构 - 便于快速增加新特性
- 高可用性 - 支持大负荷
- 容错性 - 独立的进程地址空间,避免串行错误
- 开放标准 - 对社区驱动的API提供参考实现) y z1 r; S6 N) J6 k
1. Glancle架构 Glance主要由三个部分构成:glance-api、glance-registry以及image store。 - Glance-api接收REST API的请求,类似nova-api;
* ]4 U. L' G. e- @) Q1 w/ d- x/ Y
Glance-api在功能上与nova-api十分类似,都是接收REST API请求,然后通过其他模块(glance-registry及image store)来完成诸如镜像的查找、获取、上传、删除等操作,i默认监听端 口9292。 - glance-registry用于与MySQL数据库交互,用于存储或获取镜像的元数据(metadata);5 L+ r0 q: z, g1 W$ I* p+ q0 i2 F
Glance-registry用于提供镜像元数据相关的REST接口,通过glance-registry,可以向数据库中写入或获取镜像的各种数据,glance-registry监听端口9191。Glance的数据库中有两张表, 一张是image表,另一张是image property表。Image表保存了镜像格式、大小等信息;image property表则主要保存镜像的定制化信息。 - image store是一个存储的接口层,通过这个接口,glance可以获取镜像,image store支持的存储有Amazon的S3、OpenStack本身的Swift,还有诸如ceph,sheepdog,GlusterFS等分布式存储。9 d- F6 R) n& M4 E5 h0 F2 [0 L
Image store是镜像保存与获取的接口,它仅仅是一个接口层,具体的实现需要外部的存储支持,目前,支持的接口有Amazon S3、GlusterFS、Swift,sheepdog,ceph等。 Glance体系结构如下图所示,通过glance,OpenStack的三个模块计算组件(nova)、镜像管理组件(glance)、存储组件(swift,ceph,sheepdog等)被连接成一个整体,Glance为Nova提供镜像的查找等操作,而存储组件又为Glance提供了实际的存储服务。而Swift,ceph,gluster,sheepdog等又是Glance存储接口的一些具体实现,Glance的存储接口还能支持S3等第三方的商业组件。
# ?) [0 v; E& Y8 P& M2. Openstack创建虚拟机的过程中镜像文件格式的变化过程 这里通过OpenStack的horizon组件来创建一个m1.small的virtual machine,来详细分析下镜像格式的变化以及glance底层具体执行的哪些操作。 (1)首先看一下Glance管理的镜像,如果采用local storage,glance将镜像文件默认存储到/var/lib/glance/image目录下,这里我们选择c036d689-0336-4fcd-a8e0-4aed4dd5e420这个镜像来作为创建虚拟机的模板,此镜像是通过如下命令添加的,因此在horizon中显示的名称为:Precise x86_64。# `( S+ j2 J L- q M7 ]- N- i
- glance add name="Precise x86_64" is_public=true
- container_format=ovf disk_format=qcow2
- < ubuntu-12.04-server-cloudimg-amd64-disk1.img
! E- w- p* d( E+ {, [ $ m7 p6 h; W1 }
3. cache机制 如果之后创建的vm的类型也是m1.small,并且是同一个image,将不会再去glance下载image文件,而是直接利用本地_base下的d265f9d66b8be65448e6c9147a83d65a300e1852_10来直接创建vm的disk文件,大大减少的vm的部署时间。 7 c9 g. V" D) k0 _5 q2 Z
|