OpenStack镜像服务是IaaS的核心服务,它接受磁盘镜像或服务器镜像API请求,和来自终端用户或OpenStack计算组件的元数据定义。它也支持包括OpenStack对象存储在内的多种类型仓库上的磁盘镜像或服务器镜像存储。
OpenStack镜像服务包括以下组件:
glance-api
接收镜像API的调用,诸如镜像发现、恢复、存储。
glance-registry
存储、处理和恢复镜像的元数据,元数据包括项诸如大小和类型。
安装:
创建glance库并授予相应权限
# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE glance;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'controller' IDENTIFIED BY 'GLANCE_DBPASS';
使用admin身份创建glance user
# . admin-openrc
# openstack user create --domain default --password-prompt glance
User Password:
Repeat User Password:
添加admin role到glance user和service project
# openstack role add --project service --user glance admin
创建glance服务实体和image服务endpoints
# openstack service create --name glance \
--description "OpenStack Image" image
# openstack endpoint create --region RegionOne \
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
安装并配置组件
# yum install openstack-glance
编辑glance-api配置文件
# vim /etc/glance/glance-api.conf
[database]
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = GLANCE_PASS
[paste_deploy]
flavor = keystone
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
编辑glance-registry配置文件
# vim /etc/glance/glance-registry.conf
[database]
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = GLANCE_PASS
[paste_deploy]
flavor = keystone
写入镜像服务数据库文件
# su -s /bin/sh -c "glance-manage db_sync" glance
将glance-api和glance-registry服务加入开机启动并启动
# systemctl enable openstack-glance-api.service \
openstack-glance-registry.service
# systemctl start openstack-glance-api.service \
openstack-glance-registry.service
验证(使用wget下载镜像文件)
官方测试镜像:#wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
CentOS官方提供的虚拟机镜像:#wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1705.qcow2.xz
可以自行前往查看需要的镜像版本http://cloud.centos.org/centos/7/images/
如果使用官方测试镜像,该镜像生成实例用户名cirros,密码cubswin:)
如果使用CentOS官方镜像,该镜像生成实例默认需要使用你制作的keypair登录(Dashboard页面可以制作,命令行也可以)
使用 QCOW2 磁盘格式,bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它
# openstack image create "cirros" \
--file cirros-0.3.5-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--public
你要做的是修改"cirros"为你需要的镜像名,修改镜像文件名为你实际的镜像文件名
qcow2是现在比较主流的一种虚拟化镜像格式,性能上接近raw裸格式的性能。
确认镜像的上传并验证属性
# openstack image list