2.4镜像服务

2.4.1Glance概述

Glance由API和registry

Glanc-api:接受云系统镜像的创建、删除、读取请求

Glance-regisry:云系统的镜像注册服务

架构图如下:

云计算之openstack(N版)glance镜像服务最佳实践_云计算

说明:

Glance-api接收rest API的请求,类似Nova-API

Glance-API在功能上与Nova-API十分类似,都是被接收rest API请求,然后通过其他模块(glance-registry及p_w_picpath store)来完成诸如镜像的查找、获取、上传、删除等操作,API默认监听端口9292

Glance-registry用于MySQL数据库交互,用于存储或获取镜像的元数据(metadata);提供镜像元数据相关的rest接口,通过glance-registry,可以向数据库中写入或获取镜像的各种数据,glance-registry监听端口9191,glance的数据库中有两张表,一张是p_w_picpath表,一张是p_w_picpath property表,p_w_picpath表保存了镜像格式、大小等信息;p_w_picpath property表则主要保存镜像的定制化信息。

Image store是一个存储的接口层,通过这个接口,glance可以获取镜像,p_w_picpath store支持的存储有Amazon的S3、openstack本身swift,还有诸如ceph,sheepdog,glusterFS等分布式存储,p_w_picpath store是镜像保存与获取的接口,它仅仅是一个接口层,具体的实现需要外部的存储支持

 

2.4.2glance的配置与安装

a数据库的创建与授权

create databaseglance;

grant all onglance.* to 'glance'@'localhost' identified by 'glance';

grant all onglance.* to 'glance'@'%' identified by 'glance';

 

b创建服务凭证

获取admin凭证来后去只有管理员能执行的命令的访问权限

sourceadmin-openstack

创建服务证书

创建 glance 用户:

openstack usercreate --domain default --password-prompt glance

添加 admin 角色到glance 用户和 service 项目上。

openstack role add--project service --user glance admin

 

创建``glance``服务实体

openstack servicecreate --name glance --description "OpenStack Image" p_w_picpath

 

创建镜像服务的 API 端点

openstack endpointcreate --region RegionOne p_w_picpath public http://192.168.56.11:9292

openstack endpointcreate --region RegionOne p_w_picpath internal http://192.168.56.11:9292

openstack endpointcreate --region RegionOne p_w_picpath admin http://192.168.56.11:9292

 

2.4.3.glance的配置与安装

a.软件包的安装

yum install -yopenstack-glance

 

b编辑文件 /etc/glance/glance-api.con

[database]#配置数据库访问

connection =mysql+pymysql://glance:glance@192.168.56.11/glance

[glance_store]#配置本地文件系统存储和镜像文件位置

stores = file,http

default_store =file

filesystem_store_datadir= /var/lib/glance/p_w_picpaths

[keystone_authtoken]#配置认证服务访问

auth_uri =http://192.168.56.11:5000

auth_url =http://192.168.56.11:35357

memcached_servers =192.168.56.11:11211

auth_type =password

project_domain_name= default

user_domain_name =default

project_name =service

username = glance

password = glance

[paste_deploy]

flavor = keystone

 

c编辑文件 ``/etc/glance/glance-registry.conf``

[database]#配置数据库访问

connection =mysql+pymysql://glance:glance@192.168.56.11/glance

[keystone_authtoken]#配置认证服务访问

auth_uri =http://192.168.56.11:5000

auth_url =http://192.168.56.11:35357

memcached_servers =192.168.56.11:11211

auth_type =password

project_domain_name= default

user_domain_name =default

project_name =service

username = glance

password = glance

[paste_deploy]

flavor = keystone

 

d写入镜像服务数据库

su -s /bin/sh -c"glance-manage db_sync" glance

检验

mysql -uglance-pglance -h localhost -e "use glance;show tables;"

 

e启动镜像服务并将其配置为随机启动

systemctl enableopenstack-glance-api.service \

openstack-glance-registry.service

systemctl startopenstack-glance-api.service \

openstack-glance-registry.service

 

 

2.4.4验证操作

获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

sourceadmin-openstack

下载源镜像:

wgethttp://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它:

openstack p_w_picpathcreate "cirros" \

--filecirros-0.3.4-x86_64-disk.img \

--disk-format qcow2--container-format bare \

--public

确认镜像的上传并验证属性:

openstack p_w_picpathlist

+--------------------------------------+--------+--------+

| ID | Name |Status |

+--------------------------------------+--------+--------+

|9fe07794-9fb9-4e34-aa23-0fdfe4804bad | cirros | active |

+--------------------------------------+--------+--------+