镜像服务

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

下面说一下glance服务的安装及配置

1.创建数据库

[root@controller ~]# mysql -uroot -p123456

mysql> CREATE DATABASE glance;
mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \  IDENTIFIED BY 'GLANCE_DBPASS';mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \  IDENTIFIED BY 'GLANCE_DBPASS';

2.获取admin权限

[root@controller ~]# . admin-openrc

3.创建glance用户

[root@controller ~]# openstack user create --domain default --password-prompt glanceUser Password:123456Repeat User Password:123456+---------------------+----------------------------------+| Field               | Value                            |+---------------------+----------------------------------+| domain_id           | default                          || enabled             | True                             || id                  | 09d8b7bbfe9748ffadff25bffc1b46cd || name                | glance                           || password_expires_at | None                             |+---------------------+----------------------------------+

将admin角色添加到glance用户和服务项目中

[root@controller ~]# openstack role add --project service --user glance admin

创建glance服务实例

# openstack service create --name glance \  --description "OpenStack Image" p_w_picpath
[root@controller ~]# openstack service create --name glance \>   --description "OpenStack Image" p_w_picpath+-------------+----------------------------------+| Field       | Value                            |+-------------+----------------------------------+| description | OpenStack Image                  || enabled     | True                             || id          | d6319246d7e3486d86b54634f07c1cb8 || name        | glance                           || type        | p_w_picpath                            |+-------------+----------------------------------+

4.创建p_w_picpath服务API端点

# openstack endpoint create --region RegionOne \  p_w_picpath public http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne \>   p_w_picpath public http://controller:9292+--------------+----------------------------------+| Field        | Value                            |+--------------+----------------------------------+| enabled      | True                             || id           | 621b1c8dabc9472591690d4dadbd4dff || interface    | public                           || region       | RegionOne                        || region_id    | RegionOne                        || service_id   | d6319246d7e3486d86b54634f07c1cb8 || service_name | glance                           || service_type | p_w_picpath                            || url          | http://controller:9292           |+--------------+----------------------------------+
# openstack endpoint create --region RegionOne \  p_w_picpath internal http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne \>   p_w_picpath internal http://controller:9292+--------------+----------------------------------+| Field        | Value                            |+--------------+----------------------------------+| enabled      | True                             || id           | f2d4366f844d415e9745c6d7d817d859 || interface    | internal                         || region       | RegionOne                        || region_id    | RegionOne                        || service_id   | d6319246d7e3486d86b54634f07c1cb8 || service_name | glance                           || service_type | p_w_picpath                            || url          | http://controller:9292           |+--------------+----------------------------------+
# openstack endpoint create --region RegionOne \  p_w_picpath admin http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne \>   p_w_picpath admin http://controller:9292+--------------+----------------------------------+| Field        | Value                            |+--------------+----------------------------------+| enabled      | True                             || id           | 48114b387628482f9ae11d0cdb29dce2 || interface    | admin                            || region       | RegionOne                        || region_id    | RegionOne                        || service_id   | d6319246d7e3486d86b54634f07c1cb8 || service_name | glance                           || service_type | p_w_picpath                            || url          | http://controller:9292           |+--------------+----------------------------------+

5.安装服务

[root@controller ~]# yum install openstack-glance -y

6.配置服务

修改/etc/glance/glance-api.conf

[root@controller ~]# cd /etc/glance/[root@controller glance]# cp glance-api.conf glance-api.conf.bak[root@controller glance]# egrep -v "^#|^$" glance-api.conf.bak > glance-api.conf[root@controller glance]# vim glance-api.conf
[database]...connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
[keystone_authtoken]...auth_uri = http://controller:5000auth_url = http://controller:35357memcached_servers = controller:11211auth_type = passwordproject_domain_name = Defaultuser_domain_name = Defaultproject_name = serviceusername = glancepassword = 123456[paste_deploy]...flavor = keystone
[glance_store]...stores = file,httpdefault_store = filefilesystem_store_datadir = /var/lib/glance/p_w_picpaths/

修改/etc/glance/glance-registry.conf

[root@controller ~]# cd /etc/glance/[root@controller glance]# cp glance-registry.conf glance-registry.conf.bak[root@controller glance]# egrep -v "^#|^$" glance-registry.conf.bak glance-registry.conf
[database]...connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
[keystone_authtoken]...auth_uri = http://controller:5000auth_url = http://controller:35357memcached_servers = controller:11211auth_type = passwordproject_domain_name = Defaultuser_domain_name = Defaultproject_name = serviceusername = glancepassword = 123456[paste_deploy]...flavor = keystone

7.填充数据库

[root@controller glance]# su -s /bin/sh -c "glance-manage db_sync" glance

8.启动服务

[root@controller glance]# systemctl enable openstack-glance-api.service   openstack-glance-registry.service[root@controller glance]#  systemctl start openstack-glance-api.service   openstack-glance-registry.service

9.验证

下载镜像

[root@controller glance]# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

导入镜像

# openstack p_w_picpath create "cirros" \  --file cirros-0.3.4-x86_64-disk.img \  --disk-format qcow2 --container-format bare \  --public
[root@controller glance]# openstack p_w_picpath create "cirros" \>   --file cirros-0.3.4-x86_64-disk.img \>   --disk-format qcow2 --container-format bare \>   --public+------------------+------------------------------------------------------+| Field            | Value                                                |+------------------+------------------------------------------------------+| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                     || container_format | bare                                                 || created_at       | 2017-01-11T03:10:51Z                                 || disk_format      | qcow2                                                || file             | /v2/p_w_picpaths/2faf5e8a-890d-4c68-a391-a2911342a3af/file || id               | 2faf5e8a-890d-4c68-a391-a2911342a3af                 || min_disk         | 0                                                    || min_ram          | 0                                                    || name             | cirros                                               || owner            | 3cf031774a844e4c8422cadb9d67785e                     || protected        | False                                                || schema           | /v2/schemas/p_w_picpath                                    || size             | 13287936                                             || status           | active                                               || tags             |                                                      || updated_at       | 2017-01-11T03:10:52Z                                 || virtual_size     | None                                                 || visibility       | public                                               |+------------------+------------------------------------------------------+
[root@controller glance]# openstack p_w_picpath list+--------------------------------------+--------+--------+| ID                                   | Name   | Status |+--------------------------------------+--------+--------+| 2faf5e8a-890d-4c68-a391-a2911342a3af | cirros | active |+--------------------------------------+--------+--------+安装成功[root@controller ~]# ls /var/lib/glance/p_w_picpaths/2faf5e8a-890d-4c68-a391-a2911342a3af