1. 欧拉集群
1.1 集群拓扑
- Euler01 - 主控节点,Euler02和Euler03 - 从节点
1.2 查看主机名
- 查看Euler01节点主机名,执行命令:
hostname
- 查看Euler02节点主机名,执行命令:
hostname
- 查看Euler03节点主机名,执行命令:
hostname
1.3 查看IP地址
-
查看Euler01节点IP地址,执行命令:
ip addr
-
查看Euler02节点IP地址,执行命令:
ip addr
-
查看Euler03节点IP地址,执行命令:
ip addr
1.4 查看映射文件
-
查看Euler01节点映射文件,执行命令:
cat /etc/hosts
-
查看Euler02节点映射文件,执行命令:
cat /etc/hosts
-
查看Euler03节点映射文件,执行命令:
cat /etc/hosts
1.5 查看防火墙状态
-
查看Euler01节点防火墙状态,执行命令:
systemctl status firewalld
-
查看Euler02节点防火墙状态,执行命令:
systemctl status firewalld
-
查看Euler03节点防火墙状态,执行命令:
systemctl status firewalld
1.6 检测集群互通性
- 测试主节点Euler01到三个节点的连通性
- 执行命令:
ping euler01
- 执行命令:
ping euler02
- 执行命令:
ping euler03
- 执行命令:
- 测试从节点Euler02到三个节点的连通性
-
执行命令:
ping euler01
-
执行命令:
ping euler02
-
执行命令:
ping euler03
-
- 测试从节点Euler03到三个节点的连通性
-
执行命令:
ping euler01
-
执行命令:
ping euler02
-
执行命令:
ping euler03
-
2. 任务描述
- Glance是OpenStack的镜像服务组件,负责管理虚拟机镜像的注册、存储与分发,支持多种镜像格式,为 Nova 计算服务提供镜像资源,实现虚拟机的快速创建与部署。本次任务在主节点上安装与配置Glance镜像服务。
3. 任务实施
3.1 安装配置Glance
3.1.1 安装Glance软件包
- 执行命令:
yum -y install openstack-glance
- 在安装openstack-glance软件包时,会自动在系统中生成一个名为glance的用户和用户组。
- 执行命令:
cat /etc/passwd | grep glance
,查看glance用户信息
- 执行命令:
cat /etc/group | grep glance
,查看glance用户组信息
3.1.2 创建Glance数据库并授权
-
进入MariaDB数据库客户端
- 执行命令:
mysql -uroot -p903213
- 执行命令:
-
新建glance数据库
- 执行命令:
create database glance;
- 执行命令:
-
给用户授权使用glance数据库
-
执行命令:
grant all privileges on glance.* to 'glance'@'localhost' identified by '903213';
,将glance数据库的管理权限授予本地登录用户
-
执行命令:
grant all privileges on glance.* to 'glance'@'%' identified by '903213';
,将glance数据库的管理权限授予远程登录用户
-
结果说明:该命令为Glance服务在MariaDB中创建用户并授予对
glance
数据库的全部权限。第一条仅限本地连接('@localhost'
),第二条语句允许远程访问('@%'
),确保 Glance 能安全地读写数据库,完成服务初始化配置。
-
-
退出MariaDB客户端
- 执行命令:
quit
- 执行命令:
3.1.3 修改Glance配置文件
- 备份配置文件
- 执行命令:
mv /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak
- 执行命令:
- 编辑配置文件
-
执行命令:
vim /etc/glance/glance-api.conf
[DEFAULT] bind_host = 0.0.0.0 bind_port = 9292 show_image_direct_url = true workers = 4 log_file = /var/log/glance/api.log backlog = 4096 [database] connection = mysql+pymysql://glance:903213@euler01/glance max_retries = 10 retry_interval = 1 [glance_store] stores = file,http default_store = file filesystem_store_datadir = /var/lib/glance/images/ [keystone_authtoken] www_authenticate_uri = http://euler01:5000 auth_url = http://euler01:5000 memcached_servers = euler01:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = huawei username = glance password = 903213 [paste_deploy] flavor = keystone [oslo_messaging_notifications] transport_url = rabbit://openstack:903213@euler01 [oslo_concurrency] lock_path = /var/lib/glance/tmp [cors] allowed_origin = * allow_methods = GET,PUT,POST,DELETE,OPTIONS allow_headers = X-Auth-Token,Content-Type,Content-Length,Authorization expose_headers = X-Auth-Token allow_credentials = true
-
配置说明:该配置文件定义了Glance服务的运行参数:绑定IP和端口,连接数据库与Keystone认证,设置本地文件存储路径,启用多进程和日志,配置消息队列及跨域访问规则,确保镜像服务正常运行并安全对外提供REST API。
-
注意:
project_name = huawei
,是我们在[2.1 欧拉集群安装Keystone认证服务
]里创建的huawei
用户
-
3.1.4 初始化Glance数据库
-
同步glance数据库
- 执行命令:
su glance -s /bin/sh -c "glance-manage db_sync"
- 命令说明:该命令以
glance
用户身份执行数据库同步操作,-s /bin/sh
指定shell环境,-c
后接命令。glance-manage db_sync
用于将Glance的数据库模型同步到MySQL,创建所需表结构,确保服务正常运行。
- 执行命令:
-
查看glance数据库
-
执行命令:
mysql -uroot -p903213
,进入MariaDB客户端
-
执行命令:
use glance;
,切换到glance
数据库
-
执行命令:
show tables;
,查看数据库中的表,以此检验数据库同步是否成功
-
可以看到,数据库同步成功,里面有
15
张表
-
3.2 Glance组件初始化
3.2.1 创建Glance用户并分配角色
- 导入环境变量,模拟登录
- 执行命令:
source admin-openrc
- 执行命令:
- 创建Glance用户
- 执行命令:
openstack user create --domain default --password 903213 glance
- 命令说明:该命令在OpenStack Keystone中创建名为“
glance
”的用户,指定默认域(default
),设置密码为903213
,用于Glance服务的身份认证,是部署镜像服务的关键步骤。
- 执行命令:
- 为glance用户分配admin角色
- 执行命令:
openstack role add --project huawei --user glance admin
- 命令说明:该命令为用户
glance
在项目huawei
中添加admin
角色,赋予其管理权限,使其能够操作该项目下的资源,是配置OpenStack服务权限的关键步骤。
- 执行命令:
3.2.2 创建Glance服务及服务端点
- 创建镜像服务
- 执行命令:
openstack service create --name glance image
- 命令说明:该命令在OpenStack中创建名为“
glance
”的服务实体,类型为“image
”,用于注册Glance镜像服务,使其能够被Keystone识别和管理,是服务部署的关键步骤。
- 执行命令:
- 创建镜像服务端点
-
第1步,创建公众用户访问的服务端点
- 执行命令:
openstack endpoint create --region RegionOne glance public http://euler01:9292
- 命令说明:该命令在OpenStack中为Glance服务创建公共端点,指定区域为RegionOne,接口类型为
public
,访问地址为http://euler01:9292
,使用户可通过API访问镜像服务,是服务对外提供接口的关键配置。
- 执行命令:
-
第2步,创建内部组件访问的服务端点
- 执行命令:
openstack endpoint create --region RegionOne glance internal http://euler01:9292
- 命令说明:该命令为Glance服务创建内部端点,指定区域为RegionOne,接口类型为
internal
,访问地址为http://euler01:9292
,用于OpenStack内部组件(如Nova)安全访问镜像服务。
- 执行命令:
-
第3步,创建Admin用户访问的服务端点
- 执行命令:
openstack endpoint create --region RegionOne glance admin http://euler01:9292
- 命令说明:该命令为Glance服务创建管理员端点,指定区域为RegionOne,接口类型为
admin
,访问地址为http://euler01:9292
,用于管理员执行高权限操作,确保服务管理安全可控。
- 执行命令:
-
3.2.3 启动Glance服务
-
开机启用Glance服务
- 执行命令:
systemctl enable openstack-glance-api
- 执行命令:
-
立即启动Glance服务
- 执行命令:
systemctl start openstack-glance-api
- 执行命令:
3.3 验证Glance服务
3.3.1 查看端口占用情况
- 执行命令:
netstat -tnlup | grep 9292
- 结果说明:该命令显示Glance API服务已在
9292
端口监听,0.0.0.0:9292
表示服务对所有网络接口开放,LISTEN
状态说明服务已启动并准备接收请求,python3
表明由Python进程运行,确认服务正常运行。
3.3.2 查看服务运行状态
- 执行命令:
systemctl status openstack-glance-api
- 结果说明:该命令显示OpenStack Glance API服务已成功启动,状态为“
active (running)
”,主进程PID为802102
,多个Python子进程正常运行,内存占用约111.2M
,表明服务稳定运行中。
3.4 用Glance制作镜像
- CirrOS是一个专为云环境测试设计的轻量级镜像,常用于OpenStack、Kubernetes等平台的快速验证。
3.4.1 镜像命令
-
语法格式
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>
-
参数说明
-
--disk-format
可选值格式 说明 raw 原始磁盘镜像,无格式,兼容性强,但不支持稀疏文件 qcow2 QEMU/KVM 推荐格式,支持快照、压缩、加密等高级功能(最常用) vhd Microsoft Hyper-V 和 Citrix XenServer 使用的虚拟硬盘格式 vhdx VHD 的升级版,支持大于 2TB 的镜像,用于新版本 Hyper-V vmdk VMware 虚拟机磁盘格式,适用于 vSphere/ESXi 环境 ami AWS 镜像格式(Amazon Machine Image),需配合 aki/ari 使用 aki AWS Kernel Image,用于 AMI 启动的内核镜像 ari AWS Ramdisk Image,用于 AMI 的初始 RAM 磁盘 -
总结:最常用的是
qcow2
和raw
,其它格式主要用于特定虚拟化平台。 -
--container-format
参数说明
格式 说明 bare 无容器封装,镜像文件直接就是磁盘格式(如 qcow2、raw),最常用 ovf Open Virtualization Format,用于 VMware、Xen 等虚拟机的封装格式 ova OVF 的打包版本(单个文件),包含多个虚拟机部件 aki Amazon Kernel Image,仅包含内核,用于启动 AMI 镜像 ari Amazon Ramdisk Image,仅包含初始 RAM 磁盘,配合 aki 使用 ami Amazon Machine Image,AWS 风格的镜像封装格式 -
3.4.2 准备工作
- 执行命令:
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
3.4.3 制作镜像
- 执行命令:
openstack image create --file cirros-0.6.2-x86_64-disk.img --disk-format qcow2 --container-format bare --public cirros-0.6.2
- 命令说明:该命令用于在OpenStack中创建名为
cirros-0.6.2
的镜像,指定磁盘格式为qcow2
,容器格式为bare
,并设置为公开共享。执行后显示镜像基本信息,如ID、状态和存储路径等。
3.4.4 查看镜像
- 执行命令:
openstack image list
- 执行命令:
openstack image show cirros-0.6.2
- 命令说明:该命令用于查看OpenStack中指定镜像的详细信息,包括ID、名称、状态、大小、格式、创建时间、存储路径和可见性等元数据,便于管理和调试。
4. 实战总结
- 本次实验成功部署并配置了OpenStack Glance镜像服务。通过在主节点Euler01上安装Glance、创建数据库、配置Keystone认证与服务端点,实现了镜像的注册与管理。利用
openstack image create
命令将CirrOS镜像上传至Glance,并验证其状态为“active”,可见性为“public”。整个过程涵盖网络互通性测试、服务启动、权限分配和API调用,确保Glance服务稳定运行,为后续Nova计算服务提供镜像支持,完成了OpenStack核心组件的集成部署。