Openstack kilo指南安装与实践(4)

OpenStack镜像服务(glance)使用户能够发现、登记,并检索虚拟机镜像。它提供了一个REST API,使您可以查询虚拟机镜像元数据和检索一个实际的镜像。通过镜像服务在不同的位置,你可以存储虚拟机镜像使其有效,从简单的文件系统到对象——存储系统,比如OpenStack对象存储。

重点

为简单起见,本指南描述了配置镜像服务后端使用文件,上传并存储在控制节点上主管镜像服务。默认情况下,这个目录是/var/lib/glance/images/。
在继续之前,确保控制器节点至少有几个gb的可用空间在这个目录中。
对于其他后端信息要求,请参见Configuration Reference

OpenStack的镜像服务

OpenStack的镜像服务对于基础设施即服务(Iaas)是及其重要的,如文章(1)中的Figure1.1,"概念结构"所示。它接受API对于服务器镜像或磁盘储存的请求,从最终用户或OpenStack计算组件中镜像的元数据。它还支持不同的存储库类型的存储磁盘或服务器镜像,包括OpenStack对象存储。
一些在OpenStack镜像服务运行的周期性进程支持缓存。通过集群复制服务确保一致性和可用性。其他周期性过程包括auditors、uodaters和reapers。

OpenStack镜像服务还包括了如下的组件:

组件作用
glance-api为镜像的恢复、检索和存储接受镜像的API调用
glance-registry存储、处理和检索所有关于镜像的元数据。元数据包括尺寸和类型
Database存储镜像的元数据,你可以依据你的喜好选择你的数据库。大多数部署使用MySQL或SQLite
Storage repository for image files支持各种存储库类型包括常规文件系统、对象存储,RADOS块设备,HTTP,Amazon S3。请注意,某些存储库只会支持只读的使用。

安全注意

注册表是通过OpenStack镜像服务作为一个私有的内部服务来使用。不透露给用户。

安装和配置

这节描述了如何在控制节点上安装和配置镜像服务,代号为glance。为了简单,这个配置把镜像存储在本地文件系统。

笔记

本节假设的在身份服务正确安装、配置和操作被描述在文章(3)的“安装和配置”和“验证操作”章节以及admin-openrc.sh脚本在文章(3)中所描述的“创建客户机环境OpenStack脚本”设置。

配置前须

在你安装和配置镜像服务之前,你必须创建一个数据库,服务证书和API端点。

1.为了创建数据库,请完成下面的步骤:
a.使用数据库客户端去连接数据库服务器以root的形式:

$ mysql -u root -p

b.创建glance数据库:

CREATE DATABASE glance;

c.给glance数据库授予适当的访问权限:

GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’localhost’ \
IDENTIFIED BY ‘GLANCE_DBPASS’;
GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’%’ \
IDENTIFIED BY ‘GLANCE_DBPASS’;

用合适的密码替换GLANCE_DAPASS。
d.编辑数据库访问端。

2.配置admin证书去获得访问admin-only的CLI命令行:

$ source admin-openrc.sh

3.为了创建服务证书,请完成下列步骤:

a.创建glance使用者:

$ openstack user create –password-prompt glance
User Password:
Repeat User Password:
user pwd

b.在glance用户和service项目添加admin角色:

$ openstack role add –project service –user glance admin
glance

c.创建glance服务实体:

$ openstack service create –name glance \
–description “OpenStack Image service” image

image

4.创建镜像服务的API端点:

$ openstack endpoint create \
–publicurl http://controller:9292 \
–internalurl http://controller:9292 \
–adminurl http://controller:9292 \
–region RegionOne \
image

image

安装和配置镜像服务组件

笔记

默认的配置文件因为版本不同而不同。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。而且,省略号(…)在配置代码片段表示潜在的默认配置选项,你应该保留。

1.安装包:

# apt-get install glance python-glanceclient

2.编辑/etc/glance/glance-api.conf文件,完成下面的步骤:
a.在[database]部分,配置数据库访问:

