一、glance简介
openstack镜像服务使用户能够发现、登记并检索虚拟机镜像,代号glance。glance服务提供了一个REST API,使你能够查询虚拟机镜像元数据和检索实际镜像。通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似openstack对象存储系统。
为了简单,本安装镜像服务使用普通文件系统做为后端,也就是说上传镜像将被存储在一个目录里,这个目录是/var/lib/glance/image,你要确保这个目录提供足够的空间,然后再来存储虚拟机的镜像和快照。
二、镜像服务组件
1.Glance-API:承受镜像API的探索,检索和存储镜像的API调用。
2.Glance-registry:存储,处理和检索有关镜像的元数据,元数据大小、类型等等。
3.Database:存储镜像元数据,你可以选择你喜欢的数据库,现在比较多的是mysql和sqlite
镜像文件存储在存储库中,你可以选择不同的存储库,比如正常文件系统、 RADOS、Amazon S3 HTTP,也有一些提供只读使用,所以我们可以使用不同的分布式文件系统来扩展。
三、安装镜像服务
1.在controller节点上安装镜像服务
# yum install -y openstack-glance python-glanceclient
2.镜像服务将镜像的信息存储在数据库中。这个示例指引Mysql数据库用于其他的openstack服务。在配置文件中指定数据库的位置,镜像服务提供glance-api和glance-registry服务,每个服务都有它自己的配置文件,你必须通过本节内容修改它们的配置文件。
# openstack-config --set /etc/glance/glance-api.conf database \
connection mysql://glance:glance@controller/glance
# openstack-config --set /etc/glance/glance-registry.conf database \
connection mysql://glance:glance@controller/glance
3.登陆数据库,创建glance用户、数据库以及授予访问权限
mysql> CREATE DATABASE glance;
mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'glance';
mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
IDENTIFIED BY 'glance';
mysql> FLUSH PRIVILEGES;
mysql> exit;
4.填充glance数据库
# su -s /bin/sh -c "glance-manage db_sync" glance
注意:这里可能会有告错,请按照下列网址上操作即可
https://ask.openstack.org/en/question/28335/you-should-rebuild-using-libgmp-5-to-avoid-timing-attack-vulnerability-_warnnot-using-mpz_powm_sec-you-should-rebuild-using-libgmp-5-to-avoid-timing/
5.为镜像服务创建glance用户用作身份认证。
# keystone user-create --name=glance --pass=openstack --email=353764437@qq.com
# keystone user-role-add --user=glance --tenant=service --role=admin
6.配置镜像服务使用身份认证服务进行身份验证
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
auth_uri http://controller:5000
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
auth_host controller
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
auth_port 35357
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
auth_protocol http
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
admin_tenant_name service
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
admin_user glance
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
admin_password openstack
# openstack-config --set /etc/glance/glance-api.conf paste_deploy \
flavor keystone
# openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken auth_uri http://controller:5000
# openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken auth_host controller
# openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken auth_port 35357
# openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken auth_protocol http
# openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken admin_tenant_name service
# openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken admin_user glance
# openstack-config --set /etc/glance/glance-registry.conf \
keystone_authtoken admin_password openstack
# openstack-config --set /etc/glance/glance-registry.conf paste_deploy \
flavor keystone
7.注册镜像服务和身份认证,以便其他openstack服务可以找到。注册服务并创建端点:
# keystone service-create --name=glance --type=image \
--description="OpenStack Image Service"
# keystone endpoint-create \
--service-id=$(keystone service-list | awk '/ image / {print $2}') \
--publicurl=http://controller:9292 \
--internalurl=http://controller:9292 \
--adminurl=http://controller:9292
8.启动服务并配置开机启动
# service openstack-glance-api start
# service openstack-glance-registry start
# chkconfig openstack-glance-api on
# chkconfig openstack-glance-registry on
四、验证镜像服务安装情况
为了验证镜像服务是否安装正确,至少下载一个镜像做测试。
1.使用wget或者curl下载一个镜像到专门的目录中
# mkdir /tmp/images
# cd /tmp/images
# wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
2.上传镜像到镜像服务
# source admin-openrc.sh
# glance image-create --name "cirros-0.3.3-x86_64" --disk-format qcow2 \
--container-format bare --is-public True --progress < cirros-0.3.3-x86_64-disk.img
3.确认镜像上传和显示其属性
# glance image-list
4.现在可以删除本地下载的镜像,因为现在存储和使用都是通过镜像服务
# rm -fr /tmp/images
至此,镜像服务安装完成!