赞
踩
任务三 安装镜像服务
任务内容
本次任务是了解什么是镜像?并完成镜像的安装、测试等工作,为下一个任务做好基础。
任务实施
一、什么是镜像服务?
镜像服务(glance)允许用户发现、注册和获取虚拟机镜像。它提供了一个 REST API,允许用户查询虚拟机镜像的metadata并获取一个现存的镜像。用户可以将虚拟机镜像存储到各种位置,从简单的文件系统到对象存储系统,例如 OpenStack 对象存储, 并通过镜像服务使用。
OpenStack镜像服务是IaaS的核心服务。它接受磁盘镜像或服务器镜像API请求,和来自终端用户或OpenStack计算组件的元数据定义。它也支持包括OpenStack对象存储在内的多种类型仓库上的磁盘镜像或服务器镜像存储。
大量周期性进程运行于OpenStack镜像服务上以支持缓存。同步复制(Replication)服务保证集群中的一致性和可用性。其它周期性进程包括auditors,updaters和 reapers。
OpenStack镜像服务包括以下组件:
glance-api:接收镜像API的调用,诸如镜像发现、恢复、存储。
glance-registry:存储、处理和恢复镜像的元数据,元数据包括项诸如大小和类型。glance-registry是私有内部服务,用于服务OpenStack Image服务。不要向用户暴露该服务。
数据库:存放镜像元数据,用户是可以依据个人喜好选择数据库的,多数的部署使用MySQL或SQLite。
镜像文件的存储库:支持多种存储类型,包括普通文件系统、对象存储、RADOS块设备、HTTP、以及亚马逊S3。注意,其中一些存储仅支持只读方式使用。
元数据定义服务:通用的API,是用于为厂商,管理员,服务,以及用户自定义元数据。这种元数据可用于不同的资源,例如镜像,工件,卷,配额以及集合。一个定义包括了新属性的键,描述,约束以及可以与之关联的资源的类型。
二、基础配置
安装和配置镜像服务之前,必须创建创建一个数据库、服务凭证和API端口,这些配置需要控制节点上完成。
1、创建数据库:
●用数据库连接客户端以 root 用户连接到数据库服务器:
root@controller:/# mysql -u root -p
Enter password:(此处输入密码,不显示)
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 44
Server version: 10.0.38-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
●创建 glance 数据库:
CREATE DATABASE glance;
●对“glance”数据库授予恰当的权限:
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
IDENTIFIED BY 'GLANCE_DBPASS';
用一个合适的密码替换 GLANCE_DBPASS,本案例中采用adminroot。
●退出数据库客户端。
2、获得 admin 凭证来获取只有管理员能执行的命令的访问权限,环境设置。
openrc$ . admin-openrc
3、要创建服务证书,完成这些步骤:
●创建 glance 用户:
# openstack user create --domain default --password-prompt glance
图3-3-1 创建 glance用户
●添加 admin 角色到 glance 用户和 service 项目上。
# openstack role add --project service --user glance admin
●创建“glance”服务实体:
# openstack service create --name glance \
--description "OpenStack Image" image
图3-3-2 添加角色和创建服务
4、创建镜像服务的 API 端点
创建镜像服务API 端点,分别执行如下命令,执行结果如图3-3-3,图3-3-4,图3-3-5所示,注意命令执行过程产生的ID是随机产生的。
$ 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
图3-3-3 创建public端口
图3-3-4创建internal端口
图3-3-5 创建admin端口
这里做个解释,public、admin和internal,public是公共的意思,公共API网络为了让顾客管理他们自己的云在互联网上是可见的。Admin是管理,管理API网络在管理云基础设施的组织中操作也是有所限制的。Internal内部的,内部API网络会被限制在包含OpenStack服务的主机上。
三、安装和配置镜像组件
1、安装软件包:
# apt-get install glance
2、编辑文件 /etc/glance/glance-api.conf 并完成如下动作:
●在 [database] 部分,配置数据库访问:
[database]
...
connection = mysql+pymysql://glance:adminroot@controller/glance
本案例密码用adminroot。
●在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:
#...
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 = adminroot
#...
flavor = keystone
注解:将 GLANCE_PASS 替换为你为认证服务中 glance 用户选择的密码。在 [keystone_authtoken] 中注释或者删除其它选项。
●在 [glance_store] 部分,配置本地文件系统存储和镜像文件位置:
[glance_store]
#...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
3、编辑文件“/etc/glance/glance-registry.conf”并完成如下动作:
●在 [database] 部分,配置数据库访问:
[database]
#...
connection = mysql+pymysql://glance:adminroot@controller/glance
本案例密码用adminroot。
●在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:
#...
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 = adminroot
...
[paste_deploy]
flavor = keystone
注解:在 [keystone_authtoken] 中注释或者删除其他选项。
4、同步镜像服务数据库
# su -s /bin/sh -c "glance-manage db_sync" glance
注解:忽略输出中任何信息。
图3-3-6 同步数据库
四、启动镜像服务
# service glance-registry restart
# service glance-api restart
五、校验操作
这里使用“CirrOS” (http://launchpad.net/cirros)对镜像服务进行验证,CirrOS是一个小型的Linux镜像可以用来进行 OpenStack部署测试。在控制节点上执行这些命令。
1、获得 admin 凭证来获取只有管理员能执行的命令的访问权限。
$ . admin-openrc
2、下载源镜像:
用命令实现:
wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
图3-3-7 下载镜像
3、上传镜像
使用 QCOW2 磁盘格式,bare容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它。
命令:openstack image create "cirros" \
--file cirros-0.3.4-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--public
图3-3-8 上传镜像
4、确认镜像的上传并验证。
命令:openstack image list
图3-3-8 查看镜像
巩固与思考
1、镜像服务除按教师提供的方式获取外,还可以怎样获取?
2、镜像服务在OpenStack云平台中启到什么作用?没有镜像服务会有什么影响?
关注本微信公众号有更多信息:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。