一、安装 OpenStack Glance Service【仅控制节点】
1. 约定: Glance使用MySQL数据库存储相关数据,相关参数如下:
库名: glance
账户: glancedbadmin
密码: glance4smtest
2. 安装镜像服务包
sudo apt-get install glance python-glanceclient
3. 分别编辑/etc/glance/glance-api.conf及/etc/glance/glance-registry.conf,
[ sudo vi /etc/glance/glance-api.conf ]
[ sudo vi /etc/glance/glance-registry.conf ]
更新设置如下(注释掉sqlite_db的相关信息):
[database]
connection = mysql://glancedbadmin:glance4smtest@192.168.3.180/glance
4. 编辑/etc/glance/glance-api.conf,
[ sudo vi /etc/glance/glance-api.conf ]
更新设置如下:
6. 创建Identity Service表
sudo glance-manage db_sync
7. 创建Image Service 账户并设置角色
keystone user-create --name=glance --pass=glance4smtest --email=sm@163.com
keystone user-role-add --user=glance --tenant=service --role=admin
8. 分别编辑/etc/glance/glance-api.conf及/etc/glance/glance-registry.conf,
[ sudo vi /etc/glance/glance-api.conf ]
[ sudo vi /etc/glance/glance-registry.conf ]
1) 更新[keystone_authtoken]设置如下:
2)更新[paste_deploy]设置如下
9. 创建服务
keystone service-create --name=glance --type=image --description="OpenStack Image Service"
10. 创建接入端点
keystone endpoint-create --service-id=$(keystone service-list | awk '/ image / {print $2}') --publicurl=http://192.168.3.180:9292 --internalurl=http://192.168.3.180:9292 --adminurl=http://192.168.3.180:9292
11. 重启服务
sudo service glance-registry restart
sudo service glance-api restart
12. 镜像服务相关命令
glance image-list
glance image-create
glance image-create
13. 测试镜像服务
1) 下载测试用的镜像
2) 查看镜像文件的格式
file cirros-0.3.2-x86_64-disk.img
3)初始化环境变量
source admin-openrc.sh
4)上传镜像文件
(命令格式: glance image-create --name=IMAGELABEL --disk-format=FILEFORMAT --container-format=CONTAINERFORMAT --is-public=ACCESSVALUE < IMAGEFILE)
glance image-create --name "cirros-0.3.2-x86_64" --disk-format qcow2 --container-format bare --is-public True --progress < cirros-0.3.2-x86_64-disk.img
5)查看镜像列表
glance image-list
14. 备注(此两处地方需要多备点磁盘空间)
【控制节点controller】
镜像存储的位置默认为 /var/lib/glance/images/
【计算节点compute】
实例缓存的位置为 /var/lib/nova/instances/_base/
1. 约定: Glance使用MySQL数据库存储相关数据,相关参数如下:
库名: glance
账户: glancedbadmin
密码: glance4smtest
2. 安装镜像服务包
sudo apt-get install glance python-glanceclient
3. 分别编辑/etc/glance/glance-api.conf及/etc/glance/glance-registry.conf,
[ sudo vi /etc/glance/glance-api.conf ]
[ sudo vi /etc/glance/glance-registry.conf ]
更新设置如下(注释掉sqlite_db的相关信息):
[database]
connection = mysql://glancedbadmin:glance4smtest@192.168.3.180/glance
[database]
# The file name to use with SQLite (string value)
#sqlite_db = /var/lib/glance/glance.sqlite
# If True, SQLite uses synchronous mode (boolean value)
#sqlite_synchronous = True
# The backend to use for db (string value)
# Deprecated group/name - [DEFAULT]/db_backend
backend = sqlalchemy
# The SQLAlchemy connection string used to connect to the
# database (string value)
# Deprecated group/name - [DEFAULT]/sql_connection
# Deprecated group/name - [DATABASE]/sql_connection
# Deprecated group/name - [sql]/connection
connection = mysql://glancedbadmin:glance4smtest@192.168.3.180/glance
4. 编辑/etc/glance/glance-api.conf,
[ sudo vi /etc/glance/glance-api.conf ]
更新设置如下:
[DEFAULT]
rpc_backend = rabbit
rabbit_host = 192.168.3.180
rabbit_userid = guest
rabbit_password = mq4smtest
sudo mysql -uroot -p#db4smtest# -e 'CREATE DATABASE glance;'
sudo mysql -uroot -p#db4smtest# -e 'CREATE USER glancedbadmin;'
sudo mysql -uroot -p#db4smtest# -e "GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'localhost' IDENTIFIED BY 'glance4smtest';"
sudo mysql -uroot -p#db4smtest# -e "GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'%' IDENTIFIED BY 'glance4smtest';"
sudo mysql -uroot -p#db4smtest# -e "SET PASSWORD FOR 'glancedbadmin'@'%' = PASSWORD('glance4smtest');"
6. 创建Identity Service表
sudo glance-manage db_sync
7. 创建Image Service 账户并设置角色
keystone user-create --name=glance --pass=glance4smtest --email=sm@163.com
sm@controller:~$ keystone user-create --name=glance --pass=glance4smtest --email=sm@163.com
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | sm@163.com |
| enabled | True |
| id | fd0011a1545f48dab448670383668372 |
| name | glance |
| username | glance |
+----------+----------------------------------+
keystone user-role-add --user=glance --tenant=service --role=admin
8. 分别编辑/etc/glance/glance-api.conf及/etc/glance/glance-registry.conf,
[ sudo vi /etc/glance/glance-api.conf ]
[ sudo vi /etc/glance/glance-registry.conf ]
1) 更新[keystone_authtoken]设置如下:
[keystone_authtoken]
auth_uri = http://192.168.3.180:5000
auth_host = 192.168.3.180
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = glance4smtest
2)更新[paste_deploy]设置如下
[paste_deploy]
flavor = keystone
注意:接下来的几个组件,更新配置文件的信息将更加繁多,而且当你VI一个Conf文件,里面包含大量的注释信息,我们在编辑这个配置文件不能落下每一个信息,我们可以使用如下命令进行检查,也即是只显示非注释的信息。
sudo grep ^[a-z] /etc/glance/glance-api.conf
但是这种方式并不会将section打印出来
我把我的该配置信息内容打印出来,大家可以进行相关对比,以下是glance-api.confsm@controller:~$ sudo grep ^[a-z] /etc/glance/glance-api.conf
default_store = file
bind_host = 0.0.0.0
bind_port = 9292
log_file = /var/log/glance/api.log
backlog = 4096
workers = 1
registry_host = 0.0.0.0
registry_port = 9191
registry_client_protocol = http
rpc_backend = rabbit
rabbit_host = 192.168.3.180
rabbit_port = 5672
rabbit_use_ssl = false
rabbit_userid = guest
rabbit_password = mq4smtest
rabbit_virtual_host = /
rabbit_notification_exchange = glance
rabbit_notification_topic = notifications
rabbit_durable_queues = False
qpid_notification_exchange = glance
qpid_notification_topic = notifications
qpid_hostname = localhost
qpid_port = 5672
qpid_username =
qpid_password =
qpid_sasl_mechanisms =
qpid_reconnect_timeout = 0
qpid_reconnect_limit = 0
qpid_reconnect_interval_min = 0
qpid_reconnect_interval_max = 0
qpid_reconnect_interval = 0
qpid_heartbeat = 5
qpid_protocol = tcp
qpid_tcp_nodelay = True
filesystem_store_datadir = /var/lib/glance/images/
swift_store_auth_version = 2
swift_store_auth_address = 127.0.0.1:5000/v2.0/
swift_store_user = jdoe:jdoe
swift_store_key = a86850deb2742ec3cb41518e26aa2d89
swift_store_container = glance
swift_store_create_container_on_put = False
swift_store_large_object_size = 5120
swift_store_large_object_chunk_size = 200
swift_enable_snet = False
s3_store_host = 127.0.0.1:8080/v1.0/
s3_store_access_key = <20-char AWS access key>
s3_store_secret_key = <40-char AWS secret key>
s3_store_bucket = <lowercased 20-char aws access key>glance
s3_store_create_bucket_on_put = False
sheepdog_store_address = localhost
sheepdog_store_port = 7000
sheepdog_store_chunk_size = 64
delayed_delete = False
scrub_time = 43200
scrubber_datadir = /var/lib/glance/scrubber
image_cache_dir = /var/lib/glance/image-cache/
backend = sqlalchemy
connection = mysql://glancedbadmin:glance4smtest@192.168.3.180/glance
auth_uri = http://192.168.3.180:5000
auth_host = 192.168.3.180
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = glance4smtest
flavor=keystone
sm@controller:~$ sudo grep ^[a-z] /etc/glance/glance-registry.conf
bind_host = 0.0.0.0
bind_port = 9191
log_file = /var/log/glance/registry.log
backlog = 4096
api_limit_max = 1000
limit_param_default = 25
backend = sqlalchemy
connection = mysql://glancedbadmin:glance4smtest@192.168.3.180/glance
auth_uri = http://192.168.3.180:5000
auth_host = 192.168.3.180
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = glance4smtest
flavor=keystone
9. 创建服务
keystone service-create --name=glance --type=image --description="OpenStack Image Service"
sm@controller:~$ keystone service-create --name=glance --type=image --description="OpenStack Image Service"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Image Service |
| enabled | True |
| id | 6dde555dc2a849c982d9a19c3c6cfa07 |
| name | glance |
| type | image |
+-------------+----------------------------------+
10. 创建接入端点
keystone endpoint-create --service-id=$(keystone service-list | awk '/ image / {print $2}') --publicurl=http://192.168.3.180:9292 --internalurl=http://192.168.3.180:9292 --adminurl=http://192.168.3.180:9292
sm@controller:~$ keystone endpoint-create --service-id=$(keystone service-list | awk '/ image / {print $2}') --publicurl=http://192.168.3.180:9292 --internalurl=http://192.168.3.180:9292 --adminurl=http://192.168.3.180:9292
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://192.168.3.180:9292 |
| id | bb09b407c0724324b452eaeee24dbed0 |
| internalurl | http://192.168.3.180:9292 |
| publicurl | http://192.168.3.180:9292 |
| region | regionOne |
| service_id | 6dde555dc2a849c982d9a19c3c6cfa07 |
+-------------+----------------------------------+
11. 重启服务
sudo service glance-registry restart
sudo service glance-api restart
sm@controller:~$ sudo service glance-registry restart
glance-registry stop/waiting
glance-registry start/running, process 5598
sm@controller:~$ sudo service glance-api restart
glance-api stop/waiting
glance-api start/running, process 5614
12. 镜像服务相关命令
glance image-list
glance image-create
glance image-create
13. 测试镜像服务
1) 下载测试用的镜像
wget http://cdn.download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img
首先,我们ping 8.8.8.8验证是否可以上网,然后执行相关命令下载测试镜像即可。
sm@controller:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=37 time=197 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 1 received, 50% packet loss, time 1014ms
rtt min/avg/max/mdev = 197.301/197.301/197.301/0.000 ms
sm@controller:~$ wget http://cdn.download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img
--2015-04-11 14:00:43-- http://cdn.download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img
Resolving cdn.download.cirros-cloud.net (cdn.download.cirros-cloud.net)... 204.0.55.129, 204.0.55.139, 2001:668:1f:23::adcd:6d1, ...
Connecting to cdn.download.cirros-cloud.net (cdn.download.cirros-cloud.net)|204.0.55.129|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 13167616 (13M) [application/octet-stream]
Saving to: cirros-0.3.2-x86_64-disk.img
100%[========================================================================================================>] 13,167,616 1.24MB/s in 11s
2015-04-11 14:00:56 (1.17 MB/s) - cirros-0.3.2-x86_64-disk.img saved [13167616/13167616]
sm@controller:~$ ls
admin-openrc.sh cirros-0.3.2-x86_64-disk.img
2) 查看镜像文件的格式
file cirros-0.3.2-x86_64-disk.img
sm@controller:~$ file cirros-0.3.2-x86_64-disk.img
cirros-0.3.2-x86_64-disk.img: QEMU QCOW Image (v2), 41126400 bytes
3)初始化环境变量
source admin-openrc.sh
4)上传镜像文件
(命令格式: glance image-create --name=IMAGELABEL --disk-format=FILEFORMAT --container-format=CONTAINERFORMAT --is-public=ACCESSVALUE < IMAGEFILE)
glance image-create --name "cirros-0.3.2-x86_64" --disk-format qcow2 --container-format bare --is-public True --progress < cirros-0.3.2-x86_64-disk.img
sm@controller:~$ glance image-create --name "cirros-0.3.2-x86_64" --disk-format qcow2 --container-format bare --is-public True --progress < cirros-0.3.2-x86_64-disk.img
[=============================>] 100%
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | 64d7c1cd2b6f60c92c14662941cb7913 |
| container_format | bare |
| created_at | 2015-04-11T06:03:00 |
| deleted | False |
| deleted_at | None |
| disk_format | qcow2 |
| id | 6dbf0884-e9bb-406e-9f77-32aef79dd976 |
| is_public | True |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros-0.3.2-x86_64 |
| owner | 05ec814379cd4935b50bad905b1fd203 |
| protected | False |
| size | 13167616 |
| status | active |
| updated_at | 2015-04-11T06:03:00 |
| virtual_size | None |
+------------------+--------------------------------------+
5)查看镜像列表
glance image-list
sm@controller:~$ glance image-list
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| 6dbf0884-e9bb-406e-9f77-32aef79dd976 | cirros-0.3.2-x86_64 | qcow2 | bare | 13167616 | active |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
注意:关于镜像的知识也需要用户多了解,镜像文件分为raw和qcow2,简单的说raw占用空间较大,qcow2占用空间较小,以后应用比较多一些,而且用户在制作镜像也可以选择,更多了解可以多看看相关内容。
OpenStack 虚拟机镜像制作指南:http://docs.openstack.org/zh_CN/image-guide/content/index.html
14. 备注(此两处地方需要多备点磁盘空间)
【控制节点controller】
镜像存储的位置默认为 /var/lib/glance/images/
【计算节点compute】
实例缓存的位置为 /var/lib/nova/instances/_base/