一个计算机技术爱好者与学习者

0%

好好学OpenStack:Ubuntu16手动安装OpenStack——glance篇

1. 目标

紧接着《Ubuntu16手动安装OpenStack——keystone篇》,本文我们来安装glance,主要参考Glance Installation Tutorial for Ubuntu

2. glance简介

Image服务(glance)使用户能够发现、注册和检索虚拟机映像。它提供了一个REST API,使用户可以查询虚拟机镜像元数据并检索实际镜像。用户可以通过Image服务,把虚拟机映像存储在各种位置,从简单的文件系统到OpenStack Object Storage等对象存储系统。

为简单起见,官方教程中介绍如何配置Image服务以使用文件后端,该文件后端上载并存储在托管Image服务的控制器节点上的目录中。默认情况下,此目录为/var/lib/glance/ images/。在继续之前,请确保控制器节点在此目录中至少有几千兆字节的可用空间。请记住,由于文件后端通常是控制器节点的本地,因此通常不适合多节点glance部署。

OpenStack Image服务是Infrastructure-as-a-Service(IaaS)的核心。它接受来自磁盘或服务器映像的API请求,以及来自终端用户或OpenStack Compute组件的元数据定义。它还支持在各种存储库类型(包括OpenStack Object Storage)上存储磁盘或服务器映像。许多定期进程在OpenStack Image服务上运行以支持缓存。Replication服务可确保群集的一致性和可用性,其他定期进程包括auditors,updaters和reapers。

OpenStack Image服务包括以下组件:

glance-api
接受Image API调用以进行镜像发现,检索和存储。

官方建议将Glance作为独立服务器以传统方式运行。

glance-registry
存储,处理和检索有关镜像的元数据。元数据包括大小和类型等选项。

注册表是一个私有的内部服务,供OpenStack Image服务使用,不要将此服务公开给用户。

Glance注册服务及其API已在queens版本中弃用,并且在“S”开发周期开始后,可根据OpenStack标准弃用政策进行删除。

Database
存储镜像元数据,您可以根据自己的喜好选择数据库,大多数部署使用MySQL或SQLite。

Storage repository for image files
支持各种存储库类型,包括常规文件系统(或安装在glance-api控制器节点上的任何文件系统),Object Storage,RADOS块设备,VMware数据存储和HTTP。

请注意,某些存储库仅支持只读用法。

Metadata definition service
供应商、管理员、服务和用户的通用API,用于定义自己的元数据。此元数据可用于不同类型的资源,如 images、artifacts、volumes、flavors和aggregates。定义包括新属性的关键字、描述、约束和它可以关联的资源类型。

3. 安装和配置

本节介绍如何在控制器节点上安装和配置镜像服务(glance)。为简单起见,此配置将镜像存储在本地文件系统上。

3.1. root用户

为了避免权限问题,建议切换到root用户进行操作(否则要加很多sudo)。
sudo -i

3.2. 数据库

1、登录数据库
mysql -uroot -p,密码为openstack。

2、创建glance数据库
CREATE DATABASE glance;

3、授权
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'openstack';

GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'openstack';

4、退出数据库
exit;

3.3. 服务证书和端点

1、使admin环境生效
. admin-openrc

2、创建glance用户
openstack user create --domain default --password-prompt glance

根据提示设置密码为openstack。

3、将admin角色添加到glance用户和service项目上
openstack role add --project service --user glance admin

4、创建glance服务实体
openstack service create --name glance --description "OpenStack Image" image

5、创建镜像服务API endpoints

1
2
3
4
5
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

3.4. 安装和配置组件

1、安装glance
apt -y install glance

2、备份glance-api.conf
mv /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak

3、vim /etc/glance/glance-api.conf,新建glance-api.conf文件内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[DEFAULT]
bind_host = 0.0.0.0

[glance_store]
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

[database]
# MariaDB connection info
connection = mysql+pymysql://glance:openstack@controller/glance

# Keystone auth info
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = openstack

[paste_deploy]
flavor = keystone

4、备份glance-registry.conf
mv /etc/glance/glance-registry.conf /etc/glance/glance-registry.conf.bak

5、vim /etc/glance/glance-registry.conf,新建glance-registry.conf内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[DEFAULT]
bind_host = 0.0.0.0

[database]
# MariaDB connection info
connection = mysql+pymysql://glance:openstack@controller/glance

# Keystone auth info
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = openstack

[paste_deploy]
flavor = keystone

6、更改权限

1
2
chmod 644 /etc/glance/glance-api.conf /etc/glance/glance-registry.conf
chown glance. /etc/glance/glance-api.conf /etc/glance/glance-registry.conf

7、生成glance数据库结构
su -s /bin/bash glance -c "glance-manage db_sync"

完成后登录mysql查看数据。

查看日志命令:
tail /var/log/glance/glance-api.log

tail /var/log/glance/glance-registry.log

8、重启镜像服务
systemctl restart glance-api glance-registry

4. 验证操作

1、使admin环境生效
. admin-openrc

2、下载corris镜像
wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img

3、上传corris镜像到glance,存储为QCOW2格式,并且设置为所有人可见

1
2
3
4
openstack image create "cirros" \
--file cirros-0.4.0-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--public

有关OpenStack映像创建参数的信息,请参阅OpenStack用户指南中的创建或更新映像(glance)

有关映像的磁盘和容器格式的信息,请参阅OpenStack虚拟机映像指南中的映像的磁盘和容器格式

4、查看镜像
openstack image list

看到镜像ID、Name和Status。

cd /var/lib/glance/images,可以看到名为镜像ID的文件。