OpenStack核心组件原理与应用之Glance
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenStack核心组件原理与应用之Glance相关的知识,希望对你有一定的参考价值。
概览
OpenStack 镜像服务 Glance 是 IaaS(Infrastructure as a Service,基础设施即服务)的核心服务。允许用户发现、注册和获取虚拟机镜像。它提供了一个 Rest API,允许您查询虚拟机镜像的元数据,并获取镜像。您可以将镜像存储在任何位置,比如文件系统、对象存储,我们采用Ceph集群进行存储。
Glance包括以下组件:
- glance-api:接收API调用,实现镜像发现、恢复、存储等功能。
- glance-registry:存储、处理和恢复镜像的元数据,元数据包括诸如大小和类型。Glance-registry 是私有内部服务,用于服务OpenStack Image 服务,不要向公网暴露该服务。
- 数据库:存放镜像元数据,用户是可以依据个人喜好选择数据库的,此处使用 MariaDB。
- 镜像文件和存储仓库:包括普通文件系统、对象存储、RADOS 块设备、HTTP、S3 等。
- 元数据定义服务:通用的 API,是用于为厂商,管理员,服务,以及用户自定义元数据。这种元数据可用于不同的资源,例如镜像,卷,配额以及集合。一个定义包括了属性的键,描述,约束以及可以与之关联的资源的类型。
安装和配置
如何在控制节点上安装Glance?
先决条件:
- 创建数据库:
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)]> flush privileges;
- 获得admin凭证来获取只有管理员才能执行的命令的访问权限:
[[email protected] ~]# . admin-openrc
- 创建服务证书:
#创建 glance用户: [[email protected] ~]# openstack user create --domain default --password-prompt glance #添加admin角色到glance用户和service项目上: [[email protected] ~]# openstack role add --project service --user glance admin #创建glance服务实体: [[email protected] ~]# openstack service create --name glance --description "OpenStack Image" image
- 创建镜像服务的API端点:
[[email protected] ~]# openstack endpoint create --region RegionOne image public http://ct1.vtlab.io:9292 [[email protected] ~]# openstack endpoint create --region RegionOne image internal http://ct1.vtlab.io:9292 [[email protected] ~]# openstack endpoint create --region RegionOne image admin http://ct1.vtlab.io:9292
安装并配置glance组件
- 安装软件包:
[[email protected] ~]#yum -y install openstack-glance
- 修改 glance-api 配置文件
[[email protected] ~]# vim /etc/glance/glance-api.conf [databases] connection = mysql+pymysql://glance:[email protected]/glance [keystone_authtoken] #配置认证服务: auth_uri = http://ct1.vtlab.io:5000 auth_url = http://ct1.vtlab.io:35357 memcached_servers = ct1.vtlab.io: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 配置文件
[[email protected] ~]# vim /etc/glance/glance-registry.conf [database] connection = mysql+pymysql://glance:[email protected]/glance [keystone_authtoken] 配置认证服务: auth_uri = http://ct1.vtlab.io:5000 auth_url = http://ct1.vtlab.io:35357 memcached_servers = ct1.vtlab.io:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = glance password = GLANCE_PASS [paste_deploy] flavor = keystone
- 写入镜像服务数据库
[[email protected] ~]# su -s /bin/sh -c "glance-manage db_sync" glance - 启动服务,并设置开机自启动
[[email protected] ~]# systemctl start openstack-glance-api.service openstack-glance-registry.service
[[email protected] ~]# systemctl enable openstack-glance-api.service openstack-glance-registry.service
验证操作
对glance服务进行验证
- 获得admin凭证来获取只有管理员才能执行的命令的访问权限:
[[email protected] ~]# . admin-openrc - 下载源镜像:
[[email protected] ~]# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img - 使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它:
[[email protected] ~]# openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public - 确认镜像的上传并验证属性:
[[email protected] ~]# openstack image list
以上是关于OpenStack核心组件原理与应用之Glance的主要内容,如果未能解决你的问题,请参考以下文章