Glance是OpenStack的镜像管理模块,负责镜像的上传、下载等管理。
Glance项目提供虚拟机镜像的查找、注册和重现,使用RESTful接口接受虚拟机镜像管理的查询请求。
Glance-API和Glance-Registry是两个独立运行的服务,在sbin目录下,看过glance部署文章的同学知道,glance部署的最后一步就是启动glance-api和glance-registry这两个服务。这两个服务作为WSGI,会分别响应来自用户的RESTful请求,
Glance对外服务的入口主要有两个
1、Glance-API:主要负责接收响应镜像管理命令的Restful请求,分析消息请求信息并分发其所带的命令(如新增、删除、更新元数据等)。默认绑定端口是9292。
2、Glance-Registry:主要负责接收响应镜像元数据命令的Restful请求,分析消息请求信息并分发其所带的命令(如获取元数据,更新元数据等)。默认绑定端口是9191。
在/etc/glance目录下有两个文件glance-api-paste.ini和glance-registry-paste.ini,两个入口服务启动后,会用配置文件分析模块读取这两个文件,执行其文件中标注的需要执行的WSGIapp和middleware。简述paste文件中的概念:
app:实际处理REST API请求的python类。
filter:一种装饰器,为app提供一层封装,在app处理请求之前会先调用filter的对象。
pipeline:所对应的对象是对filter和app的的封装,他将多个filter和某个app绑在一起,在app处理请求之前要先通过pipline指定的在app之前的filter的处理。
在glance-registry中有
[app:registryapp] paste.app_factory = glance.registry.api.v1:API.factory
证明这是一个独立的服务程序
我们以glance-api为例,分析其服务入口程序
""" Glance API Server """ import gettext import os import sys # If ../glance/__init__.py exists, add ../ to Python search path, so that # it will override what happens to be installed in /usr/(local/)lib/python... possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), os.pardir, os.pardir)) if os.path.exists(os.path.join(possible_topdir, 'glance', '__init__.py')): sys.path.insert(0, possible_topdir) gettext.install('glance', unicode=1) from glance.common import config from glance.common import wsgi from glance.common import exception from glancmon import log import glance.store def fail(returncode, e): sys.stderr.write("ERROR: %s\n" % e) sys.exit(returncode) if __name__ == '__main__': try: config.parse_args() log.setup('glance') glance.store.create_stores() glance.store.verify_default_store() server = wsgi.Server() server.start(config.load_paste_app(), default_port=9292) server.wait() except exception.WorkerCreationFailure, e: fail(2, e) except RuntimeError, e: fail(1, e)
首先程序会调用glance.store.create_stores,注册与后端存储(swift、s3、filesystem等)相关的控制模块,并校验默认存储方式。
紧接着启动一个Http Server,Openstack的WSGI SERVER用到了eventlet这个绿色线程的组件。通过config.load_paste_app()方法,会从上面提到的glance-api-paste.ini配置文件中读取要启动的WSGI app,并在server中启动,并让server线程等待接收http rest查询响应。
相关推荐
paraview-glance-源码.rar
OpenStack-glance服务-glance-api.conf配置文件,在配置OpenStack的glance服务中,配置文件glance-api.conf需要进行部分修改,进而来适应各种服务,该文件为修改完成的glance-api.conf文件内容。
Glance是一个用于替代top/htop的跨平台监控工具,提供一个基于Web的展示界面,它可以根据用户界面大小动态调整显示的信息。
openstack glance 组件1.1版本
Glance监控工具是HP-UX系统中一个强大且易用的在线监控工具
Glance安装配置简介
openstack项目中关于glance的应用与注意事项
云计算Glance 管理
Glance 项目为 Openstack 提供了用来发现、注册和获取虚拟机映像的服务,提供 RESTful API 用来查询 VM 映像元数据。 标签:Glance
cinder、swift、glance、keystone等openstack四大模块的源码
Glance_监控命令在HP_UX_上的使用
描述怎样用glance查看进程内存使用过大的问题
glance监控命令在HP小型机上面的使用
是基于创建的一个开源Javascript可视化应用程序,旨在充当伴侣。 它是工具套件的一部分。 学习资源 常规信息可在和主页上找到。 社区讨论是在。 可从获得商业和。 正在创建其他文档,并将在我们的上创建这些将其...
Glance是一个开放源代码的Android数据库工具包库,可以帮助您使用干净的UI界面浏览所有数据库数据。 Glance Glance是一个开放源代码的Android数据库工具包库,可以帮助您使用干净的UI界面浏览所有数据库数据。 ...
Glance是一个开放源代码的Android数据库工具包库,可以帮助您使用干净的UI界面浏览所有数据库数据。 Glance受LeakCanary启发,可以作为依赖库包含在您的项目中。 它将搜索当前应用程序的内部和外部存储,以自动查找...
概览OpenStack Ansible角色 地位 ... sqlite:////var/lib/glance/glance.sqlite 数据库URI glance_user glance Keystone上定义的图像服务的管理员用户 glance_pass glance_pass_default 在Keysto
004.Glance详解1
OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageService(Glance)。 OpenStackCompute[1],为云组织的控制器,它提供一个工具...
Account at a Glance是由Dan Walin主持开发的一个Web应用程序, 这是一个实际上线的产品,由真实的Team开发,并非是为了演示某些技术而做的Demo程序。 前端基于HTML5+jQuery,后端基于ASP.NET MVC+EF Code First。 ...