2.4镜像服务2.4.1Glance概述Glance由API和registry
Glanc-api:接受云系统镜像的创建、删除、读取请求
Glance-regisry:云系统的镜像注册服务
架构图如下:
说明:
Glance-api接收rest API的请求,类似Nova-API
Glance-API在功能上与Nova-API十分类似,都是被接收rest API请求,然后通过其他模块(glance-registry及image store)来完成诸如镜像的查找、获取、上传、删除等操作,API默认监听端口9292
Glance-registry用于MySQL数据库交互,用于存储或获取镜像的元数据(metadata);提供镜像元数据相关的rest接口,通过glance-registry,可以向数据库中写入或获取镜像的各种数据,glance-registry监听端口9191,glance的数据库中有两张表,一张是image表,一张是image property表,image表保存了镜像格式、大小等信息;image property表则主要保存镜像的定制化信息。
Image store是一个存储的接口层,通过这个接口,glance可以获取镜像,image store支持的存储有Amazon的S3、openstack本身swift,还有诸如ceph,sheepdog,glusterFS等分布式存储,image 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" image
创建镜像服务的 API 端点
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/images [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 下载源镜像:
使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它:
openstack imagecreate "cirros" \ --filecirros-0.3.4-x86_64-disk.img \ --disk-format qcow2--container-format bare \ --public 确认镜像的上传并验证属性:
openstack imagelist +--------------------------------------+--------+--------+ | ID | Name |Status | +--------------------------------------+--------+--------+ |9fe07794-9fb9-4e34-aa23-0fdfe4804bad | cirros | active | +--------------------------------------+--------+--------+
|