Openstack架构构建及详解(3)--Glance组件

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: OpenStack镜像服务( glance )使用户能够发现、注册并检索虚拟机镜像( .img文件),它提供了一个REST API 接口,使用户可以查询虚拟机镜像元数据和检索一个实际的镜像文件;不论是简单的文件系统还是OpenStack 对象存储,你都可以通过镜像服务在不同的位置存储虚拟机镜像。

Glance详解与安装


1、组件说明


Glance 服务功能


• OpenStack镜像服务( glance )使用户能够发现、注册并检索虚拟机镜像( .img文件)

• 它提供了一个REST API 接口,使用户可以查询虚拟机镜像元数据和检索一个实际的镜像文件

• 不论是简单的文件系统还是OpenStack 对象存储,你都可以通过镜像服务在不同的位置存储虚拟机镜像

• 默认情况下,上传的虚拟机镜像存储路径为/var/lib/glance/images/


glance-api:一个用来接收镜像发现、检索和存储的API 接口
glance-registry:用来存储、处理和检索镜像的元数据。元数据包含对象的大小和类型。
glance-registry是一个OpenStack镜像服务使用的内部服务,不要透露给用户
Database:用于存储镜像的元数据的大小、类型,支持大多数数据库,一般选择MySQL 或SQLite
Storage repository for image files:镜像文件的存储仓库。支持包括普通文件系统在内的各种存储类型。包括对象存储、块设备、HTTP、Amazon S3,但有些存储只支持只读访问


2、基本概念


Image Identifiers:就是Image URL ,格式/images/全局唯一


ImageStatus


➢Queued:镜像ID 已被保留,镜像还没有上传

➢Saving:镜像正在被上传

➢Active:镜像可以使用了

➢Killed:镜像损坏或者不可用

➢Deleted:镜像被删除


Disk Format


➢Raw:This is unstructured disk image format

➢Vhd:VMWare、XEN、Microsoft、VirtualBox

➢Vmdk:common format

➢Vdi:VirtualBox、QEMU emulator

➢ISO:optical disc

➢Qcow2:QEMU emulator

➢Aki:Amazon Kernel Image

➢Ari:Amazon ramdisk image

➢Ami:Amazon machine image


Container Format


➢Bare

➢Ovf

➢Aki

➢Ami

➢Ari


3、组件工作流程


微信图片_20220509204712.png


4、构建实验


一、安装先决条件


1、创建数据库
a.以数据库管理员root的身份登录数据库
[root@controller ~]# mysql -uroot -pa
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 5.5.37-MariaDB MariaDB Server
Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
b.创建glance数据库
MariaDB [(none)]> CREATE DATABASE glance;
Query OK, 1 row affected (0.00 sec)
c.创建数据库用户glance,并授予其对glance数据库的管理权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%'  IDENTIFIED BY 'GLANCE_DBPASS';
Query OK, 0 rows affected (0.00 sec)
2、启用admin环境脚本
[root@controller ~]# source admin-openrc.sh
3、创建认证服务凭证
a.创建glance用户
[root@controller ~]# keystone user-create --name glance --pass GLANCE_PASS
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |                                  |
| enabled  |               True               |
|    id    | aec25e44755d425cb8948bafc47d5071 |
|   name   |              glance              |
| username |              glance              |
+----------+----------------------------------+
b.将glance用户链接到service租户和admin角色
[root@controller ~]# keystone user-role-add --user glance --tenant service --role admin
c.创建glance服务
[root@controller ~]# keystone service-create --name glance --type image --description "OpenStackImage Service"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |      OpenStackImage Service      |
|   enabled   |               True               |
|      id     | 4436c2e4a7c940ea895a3b84484c02a5 |
|     name    |              glance              |
|     type    |              image               |
+-------------+----------------------------------+
4、为OpenStack镜像服务创建认证服务端点admin(管理),internal(内部),public(公共)
[root@controller ~]# keystone endpoint-create --service-id $(keystone service-list |awk '/image/{print $2}') --publicurl http://controller.nice.com:9292 --internalurl http://controller.nice.com:9292 --adminurl http://controller.nice.com:9292 --region regionOne
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
|   adminurl  | http://controller.nice.com:9292  |
|      id     | bb5cce3c4f0f4528812fbb7796ab0f89 |
| internalurl | http://controller.nice.com:9292  |
|  publicurl  | http://controller.nice.com:9292  |
|    region   |            regionOne             |
|  service_id | 4436c2e4a7c940ea895a3b84484c02a5 |
+-------------+----------------------------------+
 构建完成


