openstack g版 glance 源码分析
来源:互联网 发布:成都网络推广028zhiya 编辑:程序博客网 时间:2024/05/22 12:35
Glance主要任务是对openstack的所有镜像相关数据,进行相关的管理工作,是一个镜像数据管理中心。
Glance实现的功能主要有镜像管理,和缓存管理,和一些辅助的工具。我在前边的文章中对他的缓存机制有一个简单的介绍,这里就主要介绍一下他的其他功能。
存储管理的核心代码主要在glance-master/ glance/store下,glance实现了多种方式的数据后台存储,如文件系统方式,http方式swift方式,s3方式,gridfs方式,rbd方式。对于某种方式的实现他们主要是继承和实现base.py的Store基类,和location.py中的location基类。这些代码大家可以自己去看,代码中有详细的注释。我在这里解释一下几个概念schemes:模式,glance中的不同存储类型的,镜像资源的位置属性是通过url的形式。如时s3形式的存储描述"s3://<ACCESS_KEY>:<SECRET_KEY>@<S3_URL>/<BUCKET>/<OBJ>",文件系统的描述file:///var/lib/glance/images/12809466-fffd-4bdf-9227-c3c05c28a2c5。其中开头的s3: ,file:就是所谓的schemes,一种存储类型可能对应不止一种schemes。 变量SCHEME_TO_CLS_MAP存储
scheme_map[scheme] = {
'store_class': store_cls,# 对应scheme 的store类
'location_class': loc_cls,#对应scheme的location类
}
类型的信息,来实现相关的注册,来方便其他程序的调用。如在启动bin中的glance-api时执行了glance.store.create_stores(), glance.store.verify_default_store()方法就是为了实现上述的注册,和相关验证。
Glance提供了两个web api服务一个是glance-api,一个是glance-registry。glance-registry其中很大的作用是充当内部api的作用,被glance-api,缓存服务等对外的api所调用。其中 glance-registry中定义了一个v2版的api,该api主要实现rpc的功能,就是直接通过web的方式来调用glance中的函数。glance-api中也出现了一个v2版的api,这个api最主要的特点是对img增加了一个tags信息的描述,通过tags增强对img的信息的描述和表达。Glance为了实现v2,增加了很多的代码,这些代码用了一种比较特殊的通过各种代理方法代理,再通过多层继承来实现相关功能,代码结构相对复杂,比较难看懂,这种处理方式可能是使程序更加容易扩展吧,我对此的理解也不是很深,希望有更好理解的朋友共同探讨一下。
其中glance中有一个glance-replicator工具,主要目的是为了方便多glance数据中心的管理,实现镜像之间拷贝比较等功能。
- openstack g版 glance 源码分析
- openstack G版源码分析
- Openstack G版Cinder源码分析
- Openstack liberty Glance上传镜像源码分析
- Openstack Glance源码架构解析
- CentOS6.2下源码安装openStack glance
- CentOS6.2下源码安装openStack glance
- openstack glance
- [openstack][G版]keystone源码学习
- Glance 源码分析(2) – 配置文件
- Glance源码
- OpenStack Glance 配置
- openstack之glance篇
- openstack 学习之glance
- OpenStack Glance简介
- openStack glance index
- openstack-glance API
- OpenStack glance 认证函数
- 2013年4月比较购物行业网站综合影响力排名
- ExtJS4.1+MVC3+Spring.NET1.3+EF5 整合八:ExtJS及其MVC
- vb.net用默认浏览器打开html页
- 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true"
- FFMpeg的output_example.c例子分析
- openstack g版 glance 源码分析
- 深入理解计算机系统--网络编程(2)格式转换函数
- 异步get请求
- fedora13编译Qtopia问题
- C++多态、继承的简单分析
- ListView浅析 笔记
- android中aidl的使用
- 介绍一款免费的js天气预报接口
- php遍历数组 list foreach each方法总结