[database]

connection = mysql://glance:GLANCE_DBPASS@controller/glance

为你选择的镜像服务的数据库的密码替换GLANCE_DAPASS。

b.在[keystone_authtoken]和[paste_deploy]部分,配置身份服务访问:

[keystone_authtoken]

auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = glance
password = GLANCE_PASS
[paste_deploy]

flavor = keystone

用你在身份服务为glance用户选择的密码去替换GLANCE_PASS。

笔记·

在[keystone_authtoken]部分中注释或移除其他选项。

c.在[glance_store]中,配置当地文件系统存储和镜像文件位置:

[glance_store]

default_store = file
filesystem_store_datadir = /var/lib/glance/images/

d.在[DEFAULT]部分,配置noop通知驱动器使得通知不能启动,因为他们仅仅属于可选择的测试服务:

[DEFAULT]

notification_driver = noop

e.(可选择的)协助故障排除,在[DEFAULT]中启用详细日志记录:

[DEFAULT]

verbose = True

3.编辑/etc/glance/glance-registry.conf文件和完成下列操作:

a.在[database]部分,配置数据库访问:

[database]

connection = mysql://glance:GLANCE_DBPASS@controller/glance

用你在镜像服务数据库所选择的密码去替换GLANCE_DAPASS。

b.在[keystone_authtoken]和[paste_deploy]部分,配置验证服务的访问:

[keystone_authtoken]

auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = glance
password = GLANCE_PASS
[paste_deploy]

flavor = keystone

用你在镜像服务数据库所选择的密码去替换GLANCE_DAPASS。

笔记

在[keystone_authtoken]部分中注释或移除其他选项。

c.在[DEFAULT]部分,配置noop通知驱动器使得通知不能启动,因为他们仅仅属于可选择的测试服务:

[DEFAULT]

notification_driver = noop

这个测试服务提供一个镜像服务配置使得通知可用。

d.(可选择的)协助故障排除,在[DEFAULT]中启用详细日志记录:

[DEFAULT]

verbose = True

4.填入镜像服务数据库:

# su -s /bin/sh -c “glance-manage db_sync” glance

完成安装

1.重启镜像服务:

# service glance-registry restart
# service glance-api restart

2.默认情况下,ubuntu包创建一个SQLite数据库。
因为这个配置使用一个SQL数据库服务器,你可以移除SQLite数据库文件:

# rm -f /var/lib/glance/glance.sqlite

确认操作

使用CirrOS确认镜像服务的操作,一个小型的linux镜像可以帮你测试你的openstack环境的部署。
更多的信息关于如何下载和建造镜像,请观看OpenStack Virtual Machine Image Guide
更多关于如何管理镜像,观看OpenStack User Guide.

1.在每一个客户端环境脚本,配置镜像客户端去使用API 版本2.0:

$ echo “export OS_IMAGE_API_VERSION=2” | tee -a admin-openrc.sh demoopenrc.sh

2.配置admin证书去获取访问admin-only CLI命令的权限:

$ source admin-openrc.sh

3.创建临时当地目录:

$ mkdir /tmp/images

4.对它下载资源镜像

$ wget -P /tmp/images http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

5.加载镜像对进行服务使用QCOW2磁盘格式,裸机包含的模式,以及公有可见的,以至于所有项目都可以访问到:

$ glance image-create –name “cirros-0.3.4-x86_64” –file /tmp/images/
cirros-0.3.4-x86_64-disk.img \
–disk-format qcow2 –container-format bare –visibility public –
progress
[=============================>] 100%

qcow2

关于glance 镜像创建的信息,请观看Image service command-line client

关于对于镜像磁盘和容器格式的信息,请观看Disk and container formats for images

笔记

OpenStack是动态生成ID的,所有你将会看见与例子不同的值。

6.确认加载了镜像和有效的属性:

$ glance image-list

list-glance

7.移除临时目录和资源镜像:

$ rm -r /tmp/images

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