基于openEuler集群的OpenStack Glance镜像服务部署与实战操作全流程指南

前言

随着操作系统的崛起和 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原始磁盘镜像格式,无额外元数据,兼容性最强,但不支持稀疏文件
qcow2QEMU/KVM虚拟化平台推荐格式,支持快照、压缩、加密等高级功能,最常用
vhdMicrosoft Hyper-V和Citrix XenServer使用的虚拟硬盘格式
vhdxVHD格式的升级版本,支持大于2TB的镜像容量,用于新版Hyper-V
vmdkVMware虚拟机磁盘格式,适用于vSphere/ESXi虚拟化环境
amiAmazon Web Services镜像格式,需要配合aki/ari内核镜像使用
akiAmazon Kernel Image,用于AMI启动的内核镜像
ariAmazon Ramdisk Image,用于AMI启动的初始RAM磁盘

容器格式参数说明

格式说明
bare无容器封装,镜像文件直接使用磁盘格式,最常用选项
ovfOpen Virtualization Format,用于VMware、Xen等虚拟机的封装格式
ovaOVF格式的打包版本,单文件包含多个虚拟机组件
akiAmazon Kernel Image,仅包含内核,用于启动AMI镜像
ariAmazon Ramdisk Image,仅包含初始RAM磁盘,配合aki使用
amiAmazon 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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值