openstack总结

OpenStack 核心服务管理全总结

一、认证服务(Keystone)

(一)核心概念

术语 定义
Domain(域) 虚拟容器,包含 User、Group、Project 等资源,全局唯一,适用于大型机构或数据中心
User(用户) 访问 OpenStack 服务的个人、系统或服务,通过凭证(用户名 / 密码)认证
Group(用户组) 一组用户的集合,可批量分配角色权限,简化权限管理
Project(项目) 资源集合(计算、存储、网络),域内唯一,公有云场景下也称 "租户"
Role(角色) 定义用户权限集合,全局唯一,支持域级和项目级分配,可继承
Service(服务) OpenStack 核心组件(如 Nova、Glance),通过端点提供服务
Endpoint(端点) 服务的网络访问地址(URL),分公网、内网、管理网三类
Token(令牌) 认证成功后发放的访问凭证,默认有效期 24 小时

(二)常用操作命令

功能 命令
切换管理员环境 source keystonerc_admin
列出所有域 openstack domain list
创建域 openstack domain create 域名称(例:openstack domain create domain-test
删除域 先禁用:openstack domain set --disable 域名称,再删除:openstack domain delete 域名称
列出所有用户 openstack user list
创建用户 openstack user create --password 密码 用户名(例:openstack user create --password HUAWEI user1
创建用户组 openstack group create 组名称(例:openstack group create group1
添加用户到组 openstack group add user 组名称 用户名
分配角色(项目级) openstack role add --user 用户名 --project 项目名 角色名
分配角色(组级) openstack role add --group 组名称 --project 项目名 角色名
列出所有项目 openstack project list
创建项目 openstack project create 项目名(例:openstack project create ProjectA
修改项目配额 openstack quota set --instance 实例数 --cores vCPU数 --ram 内存MB 项目名

(三)关键配置

  • 开启多域登录:修改 /etc/openstack-dashboard/local_settings,设置 OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True,重启 httpd 服务。

二、镜像服务(Glance)

(一)核心概念

术语 定义
镜像(Image) 包含操作系统及配置的模板,支持公共、私有、共享、市场镜像类型
实例(Instance) 基于镜像创建的虚拟机,镜像与实例相互独立,实例修改不影响镜像
规格(Flavor) 定义实例的资源配置(vCPU、内存、磁盘)
磁盘格式 镜像的存储格式(qcow2、raw、vmdk 等),创建时需指定

(二)镜像状态机

镜像状态 说明
queued 已注册元数据,未上传镜像数据
saving/uploading 镜像数据正在上传
active 镜像创建完成,可用于创建实例
deactivated 非管理员无法访问
killed 上传失败,镜像不可用
deleted/pending_delete 镜像已标记删除,pending_delete 状态可恢复

(三)常用操作

功能 操作方式
上传镜像(Web 界面) 进入 "项目> 计算 > 镜像",选择镜像文件,指定格式(如 QCOW2)和可见性
上传镜像(命令行) glance image-create --name 镜像名 --file 本地路径 --disk-format 格式 --container bare --progress
查看镜像信息 openstack image show 镜像名/ID
制作私有镜像 基于实例快照或外部镜像文件创建,需安装 cloud-init 支持密钥登录
配置 Swift 后端存储 修改 /etc/glance/glance-api.conf,设置 default_store=swift,配置 Swift 认证信息,重启 Glance 服务

三、计算服务(Nova)

(一)核心功能

  • 虚拟机生命周期管理(创建、启动、停止、重启、删除、迁移)。

  • 计算资源调度(基于过滤器和权重算法选择最优计算节点)。

  • 实例规格(Flavor)管理、资源配额控制。

(二)核心组件

组件 作用
nova-api 对外提供 REST API,接收请求并转发给其他组件
nova-scheduler 调度器,通过过滤器(Filter)和权重(Weight)选择计算节点
nova-conductor 处理数据库操作,解耦 nova-compute 与数据库,提升安全性和性能
nova-compute 执行虚拟机生命周期操作,对接虚拟化驱动(KVM、VMware 等)
placement 跟踪资源提供者的库存和使用情况

(三)常用操作

功能 命令 / 操作
列出计算服务状态 openstack compute service list
创建实例规格 界面:"管理员> 计算 > 实例类型",或命令:openstack flavor create
创建实例 界面:"项目> 计算 > 实例 > 启动实例",需指定镜像、规格、网络
启动实例 openstack server start 实例名/ID
停止实例 openstack server stop 实例名/ID
重启实例 软重启:openstack server reboot 实例名/ID;硬重启:openstack server reboot --hard 实例名/ID
挂起实例 openstack server suspend 实例名/ID
恢复实例 openstack server resume 实例名/ID
锁定实例 openstack server lock 实例名/ID(防止误删除)
热迁移实例 界面:选中实例 > "迁移",指定目标节点;命令:openstack server migrate 实例名 --host 目标节点

(四)调度机制

  1. 过滤阶段(Filter) :默认启用 AvailabilityZoneFilter(可用域过滤)、ComputeFilter(计算服务状态过滤)等,筛选符合条件的计算节点。

  2. 权重阶段(Weight):默认按空闲内存排序,空闲内存越多,权重越高,优先分配。

四、块存储服务(Cinder)

(一)核心概念

术语 定义
块存储(Block Storage) 持久化存储设备,生命周期独立于实例,支持挂载、卸载、快照
卷(Volume) 可挂载到实例的块存储设备,由后端存储(LVM、Ceph、SAN)提供
卷快照(Snapshot) 卷的某一时刻快照,用于数据备份和恢复
后端存储(Backend) 实际提供存储资源的设备,Cinder 通过驱动适配

(二)核心组件

组件 作用
cinder-api 对外提供 REST API,处理卷创建、挂载等请求
cinder-scheduler 调度卷到合适的后端存储节点
cinder-volume 管理后端存储,执行卷的实际操作
cinder-backup 卷备份服务,支持备份到 Swift、Ceph 等

(三)常用操作

功能 命令 / 操作
列出卷 openstack volume list
创建卷 openstack volume create --size 大小GB --availability-zone 可用域 卷名称
挂载卷到实例 openstack server add volume 实例名 卷名
卸载卷 openstack server remove volume 实例名 卷名
创建卷快照 openstack volume snapshot create --volume 卷名 快照名
恢复卷(从快照) openstack volume create --snapshot 快照名 新卷名

五、对象存储服务(Swift)

(一)核心特点

  • 用于静态数据长期存储(虚拟机镜像、备份、图片),无中心节点,扩展性强。

  • 数据模型:Account(账户)→ Container(容器)→ Object(对象)

  • 支持多副本存储,通过 Ring(环)维护数据与物理存储的映射关系。

(二)常用操作

功能 操作方式
创建容器 界面:"项目> 对象存储 > 容器 > 创建容器",指定名称和访问权限(公有 / 私有)
上传对象 进入容器 > "上传对象",选择本地文件上传
下载对象 选中容器中的对象 > "下载"
查看容器信息 swift stat 容器名
命令行创建容器 swift post 容器名
命令行上传对象 swift upload 容器名 本地文件路径

六、网络服务(Neutron)

(一)核心概念

术语 定义
Network(网络) 二层广播域,支持 Local、Flat、VLAN、VXLAN、GRE 类型
Subnet(子网) IP 地址段(IPv4/IPv6),一个网络可包含多个不重叠子网
Port(端口) 虚拟交换机的端口,关联 MAC 地址和 IP 地址,用于实例网卡绑定
Router(路由器) 实现跨子网通信,支持 NAT、路由转发
安全组(Security Group) 通过 iptables 控制实例的出入站流量
浮动 IP(Floating IP) 映射私有 IP,实现实例对外网的访问和被访问

(二)网络类型说明

类型 特点
Local 仅主机内实例通信,隔离性最强,用于单机测试
Flat 无 VLAN 标签,同一网络跨节点通信
VLAN 基于 802.1q 标签,二层隔离,适用于企业内部网络
VXLAN/GRE Overlay 隧道网络,克服物理网络限制,适用于大规模云环境

(三)常用操作

功能 操作方式
创建网络 界面:"项目> 网络 > 创建网络",选择网络类型(如 VXLAN)、配置子网
创建路由器 界面:"项目> 网络 > 路由 > 新建路由",关联外部网络和内部子网
分配浮动 IP 界面:"项目> 网络 > 浮动 IP > 分配浮动 IP",关联实例端口
配置安全组规则 进入安全组 > "添加规则",开放端口(如 22 端口用于 SSH,ICMP 用于 Ping)
查看网络代理状态 openstack network agent list

七、编排服务(Heat)

(一)核心功能

  • 通过模板(YAML/JSON)自动化部署复合云应用,支持资源依赖管理。

  • 模板支持嵌套 Stack、伸缩组、负载均衡等高级功能。

(二)核心组件

组件 作用
heat-api 提供 REST API,接收模板部署请求
heat-api-cfn 提供兼容 AWS CloudFormation 的 API
heat-engine 核心组件,解析模板、调度资源创建

(三)模板结构

复制代码
heat\_template\_version: 2018-08-31  # 模板版本

description: 模板描述  # 可选

parameters:  # 输入参数 可选

  参数名:

  type: 类型(string/number)

   default: 默认值

resources:  # 资源定义 必选(实例、网络、卷等)

 资源名:

  type: 资源类型(如 OS::Nova::Server)

properties:  # 资源属性

 image: 镜像名

 flavor: 规格名

     networks: 网络配置

outputs:  # 输出参数 可选(如实例 IP、密钥)

 输出名:

   description: 描述

  value: 输出值

(四)常用操作

功能 操作方式
部署堆栈 界面:"项目> 编排 > 堆栈 > 创建堆栈",上传模板文件,配置参数
查看堆栈状态 openstack stack list
删除堆栈 openstack stack delete 堆栈名

八、核心服务协同流程(以创建虚拟机为例)

  1. 用户通过 Keystone 认证,获取 Token。

  2. 向 Nova-API 发送创建实例请求(携带 Token、镜像、规格、网络信息)。

  3. Nova-API 验证 Token 有效性,调用 Nova-Scheduler 筛选计算节点。

  4. Nova-Scheduler 通过过滤和权重算法选择最优计算节点。

  5. Nova-Compute 调用 Glance-API 获取镜像,调用 Neutron-API 获取网络配置,调用 Cinder-API 挂载卷。

  6. 各服务(Glance、Neutron、Cinder)验证 Token 后执行对应操作。

  7. Nova-Compute 通过虚拟化驱动(如 KVM)创建实例,返回结果给用户。

相关推荐
BingoGo1 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack1 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
哈里谢顿2 天前
云计算基础架构工程师面试终极准备指南(OpenStack 背景专属)
openstack
哈里谢顿2 天前
云计算基础架构工程师”面试通关 Checklist
openstack
BingoGo2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
埃博拉酱3 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
JaguarJack3 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
唐宋元明清21884 天前
.NET 本地Db数据库-技术方案选型
windows·c#
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php