前言

随着操作系统的崛起和 OpenStack 云平台的广泛应用,基于 openEuler 构建稳定高效的云基础设施已成为企业数字化转型的重要选择。Glance 作为 OpenStack 生态中核心的镜像管理组件,承担着虚拟机镜像全生命周期管控的关键职责,其部署质量直接影响云平台的镜像供给效率与稳定性。本文结合个人在 openEuler 集群环境下的多次实操经验,从环境适配、软件安装、配置优化、服务注册到实战验证,全方位拆解 Glance 镜像服务的部署流程,不仅覆盖基础配置与核心操作,还融入实操中的避坑要点与优化技巧,为从事云平台运维、OpenStack 部署的技术人员提供一份可直接落地的实战指南,助力快速搭建稳定可靠的镜像管理体系。

openEuler 介绍

openEuler 开源企业级 Linux 操作系统,聚焦服务器、云计算、边缘计算等数字基础设施场景,支持 x86_64、ARM64、RISC-V 等多芯片架构,具备高性能内核优化、原生安全增强、全生态兼容等核心特性,提供长期支持版本与稳定服务周期,可无缝适配数据库、容器、虚拟化等企业级应用,既为国内企业提供安全可控、高效稳定的系统底座,也通过开放协作的开源生态,推动操作系统在数字化转型场景中的落地与创新。

Glance镜像服务

Glance 是 OpenStack 里管虚拟机镜像的核心工具,专门负责镜像从创建、上传、存储到查询删除的全流程,就像云环境里的专属镜像仓库,给计算服务提供稳定的镜像资源,是搭弹性云平台必不可少的部分。我在 openEuler 系统上部署过好几次,感觉二者适配特别顺畅,支持多种芯片架构,内核优化到位还自带安全增强,给 Glance 当运行底座特别稳,资源利用效率也高。而且 openEuler 和 Linux 生态、OpenStack 组件都能无缝兼容,不用额外折腾就能对接 Glance 需要的存储方式、认证服务这些,部署配置省了不少事。实际用下来,这种组合不仅能让 Glance 轻松应对各种格式的镜像文件,还能借着 openEuler 的安全机制和资源调度优势,让镜像管理更可靠、扩展性更强,不管是测试环境还是企业生产集群都能适配。

Glance镜像服务安装与配置全流程解析

安装Glance核心软件包并验证系统账户

安装核心软件包

执行命令安装Glance服务:

yum -y install openstack-glance

在这里插入图片描述

系统用户和组验证

在安装openstack-glance软件包过程中,系统会自动创建专用的glance用户和用户组,这些系统账户用于运行Glance服务并确保服务运行时的安全性。

查看glance用户信息:

cat /etc/passwd | grep glance

在这里插入图片描述

查看glance用户组信息:

cat /etc/group | grep glance

在这里插入图片描述

数据库创建与授权配置

连接数据库管理系统

进入MariaDB数据库客户端环境:

mysql -uroot -p903213

在这里插入图片描述

创建专用数据库

为Glance服务创建独立的数据库实例:

create database glance;

在这里插入图片描述

配置数据库访问权限

授予glance用户对glance数据库的完整管理权限,包括本地和远程访问权限:

授予本地访问权限:

grant all privileges on glance.* to 'glance'@'localhost' identified by '903213';

在这里插入图片描述

授予远程访问权限:

grant all privileges on glance.* to 'glance'@'%' identified by '903213';

在这里插入图片描述

权限配置说明:这两条SQL语句为Glance服务在MariaDB中创建了专用的数据库用户,并授予对glance数据库的全部操作权限。第一条语句限制仅允许从本地主机连接,第二条语句扩展允许从任何网络位置远程连接,这种双重配置确保了Glance服务在不同部署场景下都能安全地读写数据库,完成服务初始化所需的各项数据操作。

退出数据库客户端

完成数据库配置后退出MariaDB环境:

在这里插入图片描述

优化与重写Glance服务主配置文件

配置文件备份策略

在进行配置修改前,首先对原始配置文件进行备份,确保配置错误时可快速恢复:

mv /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak

在这里插入图片描述

编辑主配置文件

创建新的Glance API服务配置文件:

vim /etc/glance/glance-api.conf

在这里插入图片描述

配置文件内容如下:

[DEFAULT]
log_file = /var/log/glance/api.log

[policy]
policy_file = /etc/glance/policy.yaml

[database]
connection = mysql+pymysql://glance:903213@euler01/glance

