文章目录
一、实验目的
- 熟悉Linux基本服务配置;
- 理解OpenStack基本环境中各组件用途。
二、实验环境
- 实验资源 云主机Vultr、DigitalOCean等
- 软件环境 CentOS 7
三、实验内容
3.0.glance 概述
1)glance 作用 用户使用镜像服务 (glance) 来创建、查询虚拟机镜像。
2)glance 镜像服务的组件
glance-api: 用于接收镜像 REST API 的调用,诸如镜像查找、获取、上传、删除。
glance-registry: 用于与 mysql 数据库交互,监听端口为 9191。 提供镜像元数据相关的 REST 接口,用于存储、处理和恢复镜像的元数据。 通过 glance-registry 可以向数据库中写入或获取镜像的各种数据。
image:镜像文件的存储仓库 支持多种类型的仓库,它们有普通文件系统、对象存储以及亚马逊 S3 等。
image store: 是一个存储的接口层,通过这个接口 glance 可以获取镜像,支持的存储有亚马逊的 S3,openstack 本身的 swift 等。
数据库: 存放镜像元数据,多数的部署使用 MySQL。
元数据定义服务: 通用的 API,是用于为厂商、管理员以及用户自定义元数据。
3.1.在控制端安装镜像服务 glance
1)创建 glance 数据库 复制代码 mysql -p123456
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@‘localhost’ IDENTIFIED BY ‘glance’;
GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’%’ IDENTIFIED BY ‘glance’;
flush privileges;
exit
3.2.在 keystone 上面注册 glance
1)在 keystone 上创建 glance 用户 以下命令在 local_user 表创建 glance 用户
source admin-openrc
openstack user create --domain default --password=glance glance
openstack user list
2)在 keystone 上将 glance 用户添加为 service 项目的 admin 角色(权限) 以下命令无输出
openstack role add --project service --user glance admin
3)创建 glance 镜像服务的实体 以下命令在 service 表中增加 glance 项目
openstack service create --name glance --description “OpenStack Image” image openstack service list
4)创建镜像服务的 API 端点(endpoint) 以下命令会在 endpoint 表增加 3 条项目(注意 IP 地址)
openstack endpoint create --region RegionOne image public http://ip地址:9292
openstack endpoint create --region RegionOne image internal http://ip地址:9292
openstack endpoint create --region RegionOne image admin http://ip地址:9292
openstack endpoint list
glance 在 keystone 上面注册完成,可以进行相关软件安装
3.3.安装 glance 相关软件
1)检查 Python 版本
在安装 glance 前需要确认系统的 Python 版本,通常要求
python 2.7 python --version
2)安装 glance 软件
yum install openstack-glance python-glance python-glanceclient -y
3)执行以下命令可以快速配置 glance-api.conf
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:glance@controller/glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://controller:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password glance
openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http
openstack-config --set /etc/glance/glance-api.conf glance_store default_store file
openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/
4)执行以下命令可以快速配置 glance-registry.conf
openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:glance@controller/glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken www_authenticate_uri http://controller:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password glance
openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
glance 软件安装完毕
3.4.同步 glance 数据库
1)为 glance 镜像服务初始化同步数据库 生成的相关表
su -s /bin/sh -c “glance-manage db_sync” glance
2)同步完成进行连接测试 保证所需表已经建立,否则后续无法进行
mysql -h192.168.56.126 -uglance -pglance -e “use glance;show tables;”
3.5.启动 glance 镜像服务
1)启动 glance 镜像服务、并配置开机自启动
systemctl start openstack-glance-api.service openstack-glance-registry.service
systemctl status openstack-glance-api.service openstack-glance-registry.service
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl list-unit-files |grep openstack-glance*
2)其他命令:重启,停止
systemctl restart openstack-glance-api.service openstack-glance-registry.service
systemctl stop openstack-glance-api.service openstack-glance-registry.service
3.6.检查确认 glance 安装正确
可以下载小型的 Linux 镜像 CirrOS 用来进行 OpenStack 部署测试。
下载地址:http://download.cirros-cloud.net/
1)下载镜像
yum install wget -y wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
2)获取管理员权限
source admin-openrc
3)上传镜像到 glance 使用 qcow2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置镜像为公共
openstack image create “cirros” --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --public
4)查看镜像
openstack image list
总结
OpenStack的Glance组件:
一:简介
一、作用
- Glance是OpenStack镜像服务,用来注册、登陆和检索虚拟机镜像。
- Glance服务提供了一个REST API,使你能够查询虚拟机镜像元数据和检索的实际镜像。
- 通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似OpenStack对象存储系统。
- 提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板
二、镜像状态
- Queued:初始化镜像状态,在镜像文件刚刚被创建,在glance数据库中已经保存了镜像标示符,但还没有上传至glance中,此时的glance对镜像数据没有任何描述,其存储空间为0。
- Saving:镜像的原始数据在上传中的一种过度状态,它产生在镜像数据上传至glance的过程中,一般来讲,glance收到一个image请求后,才将镜像上传给glance。
- Active:镜像成功上传完毕以后的一种状态,它表明glance中可用的镜像。
- Killed:镜像上传失败或者镜像文件不可读的情况下,glance将镜像状态设置成Killed。
- Deleted:镜像文件马上会被删除,只是当前glance这种仍然保留该镜像文件的相关信息和原始镜像数据。
- Pending_delete:镜像文件马上会被删除,镜像文件不能恢复。
二:架构
一、核心架构
- Glance-api:接收REST API的请求,然后通过其他模块(glance-registry及image store)来完成诸如镜像的查找、获取、上传、删除等操作,默认监听端口9292。
- Glance-registry:用于与MariaDB数据库交互,用于存储或获取镜像的元数据(metadata),默认监听端口9191。
- Store Adapter:通过提供的存储接口来获取镜像
- Database:Image的metadata会保持到database中,主要使用MySQL和SQLite。
二、配置文件
- Glance-api.conf :Glance api 服务配置文件。
- Glance服务安装的日志和调试信息,例如:debug、日志文件路径log_file等参数。
- Glance服务的API服务器的相关信息。例如:服务绑定的IP地址、端口bind_port等参数
- Registry服务的相关信息,例如:Registry服务的网络地址、监听的端口号、glance与Registry间通信的协议等。
- 系统消息相关参数,该部分主要配置glance与系统消息的收发。消息队列rabbitmq的IP地址、监听端口等参数
- 镜像后端存储的相关配置,一般情况下,glance-api.config中包含普通文件存储、swift、S3、RBD等较为常见的存储设备的信息配置。
- Glance-registry.conf :Glanceregistry服务配置文件,用户存储镜像有关的元数据。
- glance-scrubber.conf :用于清理已删除的镜像的服务。
- policy.json :镜像服务的访问控制。在这里,我们可以定义角色和策略,是OpenStack Glance中的安全特性。
三:工作流程
四:常用操作