5、测试


 [root@controller images]# yum install -y lrzsz
[root@controller images]# ls
cirros-0.3.3-x86_64-disk.img
[root@controller ~]#  source admin-openrc.sh
[root@controller images]# glance image-create --name "cirros-0.3.3-x86_64" --file cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --is-public True --progress 
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 133eae9fb1c98f45894a4e60d8736619     |
| container_format | bare                                 |
| created_at       | 2020-07-24T11:25:08                  |
| deleted          | False                                |
| deleted_at       | None                                 |
| disk_format      | qcow2                                |
| id               | 807f460b-566a-4989-b166-dc83248d4a40 |
| is_public        | True                                 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | cirros-0.3.3-x86_64                  |
| owner            | dc4de4d7ecda4ed898b5e0d82809d2ad     |
| protected        | False                                |
| size             | 13200896                             |
| status           | active                               |
| updated_at       | 2020-07-24T11:25:09                  |
| virtual_size     | None                                 |
+------------------+--------------------------------------+
 测试成功


二、安装并配置镜像服务组件


1、安装软件包
[root@controller ~]# yum install openstack-glance python-glanceclient
2、编辑文件更改配置文件
[root@controller ~]# vim /etc/glance/glance-api.conf
a.修改[database]小节,配置数据库连接:
[database]...
connection = mysql://glance:GLANCE_DBPASS@controller.nice.com/glance
b.修改[keystone_authtoken]和[paste_deploy]小节,配置认证服务访问:[keystone_authtoken]
...
auth_uri= http://controller.nice.com:5000/v2.0
identity_uri= http://controller.nice.com:35357
admin_tenant_name= service
admin_user= glance
admin_password= GLANCE_PASS
[paste_deploy]
...
flavor = keystone
c.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。[DEFAULT]...verbose = True
3、编辑/etc/glance/glance-registry.con文件,并完成下列配置:
a.在[database]小节中配置数据库连接:
[database]
...
connection = mysql://glance:GLANCE_DBPASS@controller.nice.com/glance
b.在[keystone_authtoken]和[paste_deploy]小节中配置认证服务访问
[keystone_authtoken]
...
auth_uri= http://controller.nice.com:5000/v2.0
identity_uri= http://controller.nice.com:35357
admin_tenant_name= service
admin_user= glanceadmin_password= GLANCE_PASS[paste_deploy]...flavor = keystone
c.在[glance_store]小节中配置本地文件系统存储和镜像文件的存放路径
[glance_store]
...
default_store= filefile
system_store_datadir= /var/lib/glance/images/
d.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。
[DEFAULT]
...
verbose = True
4、初始化镜像服务的数据库
[root@controller ~]# su -s /bin/sh -c "glance-manage db_sync" glance
启动镜像服务并设置开机自动启动:
[root@controller ~]#  systemctl enable openstack-glance-api.service openstack-glance-registry.service
ln -s '/usr/lib/systemd/system/openstack-glance-api.service' '/etc/systemd/system/multi-user.target.wants/openstack-glance-api.service'
ln -s '/usr/lib/systemd/system/openstack-glance-registry.service' '/etc/systemd/system/multi-user.target.wants/openstack-glance-registry.service'
[root@controller ~]# systemctl start openstack-glance-api.service openstack-glance-registry.service
glance image-create相关选项含义:
--name <NAME>镜像名称。
--file <FILE>要上传文件及路径。
--disk-format <DISK_FORMAT>镜像的磁盘格式。可以支持:ami, ari, aki, vhd, vmdk, raw, qcow2, vdi,iso格式。
--container-format <CONTAINER_FORMAT>镜像容器格式。可以支持:ami, ari, aki, bare, ovf格式。
--is-public {True,False}镜像是否可以被公共访问。
--progress显示上传进度
[root@controller images]# glance image-list
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| ID                                   | Name                | Disk Format | Container Format | Size     | Status |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| 807f460b-566a-4989-b166-dc83248d4a40 | cirros-0.3.3-x86_64 | qcow2       | bare             | 13200896 | active |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+