[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

[keystone_authtoken]
auth_url = http://euler01:5000/v3
www_authenticate_uri = http://euler01:5000/v3
memcached_servers = euler01:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = 903213

配置文件权限设置

为确保配置文件安全性,设置适当的文件和目录权限:

chown glance:glance /etc/glance/glance-api.conf

在这里插入图片描述

chmod 640 /etc/glance/glance-api.conf

在这里插入图片描述

验证权限设置结果:

ll /etc/glance/glance-api.conf

在这里插入图片描述

定制Glance访问控制策略(policy.yaml)

编辑策略配置文件

Glance服务的访问控制策略通过policy.yaml文件定义,该文件决定了不同角色用户对镜像资源的操作权限:

vim /etc/glance/policy.yaml

在这里插入图片描述

策略文件内容配置:

default: "role:admin"

add_image: ""
get_image: ""
get_images: ""
modify_image: ""
delete_image: ""

publicize_image: ""
undepublicize_image: ""

upload_image: ""
download_image: ""

策略文件权限设置

设置策略文件的安全权限,确保只有授权用户可以访问:

chown root:glance /etc/glance/policy.yaml

在这里插入图片描述

chmod 640 /etc/glance/policy.yaml

在这里插入图片描述

初始化Glance数据库结构并验证同步结果

执行数据库同步

以glance用户身份执行数据库架构同步命令,创建Glance服务所需的数据库表结构:

su glance -s /bin/sh -c "glance-manage db_sync"

在这里插入图片描述

命令功能说明:此命令以glance用户身份在指定的shell环境中执行数据库同步操作。glance-manage db_sync命令会读取Glance服务的数据模型定义,并在配置的MySQL数据库中创建相应的表结构、索引和约束,为Glance服务的正常运行准备完整的数据存储基础。

验证数据库初始化结果

连接至数据库验证表结构创建情况:

mysql -uroot -p903213

在这里插入图片描述

切换到glance数据库:

use glance;

在这里插入图片描述

查看数据库中的表:

show tables;

在这里插入图片描述

验证结果:数据库同步成功完成,系统中创建了15张数据表,这些表将分别存储镜像元数据、位置信息、成员关系、标签数据、属性定义等Glance服务运行所需的各类信息。

Keystone中Glance服务组件注册与初始化

加载环境变量并创建Glance服务用户

加载管理员环境变量

导入OpenStack管理员环境变量,获取管理权限:

source admin-openrc

在这里插入图片描述

创建Glance服务用户

在Keystone身份服务中创建专用的Glance服务用户:

openstack user create --domain default --password 903213 glance

在这里插入图片描述

命令功能详解:此命令在OpenStack Keystone身份服务的默认域中创建名为"glance"的系统用户,并设置登录密码为903213。该用户将专门用于Glance服务的身份认证,是OpenStack服务部署中的标准化配置步骤,确保每个服务都有独立的认证凭据。

查看当前系统用户列表:

openstack user list

在这里插入图片描述

分配管理员角色

为glance用户在service项目中分配admin角色,授予服务管理权限:

openstack role add --project service --user glance admin

在这里插入图片描述

权限分配说明:此命令为glance用户在service项目中添加admin管理员角色,赋予其对项目资源的完全操作权限。这种基于角色的访问控制是OpenStack安全架构的核心,确保服务账户仅能访问其职责范围内的资源,遵循最小权限原则。

验证角色分配结果

查看glance用户的角色分配情况:

openstack role assignment list --user glance --project service --names

在这里插入图片描述

注册Glance服务并配置三类访问端点

创建镜像服务实体

在OpenStack服务目录中注册Glance镜像服务:

openstack service create --name glance image

在这里插入图片描述

服务注册说明:此命令在OpenStack服务目录中创建类型为"image"的Glance服务实体,并设置服务名称为"glance"。服务注册使得Keystone能够识别和管理Glance服务,并为其他OpenStack组件提供服务发现功能。

查看当前服务注册列表:

openstack service list

在这里插入图片描述

配置服务访问端点

为Glance服务创建三种类型的访问端点,满足不同场景下的服务访问需求:

创建公共访问端点(Public Endpoint):

openstack endpoint create --region RegionOne glance public http://euler01:9292

在这里插入图片描述

创建内部访问端点(Internal Endpoint):

openstack endpoint create --region RegionOne glance internal http://euler01:9292

在这里插入图片描述

创建管理员访问端点(Admin Endpoint):

openstack endpoint create --region RegionOne glance admin http://euler01:9292

在这里插入图片描述

启动Glance服务并设置自启策略

配置服务开机自启

设置Glance API服务随系统启动自动运行:

systemctl enable openstack-glance-api

在这里插入图片描述

立即启动服务

启动Glance API服务进程:

systemctl start openstack-glance-api

在这里插入图片描述

验证Glance服务运行与网络状态

检查Glance服务9292端口监听状态

检查服务端口占用

验证Glance服务是否在指定端口正常监听:

netstat -tnlup | grep 9292

在这里插入图片描述

查看Glance API服务运行状态与日志信息

检查服务运行状态

查看Glance API服务的详细运行状态:

systemctl status openstack-glance-api

在这里插入图片描述

Glance镜像管理与CirrOS测试镜像实战

CirrOS测试镜像简介与应用场景

CirrOS简介:CirrOS是一个专门为云计算环境测试设计的极简Linux发行版,镜像体积小巧(通常仅十几MB),启动速度快,非常适合OpenStack、Kubernetes等云平台的快速功能验证和集成测试

Glance镜像管理命令与参数说明

镜像创建命令语法

openstack image create
  [--name <image-name>]
  [--file <filename>]
  [--disk-format <raw|qcow2|vmdk|vhd|vhdx|iso|aki|ari|ami>]
  [--container-format <bare|ovf|ova|aki|ari|ami>]
  [--visibility <public|private|community|shared>]
  [--property <key=value>]
  [--progress]
  <image-name>

磁盘格式参数说明

格式 说明
raw 原始磁盘镜像格式,无额外元数据,兼容性最强,但不支持稀疏文件
qcow2 QEMU/KVM虚拟化平台推荐格式,支持快照、压缩、加密等高级功能,最常用
vhd Microsoft Hyper-V和Citrix XenServer使用的虚拟硬盘格式
vhdx VHD格式的升级版本,支持大于2TB的镜像容量,用于新版Hyper-V
vmdk VMware虚拟机磁盘格式,适用于vSphere/ESXi虚拟化环境
ami Amazon Web Services镜像格式,需要配合aki/ari内核镜像使用
aki Amazon Kernel Image,用于AMI启动的内核镜像
ari Amazon Ramdisk Image,用于AMI启动的初始RAM磁盘

容器格式参数说明

格式 说明
bare 无容器封装,镜像文件直接使用磁盘格式,最常用选项
ovf Open Virtualization Format,用于VMware、Xen等虚拟机的封装格式
ova OVF格式的打包版本,单文件包含多个虚拟机组件
aki Amazon Kernel Image,仅包含内核,用于启动AMI镜像
ari Amazon Ramdisk Image,仅包含初始RAM磁盘,配合aki使用
ami Amazon Machine Image,AWS风格的镜像封装格式

CirrOS镜像上传与管理实战演示

准备镜像源文件

下载CirrOS测试镜像文件:

wget http://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img

验证镜像文件下载:

ll cirros-0.6.2-x86_64-disk.img

在这里插入图片描述

创建Glance镜像

使用下载的镜像文件在Glance中创建可用的云镜像:

openstack image create --file cirros-0.6.2-x86_64-disk.img --disk-format qcow2 --container-format bare --public cirros-0.6.2

在这里插入图片描述

查看镜像列表

获取当前Glance服务中的所有镜像清单:

openstack image list

在这里插入图片描述

查看镜像详细信息

查看特定镜像的完整属性信息:

openstack image show cirros-0.6.2

在这里插入图片描述

镜像删除操作

通过镜像ID删除指定的镜像资源:

openstack image delete f3b31c09-804e-4f68-a4c2-c09d69b996fd

在这里插入图片描述

验证镜像删除结果:

openstack image list

在这里插入图片描述

总结

本文围绕 openEuler 集群环境下 OpenStack Glance 镜像服务的部署与实战展开,从理论适配到实操落地完成了全流程拆解。首先明确 openEuler 作为企业级开源操作系统,凭借多架构支持、高性能内核优化及完善的生态兼容性,为 Glance 服务提供了稳定可靠的运行底座,二者的适配组合大幅降低了云平台的部署门槛。

实操层面,从 Glance 核心软件包安装、系统账户验证起步,逐步完成数据库创建授权、主配置文件优化、访问控制策略定制等关键配置,再通过 Keystone 完成服务注册、用户授权与端点配置,最终实现服务启动与状态验证。后续结合 CirrOS 测试镜像的上传、查询、删除等实战操作,完整验证了服务的可用性与功能性,全程配套命令执行截图与详细说明,确保每一步操作都可复现。

整个部署过程需重点关注配置文件语法准确性、权限安全设置及数据库同步有效性,这些细节直接决定服务运行稳定性。实测结果表明,该部署方案可快速搭建起满足企业基础需求的镜像管理体系,适配测试环境与生产集群等多样化场景。

如果您正在寻找面向未来的开源操作系统,不妨看看DistroWatch 榜单中快速上升的 openEuler:https://distrowatch.com/table-mobile.php?distribution=openeuler,一个由开放原子开源基金会孵化、支持“超节点”场景的Linux 发行版。
openEuler官网:https://www.openeuler.openatom.cn/zh/

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