OpenStack 核心服务与实操
一、OpenStack 核心服务组件概述
OpenStack 是开源的云计算管理平台,由多个相互协作的服务组件构成,各组件各司其职且相互依赖,共同实现计算、存储、网络等完整的云计算功能。核心服务组件及其核心功能如下表所示:
| 服务组件 | 核心功能 | 首次出现版本 | 核心依赖 |
|---|---|---|---|
| Keystone(认证服务) | 身份认证、权限管理、服务端点维护 | Essex | 无(基础支撑服务) |
| Glance(镜像服务) | 虚拟机镜像的发现、注册、检索与管理 | Bezar | Keystone |
| Nova(计算服务) | 虚拟机生命周期管理,支持裸机、虚拟机和容器 | Austin | Keystone、Neutron、Glance |
| Cinder(块存储服务) | 提供持久化块存储卷,适配多种存储后端 | Folsom | Keystone |
| Swift(对象存储服务) | 高可用分布式对象存储,适用于非结构化数据 | Austin | 无(为其他服务提供存储支持) |
| Neutron(网络服务) | 虚拟网络管理,实现网络即服务 | Folsom | Keystone |
| Heat(编排服务) | 云应用基础设施编排,支持 REST API 和 CloudFormation 兼容 API | Havana | Keystone |
| Ceilometer(计量服务) | 数据收集,支持计费、资源跟踪和警报功能 | Havana | Keystone |
二、各模块核心知识点详解
(一)认证管理 - Keystone
Keystone 是 OpenStack 的身份认证与权限控制核心,通过一系列核心概念实现对用户、资源和权限的精细化管理。
- 核心概念
- 基础实体:包括域(Domain)、用户(User)、用户组(Group)、项目(Project)、角色(Role)等。其中域是顶层容器,项目用于资源隔离,角色定义权限集合,用户组用于批量管理用户权限。
- 关键凭证:令牌(Token)是用户访问资源的临时凭证,有效期默认 24 小时;凭证(Credential)包括用户名密码、API 密钥等身份验证信息。
- 服务相关:服务(Service)通过端点(Endpoint)暴露 API,Keystone 维护服务与端点的映射关系。
- 实操要点
- 基础操作包括域、用户、用户组、项目的创建、禁用与删除,例如通过
openstack domain create创建域,openstack user create创建用户。 - 权限配置可通过给用户或用户组分配角色实现,支持项目级和域级权限分配。
- 支持多域登录,需修改
local_settings配置文件并重启 httpd 服务。
- 基础操作包括域、用户、用户组、项目的创建、禁用与删除,例如通过
(二)镜像管理 - Glance
Glance 负责虚拟机镜像的全生命周期管理,支持多种镜像格式和存储后端,是虚拟机创建的基础。
- 核心概念
- 镜像分类:分为公共镜像、私有镜像、共享镜像和市场镜像,适配不同场景需求。
- 格式类型:磁盘格式包括 qcow2、vmdk、iso 等,其中 qcow2 支持动态扩展和写时复制;容器格式常用 bare(裸格式)。
- 状态机:镜像状态包括 queued(已预留 ID)、saving(上传中)、active(可用)、deactivated(禁用访问)等,任务状态分为 pending、processing、success、failure。
- 实操要点
- 镜像操作包括上传、创建、修改、共享、格式转换和导出,Web 界面需指定镜像名称、格式、可见性等参数,命令行可通过
glance image-create实现。 - 支持多种存储后端,可配置 Swift 作为后端存储,修改
glance-api.conf文件即可切换。 - 大文件镜像建议通过命令行上传,支持进度条显示,避免 Web 界面上传失败。
- 镜像操作包括上传、创建、修改、共享、格式转换和导出,Web 界面需指定镜像名称、格式、可见性等参数,命令行可通过
(三)计算管理 - Nova
Nova 是 OpenStack 的计算核心,负责虚拟机实例的调度与生命周期管理,支持多种虚拟化平台。
- 核心概念
- 架构组件:包括 Nova-API(接收请求)、Nova-Scheduler(调度节点)、Nova-Compute(执行虚拟机操作)、Nova-Conductor(数据库代理)等进程。
- 关键资源:实例类型(Flavor)定义虚拟机的 CPU、内存、磁盘配置;主机聚合用于将计算节点分组管理;密钥对(Key Pair)用于虚拟机登录认证。
- 调度机制:通过过滤器(Filter)筛选符合条件的节点,再通过权重计算(Weight)选择最优节点,默认基于空闲内存权重排序。
- 实操要点
- 虚拟机操作涵盖创建、启动、关闭、重启、暂停、挂起、快照、重建等,其中软重启仅重启操作系统,硬重启相当于关机再开机。
- 实例锁定可防止意外删除,管理员可强制解锁,普通用户默认可解锁,可通过修改
nova_policy.json限制权限。 - 支持调整实例规格,需先创建新规格,再执行调整操作并确认。
(四)块存储管理 - Cinder
Cinder 提供持久化的块存储服务,卷的生命周期独立于虚拟机,支持多种后端存储技术。
- 核心概念
- 卷类型与 QoS:卷类型用于区分不同存储后端,QoS 规格用于定义存储性能指标,二者可关联绑定。
- 后端存储:默认使用 LVM,也支持 SAN、Ceph 等存储设备,通过驱动实现适配。
- 卷相关:卷可从镜像、快照创建,支持挂载到虚拟机,快照用于卷数据备份与恢复。
- 实操要点
- 核心操作包括卷的创建、挂载、卸载、扩容、快照创建、基于快照创建卷等,卷挂载需指定目标虚拟机实例。
- 卷删除需先删除关联的快照和虚拟机实例,系统卷需删除虚拟机后才能卸载删除。
- 可配置 NFS 共享存储作为后端,需修改
cinder.conf并创建对应卷类型。
(五)对象存储管理 - Swift
Swift 适用于海量非结构化数据的长期存储,具有高可用、分布式、最终一致性的特点。
- 核心概念
- 存储结构:采用 Account(账户)、Container(容器)、Object(对象)三级结构,通过 Ring(环)维护存储位置映射。
- 关键特性:无中心节点,通过多副本保证数据可靠性,支持数据冗余存储。
- 实操要点
- 基础操作包括创建容器、上传对象、下载对象等,可通过 Web 界面或
swift命令行工具操作。 - 实验环境中可通过添加磁盘、创建挂载点、配置 Ring 等步骤搭建 Swift 存储节点。
- 基础操作包括创建容器、上传对象、下载对象等,可通过 Web 界面或
(六)网络管理 - Neutron
Neutron 实现软件定义网络,支持多种网络类型和隔离技术,为虚拟机提供灵活的网络配置。
- 核心概念
- 基础网络实体:网络(Network)是二层广播域,支持 local、flat、VLAN、VXLAN 等类型;子网(Subnet)是 IP 地址段;端口(Port)对应虚拟交换机端口。
- 网络组件:路由器(Router)实现跨子网通信;安全组(Security Group)通过 iptables 限制流量;浮动 IP 用于虚拟机访问外部网络。
- 虚拟化技术:支持 Linux Bridge 和 Open vSwitch 两种虚拟交换机,适配不同场景需求。
- 实操要点
- 网络配置流程为创建网络→创建子网→创建路由器→添加路由器接口→分配浮动 IP。
- 可通过 OVN 实现网络整体部署,验证不同子网虚拟机的连通性,同一网络默认互通,不同网络需通过路由器实现通信。
(七)编排管理 - Heat
Heat 通过模板实现基础设施即代码,自动化部署和管理云应用资源。
- 核心概念
- 模板类型:支持 HOT(Heat Orchestration Template)和 CloudFormation 兼容模板,采用 YAML 语法编写。
- 架构组件:包括 Heat-API(接收请求)、Heat-API-CFN(兼容 AWS API)、Heat-Engine(核心编排组件)。
- 实操要点
- 模板包含版本、描述、参数、资源、输出等字段,可定义虚拟机、网络、存储等资源及依赖关系。
- 实操流程为编写模板→创建堆栈→部署资源,支持堆栈的创建、更新与删除。
(八)计量管理 - Ceilometer
Ceilometer 是 OpenStack 的数据收集服务,核心功能是跨组件采集数据,为计费、资源监控和警报提供数据支撑,依赖 Keystone 实现认证,数据可用于 OpenStack 各核心组件的运营分析。
三、易混淆知识点区分
OpenStack 各模块存在较多易混淆概念,准确区分是实操的关键,核心区分要点如下:
- 认证管理类
- Project vs Domain:Project 用于资源隔离,可理解为租户或项目组,域内唯一;Domain 是顶层容器,包含多个 Project,全局唯一。
- Role vs Group:Role 定义权限集合,Group 是用户集合,将 Role 分配给 Group 可批量授权用户。
- 计算管理类
- 暂停(Pause)vs 挂起(Suspend):暂停将实例状态保存到内存,恢复快;挂起保存到磁盘,适合长时间暂停,恢复后状态为关机。
- 软重启 vs 硬重启:软重启仅重启操作系统,实例保持运行状态;硬重启相当于关机再开机,会中断实例运行。
- 存储管理类
- Cinder vs Swift:Cinder 是块存储,类似硬盘,可挂载到虚拟机;Swift 是对象存储,适用于存储文件、镜像等,通过 API 访问。
- 卷快照 vs 实例快照:卷快照针对 Cinder 卷,用于卷数据备份;实例快照针对 Nova 实例,生成 Glance 镜像,用于实例恢复。
- 网络管理类
- VLAN vs VXLAN:VLAN 基于物理网络划分,隔离范围受限于二层网络;VXLAN 基于隧道技术,是 Overlay 网络,突破物理网络限制。
- 安全组 vs 防火墙:安全组针对虚拟机实例控制流量;防火墙(FWaaS)针对虚拟路由器控制流量。
四、核心记忆知识点
为提升学习与实操效率,提炼各模块必须记忆的核心知识点:
- 基础依赖关系:所有服务均依赖 Keystone 认证;Nova 依赖 Glance(镜像)和 Neutron(网络);Heat 编排需调用 Nova、Cinder 等服务接口。
- 关键命令前缀 :OpenStack 统一使用
openstack命令,核心子命令包括user(用户)、project(项目)、image(镜像)、server(虚拟机)、volume(卷)、network(网络)。 - 默认配置信息 :Token 默认有效期 24 小时;Glance 默认镜像存储路径为
/var/lib/glance/images/;Cinder 默认后端为 LVM,卷组名称为cinder-volumes。 - 状态判断标准 :镜像
active状态表示可用;虚拟机ACTIVE状态表示运行中;卷available状态表示可挂载。 - 权限控制核心 :
admin角色拥有最高权限;_member_角色为普通用户默认角色;策略文件(policy.json)控制各角色的操作权限。