基本简介
镜像服务(glance)使用户能够发现,注册和检索虚拟机镜像。 它提供了一个REST API,使您可以查询虚拟机镜像元数据并检索实际镜像。 您可以将通过镜像服务提供的虚拟机映像存储在各种位置,从简单的文件系统到对象存储系统(如OpenStack对象存储)。
为了简单起见,本指南描述了将Image服务配置为使用文件后端,该后端上载并存储在托管Image服务的控制节点上的目录中。
OpenStack Image服务是基础架构即服务(IaaS)的核心。
它接受磁盘或服务器映像的API请求,以及来自最终用户或OpenStack Compute组件的元数据定义。 它还支持在各种存储库类型(包括OpenStack对象存储)上存储磁盘或服务器映像。
OpenStack镜像服务包括以下组件:
glance-api
接受镜像API调用以进行镜像发现,检索和存储。 glance-registry
存储,处理和检索有关镜像的元数据。 元数据包括例如大小和类型等项目。 Database
存储镜像元数据,您可以根据自己的喜好选择数据库。 大多数部署使用MySQL或SQLite。 Storage repository for image files(镜像文件的存储库)
支持各种存储库类型,包括常规文件系统(或安装在glance-api控制节点上的任何文件系统),Object Storage,RADOS块设备,VMware数据存储和HTTP。 请注意,某些存储库仅支持只读用法。 Metadata definition service(元数据定义服务)
用于供应商,管理员,服务和用户的通用API来有意义地定义他们自己的定制元数据。 此元数据可用于不同类型的资源,如镜像,开发,卷,定制和聚合。 定义包括新属性的关键字,描述,约束和它可以关联的资源类型。
创建数据库(控制节点)
创建数据库以及用户:
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance2018';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance2018';
flush privileges;
exit;
创建glance用户凭证:
用admin用户凭证创建glance用户凭证
source admin-openrc.sh
创建glance用户:
openstack user create --domain default --password-prompt glance #设置密码glance2018
将admin角色添加到glance用户和service项目:
openstack role add --project service --user glance admin
创建glance服务实体及endpoint:
openstack service create --name glance --description "OpenStack Image" image
openstack endpoint create --region RegionOne image public http://10.1.80.110:9292
openstack endpoint create --region RegionOne image internal http://10.1.80.110:9292
openstack endpoint create --region RegionOne image admin http://10.1.80.110:9292
安装、配置glance组件
安装软件包:
yum install -y openstack-glance
修改配置文件glance-api.conf
vim /etc/glance/glance-api.conf
编辑模式下(冒号)
删除#开头行 %g/^#/d
删除空白行 %g/^$/d
[database]
connection = mysql://glance:glance2018@localhost/glance
[keystone_authtoken]
auth_uri = http://10.1.80.110:5000
auth_url = http://10.1.80.110:35357
memcached_servers = 10.1.80.110:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance2018
[paste_deploy]
flavor = keystone
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
#[database] 部分,配置数据库访问
#[keystone_authtoken] and [paste_deploy]部分,配置认证服务访问
#[glance_store]部分, 配置本地文件系统存储和映像文件的位置
修改配置文件glance-registry.conf
vim /etc/glance/glance-registry.conf
[database]
connection = mysql://glance:glance2018@localhost/glance
[keystone_authtoken]
auth_uri = http://10.1.80.110:5000
auth_url = http://10.1.80.110:35357
memcached_servers = 10.1.80.110:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance2018
[paste_deploy]
flavor = keystone
初始化数据库
su -s /bin/sh -c "glance-manage db_sync" glance
启动glance并设置开机启动
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl start openstack-glance-api.service openstack-glance-registry.service
systemctl status openstack-glance-api.service openstack-glance-registry.service
验证操作
使用CirrOS验证Image服务的操作,这是一个小型Linux映像,可帮助您测试OpenStack部署。
重新加载环境变量
source admin-openrc
下载镜像/上传镜像
#创建存放镜像文件的文件夹
mkdir /img
cd /img
#下载镜像,这个镜像的一个很简单的镜像,测试使用很方便
wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
#制作openstack镜像
openstack image create "cirros" \
--file cirros-0.3.5-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--public
#下载一个centos的官方镜像
wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2 glance image-create --name "CentOS-7-x86_64" --file CentOS-7-x86_64-GenericCloud.qcow2 --disk-format qcow2 --container-format bare --visibility public --progress
查看镜像:
openstack image list