Glance简介
Glance是OpenStack平台中负责镜像服务的组件,其功能包括系统镜像的查找、注册和获取等。简单来说glance的功能就是用户可以通过其提供的REST API查询和获取镜像元数据,通过Glance,虚拟机镜像进行可以被存储到多种存储上,比如简单的文件存储或者对象存储。
【资料图】
Glance架构
glance架构大致可以分为四部分,即:
glance-apiglance-registryglance DBstore backend
它们的关系大致是这样的
glance-api
glance-api是后台运行的服务程序,它对外提供REST API,响应image查询、获取和存储的调用请求。 与其他OpenStack组件一样,glance-api不会真正处理请求。当请求是与image的元数据有关,glance-api会将请求转交给glance-registry;如果请求与image的存取有关,则将请求转发至该image的后端存储。
在控制节点查看glance-api进程
ps aux | grep glance-apiglance 7233 2.5 4.9 415492 100812 ? Ss 16:21 0:02 /usr/bin/python2 /usr/bin/glance-apiglance 8033 1.0 4.6 415492 94372 ? S 16:23 0:00 /usr/bin/python2 /usr/bin/glance-api
glance-registry
glance-registry是后台运行的服务程序,它负责保存和处理image的元数据,例如image的大小类型都属于image的元数据。
在控制节点查看glance-registry的进程
ps aux | grep glance-registryglance 7230 0.6 3.8 373152 77924 ? Ss 16:21 0:01 /usr/bin/python2 /usr/bin/glance-registryglance 8027 0.0 3.7 373152 75584 ? S 16:23 0:00 /usr/bin/python2 /usr/bin/glance-registry
glance DB
我们在部署glance服务时首先要在数据库中创建一个名为glance的database,里面存放的就是image的元数据,在控制节点上查看glance的database信息。
use glance;show tables;+----------------------------------+| Tables_in_glance |+----------------------------------+| alembic_version || artifact_blob_locations || artifact_blobs || artifact_dependencies || artifact_properties || artifact_tags || artifacts || image_locations || image_members || image_properties || image_tags || images || metadef_namespace_resource_types || metadef_namespaces || metadef_objects || metadef_properties || metadef_resource_types || metadef_tags || migrate_version || task_info || tasks |+----------------------------------+
store backend
glance自己并不存储image,image的实体存放在后端存储中。 glance支持多种后端存储,具体的存储类型设置在/etc/glance/glance-api.conf下的[glance_store]项目里。
glance创建镜像
对于glance来说,通过UI界面和命令行都能创建镜像,但是命令行方式功能更多,而且还能放在脚本里执行,所以还是推荐使用命令行方式。
查看命令帮助
glance --helpopenstack image --help
创建镜像前首先要将镜像上传到控制节点,然后执行创建命令
openstack image create "cirros" --file cirros-0.3.3-x86_64-disk.img \--disk-format qcow2 --container-format bare --public