一、基本简介
镜像服务(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来有意义地定义他们自己的定制元数据。 此元数据可用于不同类型的资源,如镜像,开发,卷,定制和聚合。 定义包括新属性的关键字,描述,约束和它可以关联的资源类型。
二、创建数据库(控制节点)
创建数据库以及用户:
# mysql -uroot -p123456
MariaDB [(none)]> CREATE DATABASE glance;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance123';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
三、创建glance用户凭证(控制节点)
用admin用户凭证创建glance用户凭证
# source admin-openrc
# openstack user create --domain default --password-prompt glance #设置密码glance123
将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.10.11.11:9292
# openstack endpoint create --region RegionOne image internal http://10.10.11.11:9292
# openstack endpoint create --region RegionOne image admin http://10.10.11.11:9292
查看创建的endpoint:
四、安装、配置glance组件(控制节点)
4.1 安装软件包:
# yum install -y openstack-glance
4.2 修改配置文件glance-api.conf
# vim /etc/glance/glance-api.conf
编辑模式下(冒号)
删除#开头行 %g/^#/d
删除空白行 %g/^$/d
[database]
connection = mysql+pymysql://glance:glance123@localhost/glance
[keystone_authtoken]
auth_uri = http://10.10.11.11:5000
auth_url = http://10.10.11.11:35357
memcached_servers = 10.10.11.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance123
[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]部分, 配置本地文件系统存储和映像文件的位置
4.3 修改配置文件glance-registry.conf
# vim /etc/glance/glance-registry.conf
[database]
connection = mysql+pymysql://glance:glance123@localhost/glance
[keystone_authtoken]
auth_uri = http://10.10.11.11:5000
auth_url = http://10.10.11.11:35357
memcached_servers = 10.10.11.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance123
[paste_deploy]
flavor = keystone
4.4 初始化数据库
# su -s /bin/sh -c "glance-manage db_sync" glance
4.5 启动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
4.6 验证操作
使用CirrOS验证Image服务的操作,这是一个小型Linux映像,可帮助您测试OpenStack部署。
重新加载环境变量
# source admin-openrc
下载镜像/上传镜像
创建存放镜像文件的文件夹
# mkdir /img
# cd /img
下载镜像,这个镜像的一个很简单的镜像,测试使用很方便
# yum -y install wget
# 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