镜像服务 Glance 介绍¶
OpenStack
镜像服务包含以下组件:
glance-api
:通过镜像 API
进行镜像建立,搜索,存储操作。glance-registry
:存储,运行和搜索涵盖镜像大小与类型的元数据。- 数据库
- 镜像文件存储仓库
- 元数据定义服务:提供一组
API
便于镜像管理。
安装镜像服务 Glance¶
配置数据库¶
新建 glance
数据库并赋予 glance
用户权限:
1
2
3
| MariaDB [(none)]> create database glance;
MariaDB [(none)]> grant all privileges on glance.* to 'glance'@'localhost' identified by 'GLANCE_DBPASSWORD';
MariaDB [(none)]> grant all privileges on glance.* to 'glance'@'%' identified by 'GLANCE_DBPASSWORD';
|
将 GLANCE_DBPASSWORD
替换为需要的密码。
新建服务证书及 API Endpoints¶
导入 admin
用户环境变量;
关于 openrc
文件在安装 keystone
时提及。
新建 glance
用户并设置 GLANCE_PASSWORD
:
1
| $ openstack user create --domain default --password-prompt glance
|
将 admin
角色加入 glance
用户和 service
项目:
1
| openstack role add --project service --user glance admin
|
生成 glance
服务入口点:
1
| $ openstacak service create --name glance --description "OpenStack Image" image
|
生成镜像服务的 API Endpoints
:
1
2
3
| $ openstack endpoint create --region RsegionOne 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
|
安装配置组件¶
安装 openstack-glance
软件包:
1
| # yum install openstack-glance
|
修改 /etc/glance/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
| [database]
# ...
connection = mysql+pymysql://glance:GLANCE_DBPASSWORD@controller/glance
[keystone_authtoken]
# ...
memcached_servers = controller:11211
auth_uri = http://controller:5000
project_domain_name = Default
project_name = service
user_domain_name = Default
password = GLANCE_PASSWORD
username = glance
auth_url = http://controller:35357
auth_type = password
[paste_deploy]
# ...
flavor = keystone
[glance_store]
#...
stores = file, http
default_store = file
filesystem_store_datadir = /var/lib/glance/images
|
注释掉这几个字段中其他的设置;
GLANCE_DBPASSWORD
和 GLANCE_PASSWORD
要更改成自己设定的密码。
修改 /etc/glance/glance-registry.conf
文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| [database]
# ...
connection = mysql+pymysql://glance:GLANCE_DBPASSWORD@controller/glance
[keystone_authtoken]
# ...
memcached_servers = controller:11211
auth_uri = http://controller:5000
project_domain_name = Default
project_name = service
user_domain_name = Default
password = GLANCE_PASSWORD
username = glance
auth_url = http://controller:35357
auth_type = password
[paste_deploy]
# ...
flavor = keystone
|
注释掉这几个字段中其他的设置;
GLANCE_DBPASSWORD
和 GLANCE_PASSWORD
要更改成自己设定的密码。
更新 glance
数据库:
1
| # su -s /bin/sh -c "glance-manage db_sync" glance
|
启动镜像服务¶
1
2
| # systemctl enable openstack-glance-api openstack-glance-registry
# systemctl start openstack-glance-api openstack-glance-registry
|
服务测试¶
导入 admin
用户环境变量;
下载测试用镜像 CirrOS
:
1
| $ wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
|
由于国内特殊网络原因,若下载不成功可先通过其他途径下载,再拷贝到目标机器上。
上传镜像:
1
| $ openstack image create "CirrOS-0.3.5-64bit" --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public
|
使用 QCOW2
(QEMU Copy On Write 2) 磁盘格式, bare
容器格式上传镜像,并且将镜像权限设置为 public
,让所有的项目都能够获得该镜像。
查看镜像:
需要获取更多镜像请参照 OpenStack Docs: Get images。注意云镜像和安装镜像的区别。
之前在初始配置和安装 Keystone
时踩了不少坑,这次安装 Glance
倒是出奇的顺利。官方文档还是好用的啊。
本作品采用
知识共享署名-相同方式共享 4.0 国际许可协议进行许可。