一、 镜像服务概述
镜像服务(glance)使用户能够发现、登记,并检索虚拟机镜像。它提供了一个REST API,使您可以查询虚拟机镜像元数据和检索一个实际的形象。可以存储虚拟机镜像通过镜像服务在不同的位置,从简单的像OpenStack对象存储的文件系统对象存储系统。
为简单起见,本指南描述了图像服务使用文件配置后端,上传并存储在控制器上的一个目录节点托管服务形象。默认情况下,这个目录是/var/lib/glance/images/. 在继续之前,确保控制器节点至少有几个gb的可用空间在这个目录中。记住,由于文件后端通常是本地控制器节点,它不是通常适用于多节点部署。 要求其他后端信息,请参阅配置参考。
OpenStack形象服务中心“基础架构即服务”(IaaS)所示的概念架构。它接受API请求服务器磁盘或镜像,从终端用户和元数据定义或OpenStack计算组件。它还支持存储的磁盘或服务器图像在不同的存储库类型,包括OpenStack对象存储。 周期性过程运行在OpenStack镜像缓存服务支持。通过集群复制服务确保一致性和可用性。其他周期性过程包括审计、更新和收割。
Openstack镜像服务包括以下组件:
1. glance-api
用于接收API的镜像发现,调用,检索,存储。
2. glance-registry(镜像注册)
用于镜像储存、处理、检索元数据。元数据包括大小和类型。
(注册服务是内部openstack镜像服务使用的,不对外公开。)
3. database
用于存储镜像数据库,大多数部署使用mysql或SQLite。
4. storage repository for image files(镜像文件存储库)
支持各种存储库类型包括普通文件系统(或任何文件系统安装在glance-api控制器节点),对象存储,RADOS block devices(可靠的分布式存储系统 块存储),VMware存储和HTTP。请注意,某些存储库将只支持只读的用法。
5. metadata definition service
通用的API供应商、管理员、服务和用户有效地定义自己的自定义元数据。此元数据可用于不同类型的资源,比如images, artifacts, volumes, flavors, and aggregates。定义包括新属性的关键,描述,约束和它可以关联到的资源类型。
二、 安装和配置
在控制节点上安装镜像,为了简单起见镜像存储在本地。
1. 先决条件
在安装和配置镜像服务之前,必须创建一个数据库、数据凭证、api端点。
① 创建数据库(mysql的root密码是centos)
mysql -u root –p
create database glance;
创建用户glance并赋予其访问数据库glance的读写权限。
grant all privileges on glance.* to 'glance'@'localhost' identified by 'glance';
grant all privileges on glance.* to 'glance'@'%' identified by 'glance';
② 运行刚才创建的.admin-openrc
. admin-openrc
③ 要创建服务的凭证,完成以下步骤:
创建glance 用户:
openstack user create --domain default --password-prompt glance
增加admin 角色到glance用户和service 项目:
openstack role add --project service --user glance admin
创建glance服务实体
openstack service create --name glance --description "Openstack Image" image
④ 创建镜像服务API端点:
openstack endpoint create --region RegionOne image public http://controller:9292
openstack endpoint create --region RegionOne image internal http://controller:9292
openstack endpoint create --region RegionOne image admin http://controller:9292
2. 安装和配置完成
① 安装openstack-glance
yum install openstack-glance
② 编辑/etc/glance/glance-api.conf配置文件:
在[database]下添加connection
connect = mysql+pymysql://glance:glance@controller/glance
在[keystone_authtoken] 和 [paste_deploy]下配置身份服务访问(修改及添加):
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance
[paste_deploy]
flavor = keystone 在[glance_store]配置本地文件系统存储和镜像文件位置:
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
③ 编辑/etc/glance/glance-registry.conf文件:
在[database]配置数据库访问:
connection =mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
在[keystone_authtoken] 和 [paste_deploy]下配置身份服务访问(修改及添加):
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance [paste_deploy]
flavor = keystone
④ 填充镜像服务数据库:
Su –s /bin/sh –c “glance-manage db_sync” glance (忽略任何输出内容)
3. 完成安装
启动镜像服务和设置开机启动:
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl start openstack-glance-api.service openstack-glance-registry.service
三、 校验操作
使用CirrOS验证操作镜像的服务,一个小Linux映像,可以帮助你测试你的OpenStack部署。
在控制节点上执行以下操作。
1. 源admin环境配置
. admin-openrc
2. 下载源镜像
wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
3. 上传镜像到镜像服务器使用QCOW2磁盘格式,bare容器格式,公共可见 所有的项目都可以访问。
(cirros-0.3.5-x86_64-disk.img要在执行命令当前目录下)
openstack image create "cirros" --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public
4. 验证镜像是否上传成功
openstack image list
镜像服务安装完成!