您的位置:首页 > 运维架构 > 网站架构

Openstack组件实现原理 — Glance架构(V1/V2)

2016-06-24 22:59 681 查看

目录

目录

Glance 安装列表

Glance Image service

Image service 的组件
Glance-Api

Glance-Registry

Glance-db

Image StoreStore Backend
Image

Glance 架构
Glance Restful API V1

Glance Restful API V2

Glance 安装列表

Openstack组建部署 — Glance Install

Glance Image service

Image service项目代号Glance,是Openstack的镜像服务组件。Glance主要提供了一个虚拟机镜像文件的存储、查询和检索服务,通过提供一个虚拟磁盘映像目录和存储库,为Nova的虚拟机提供镜像服务。现在Glance具有V1和V2(Openstack-F发布)两个版本。



Image service 的组件

Glance-Api

glance-api:是一个对外的API接口,能够接受外部的API镜像请求。主要用于分析、分发、响应各种镜像管理的
REST Request
,然后通过其他模块(EG. glance-registry、Store Backend后端存储接口)完成镜像的发现、获取、存储等操作。默认绑定端口是9292

Glance-Registry

glance-registry:用于存储、处理、获取
Image Metadata
。通过响应从
glance-api
发送过来的
Image Metadata REST Request
,然后与MySQL进行交互,实现
Image Metadate
的存储、处理、获取。默认绑定的端口是9191

Glance-db

glance-db:在Openstack中使用MySQL来支撑,用于存放
Image Metadate


Image Metadate(镜像元数据):指通过
glance-registry
来保存在MySQL Database中的镜像文件相关信息。

Image Store(Store Backend)

Image Store:用于存储镜像文件。通过Store Backend后端存储接口来与
glance-api
联系。通过这个接口,glance可以从Image Store获取镜像文件再交由Nova用于创建虚拟机。

Glance 通过Store Adapter(存储适配器)支持多种Imange Store方案



Glance允许上传私有或共有的不同格式镜像

Raw

Machine (kernel/ramdisk outside of image, a.k.a. AMI)

VHD (Hyper-V)

VDI (VirtualBox)

qcow2 (Qemu/KVM)

VMDK (VMWare)

OVF (VMWare, others)

Image

Image(镜像文件)的访问权限分为

Public 公共的:可以被所有的Tenant使用。

Private 私有的/项目的:只能被Image Owner所在的Tenant使用。

Shared 共享的:一个非公共的Image可以共享给指定的Tenant,通过
member-*
操作来实现。

Protected 受保护的:Protected Image不能被删除。

Image的状态类型

Queued:没有上传Image数据,只SQL Database中存有该镜像的元数据。

Saving:正在上传Image。

Active:正常状态。

Deleted/pending_delete: 已删除/等待删除的Image。

Killed:Image元数据不正确,等待被删除。

Image状态类型转换

‘queued’ => (‘saving’, ‘active’, ‘deleted’)

‘saving’ => (‘active’, ‘killed’, ‘deleted’, ‘queued’)

‘active’ => (‘queued’, ‘pending_delete’, ‘deleted’)

‘killed’ => (‘deleted’)

‘pending_delete’ => (‘deleted’)

‘deleted’ => ()

Glance 架构

Glance Restful API — V1

V1的功能:提供了基本的
Image
Member
操作

1. 镜像文件的创建、删除、查询、更改

2. 镜像Tenant成员的创建、删除和查询

V1包含有
glance-api
glance-registry
两个WSGI service,都提供了
REST API
接口来接收虚拟机镜像管理的请求。

两者的区别在于
glance-api
的REST API能够对外开放而
glance-registry
的REST API只能够被
glance-api
调用。

V1的架构



需要注意的是
glance-api
不会真正去处理
REST Request
,可以将
glance-api
再分为两部分:

一部分是中间件,主要用于对
REST Request
的分析、分发工作(EG. 分析出版本号)

另一部分来提供实际的服务(EG. 与Store Backend后端存储接口交互,实现镜像上传、下载)

所以若
glance-api
接收到涉及SQL Database的操作请求时,会调用
registry-clinet
并生成
HTTP
指令,然后转发给
glance-registry
API进行处理。

Glance Restful API — V2

V2的功能:除了拥有V1的功能之外,还能够:

1. 镜像Location的添加、删除和修改

2. Metadata、Namespace、Image tag操作

V2架构图



V2在实现上,把
glance-registry
glance-api
合并到了一起,减少了一个中间环节。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: