首页 > 代码库 > OpenStack组件系列?glance简介
OpenStack组件系列?glance简介
Glance项目提供虚拟机镜像的发现,注册,取得服务。
Glance提供restful API可以查询虚拟机镜像的metadata,并且可以获得镜像。
通过Glance,虚拟机镜像可以被存储到多种存储上,比如简单的文件存储或者对象存储(比如OpenStack中swiftx项目)。
Glance,像所有的OpenStack项目一样,遵循以下思想:
1.基于组件的架构 便于快速增加新特性
2.高可用性 支持大负荷
3.容错性 独立的进程避免串行错误
4.开放标准 对社区驱动的API提供参考实现
Glance的几个重要概念:
1.Image identifiers Image使用URI作为唯一标识,URL符合以下格式:
<Glance Server Location>/images/<ID>
Glance Server Location是镜像的所在位置, ID是镜像在Glance的唯一标识。
2.Image Statuses 共四种状态。
queued 标识该镜像ID已经被保留,但是镜像还未上传。
saving 标识镜像正在被上传。
active 标识镜像在Glance中完全可用。
killed 标识镜像上传过程中出错,镜像完全不可用。
3.Disk and Container format
Disk Format:raw vhd vmdk vdi iso qcow2 aki ari ami
Container Format: ovf bare aki ari ami
当disk format为aki ari ami时,disk format 和container format一致。
4.Image Registries
使用Glance,镜像metadata可以注册至image registries。
只要为image metadata提供了rest like API,任何web程序可以作为image registries与Glance对接。
当然,Glance也提供了参考实现。
更多信息可以参考on
Controlling Servers,来自于Glance提供的Glance registry server。
Glance提供了如下Rest-like API:
GET /images Return brief information about public images GET /images/detail Return detailed information about public images GET /images/<ID> Return metadata about an image in HTTP headers POST /images Register metadata about a new image PUT /images/<ID> Update metadata about an existing image DELETE /images/<ID> Remove an image‘s metadata from the registry
通过 GET /images and GET /images/detail对镜像过滤查询
-
name=NAME
Filters images having a name attribute
matching NAME. -
container_format=FORMAT
Filters images having a container_format attribute
matching FORMATFor more information, see About Disk and Container Formats
-
disk_format=FORMAT
Filters images having a disk_format attribute
matching FORMATFor more information, see About Disk and Container Formats
-
status=STATUS
Filters images having a status attribute
matching STATUSFor more information, see About Image Statuses
-
size_min=BYTES
Filters images having a size attribute
greater than or equal to BYTES -
size_max=BYTES
Filters images having a size attribute
less than or equal to BYTES
These two resources also accept sort parameters:
-
sort_key=KEY
Results will be ordered by the specified image attribute KEY.
Accepted values include id, name, status, disk_format,container_format, size, created_at (default)
and updated_at. -
sort_dir=DIR
Results will be sorted in the direction DIR.
Accepted values are asc for
ascending or desc (default)
for descending.
POST /images
{‘image‘: {‘id‘: <ID>|None, ‘name‘: <NAME>, ‘status‘: <STATUS>, ‘disk_format‘: <DISK_FORMAT>, ‘container_format‘: <CONTAINER_FORMAT>, ‘properties‘: [ ... ] } }
如果输入不满足以下条件,将返回400错误:
- status must
be non-empty, and must be one of active, saving, queued, or killed - disk_format must
be non-empty, and must be one of ari, aki, ami, raw, iso, vhd, vdi, qcow2, or vmdk - container_format must
be non-empty, and must be on of ari, aki, ami, bare, or ovf - If disk_format or container_format is ari, aki, ami,
then both disk_format and container_format must
be the same.
Glance的架构:
Glance被设计为可以使用多种后端存储。
前端通过API Server向多个Client提供服务。
Glance目前提供的参考实现中Registry Server仅是使用Sql数据库存储metadata
Glance目前支持S3,Swift,简单的文件存储及只读的HTTPS存储。
后续也可能支持其他后端,如分布式存储系统(SheepDog或Ceph)。
OpenStack组件系列?glance简介