相关文章
|
4天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
4天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。
|
1天前
|
监控 API 持续交付
构建高效微服务架构:后端开发的新趋势
【4月更文挑战第23天】 随着现代软件开发实践的不断演进,微服务架构已经成为企业追求敏捷、可扩展和弹性解决方案的首选。本文深入探讨了如何构建一个高效的微服务架构,涵盖了关键的设计原则、技术选型以及实践建议。通过分析微服务的独立性、分布式特性和容错机制,我们将揭示如何利用容器化、服务网格和API网关等技术手段,来优化后端系统的可维护性和性能。文章旨在为后端开发人员提供一套全面的指南,以应对不断变化的业务需求和技术挑战。
|
3天前
|
Cloud Native API 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第21天】 随着企业加速其数字化转型的步伐,云原生技术已迅速成为推动创新和实现敏捷性的基石。本文深入探讨了云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及声明式API。通过分析这些技术的协同效应,揭示了它们如何共同促进系统的可伸缩性、弹性和维护性,进而支持企业在不断变化的市场环境中保持竞争力。
10 1
|
3天前
|
敏捷开发 Cloud Native 持续交付
构建未来:云原生架构的进化之路
【4月更文挑战第21天】随着数字化转型的深入,企业对IT基础设施的要求日益提高。云原生技术以其灵活性、可扩展性和敏捷性成为推动创新的重要力量。本文将探讨云原生架构的核心组件,分析其如何助力企业实现快速迭代和高效运营,并预测云原生技术的发展趋势。
|
6天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新趋势
【4月更文挑战第18天】在数字化转型的浪潮中,微服务架构已成为企业提升系统灵活性、加速产品迭代的关键。此文深入探讨了构建高效微服务架构的实践方法,包括服务划分原则、容器化部署、持续集成/持续部署(CI/CD)流程以及监控与日志管理等关键技术点。通过分析具体案例,揭示了微服务在提高开发效率、降低维护成本及促进团队协作方面的显著优势。
|
6天前
|
Cloud Native 持续交付 云计算
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第18天】 随着企业加速迈向数字化,云原生架构成为推动创新与效率的催化剂。本文深入探讨了云原生技术如何助力企业实现敏捷开发、自动化运维和无缝可扩展性,以及它如何塑造着云计算的未来。我们将通过具体案例分析,揭示云原生架构在处理复杂系统时的灵活性和可靠性,并展望其对业务连续性和安全性的积极影响。
11 1
|
9天前
|
Cloud Native 持续交付 API
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第15天】 随着企业加速其数字化转型的步伐,云原生架构已经成为推动创新和实现敏捷性的关键技术。本文深入探讨了云原生技术如何助力企业在竞争激烈的市场中保持领先地位,包括它的核心组件、实施策略以及面临的挑战。通过实际案例分析,我们揭示了企业如何利用云原生架构来优化资源使用、提高开发效率和加强系统的稳定性与安全性。
|
9天前
|
监控 JavaScript 安全
构建微服务架构下的API网关
【4月更文挑战第15天】在微服务架构中,API网关扮演着至关重要的角色。它作为系统的唯一入口,不仅负责请求的路由、负载均衡和认证授权,还涉及到监控、日志记录和服务熔断等关键功能。本文将探讨如何构建一个高效且可靠的API网关,涵盖其设计原则、核心组件以及实现策略,旨在为后端开发人员提供一套实用的指导方案。
22 4
|
10天前
|
监控 负载均衡 API
构建高性能微服务架构:后端开发的最佳实践
【4月更文挑战第14天】 在当今快速发展的软件开发领域,微服务架构已成为构建可扩展、灵活且容错的系统的首选方法。本文深入探讨了后端开发人员在设计和维护高性能微服务时需要遵循的一系列最佳实践。我们将从服务划分原则、容器化部署、API网关使用、负载均衡、服务监控与故障恢复等方面展开讨论,并结合实际案例分析如何优化微服务性能及可靠性。通过本文的阅读,读者将获得实施高效微服务架构的实用知识与策略。