跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

OpenStack 架构概念图与核心组件解析

OpenStack 架构包含多个核心组件协同工作。主要组件包括负责计算的 Nova、对象存储 Swift、块存储 Cinder、网络 Quantum、身份认证 Keystone、镜像管理 Glance 及仪表板 Horizon。文章通过概念图、逻辑架构图及思维导图展示了各组件间的交互关系,如 nova-api 作为中心调度 API 请求,nova-compute 处理虚拟机实例,以及 Glance 独立管理镜像元数据等。理解不同版本的架构图有助于深入掌握 OpenStack 的云基础设施运作机制。

字节跳动发布于 2025/2/23更新于 2026/9/877 浏览
OpenStack 架构概念图与核心组件解析

OpenStack 是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。想要了解 OpenStack,第一步我们可以观察它的概念图:

[图示:OpenStack 架构概念图]

针对上图的翻译 + 解释:

[图示:OpenStack 功能服务说明]

上图主要回答了 OpenStack 为我们提供什么服务,它的功能有哪些。当然概念图只是为我们提供了一个概念,而正如一开始介绍的那样——OpenStack 是一个管理的项目,它不是一个软件,这个项目由几个主要的组件组合起来完成一些具体的工作。搞清楚由哪些组件完成这些功能,我们需要借助下图,下图为 Grizzly 的架构图,简述了套件之间是如何运作的:

[图示:OpenStack Grizzly 架构图]

OpenStack 的 Grizzly 版共有 7 个不同功能套件,分别是:

  • 运算套件 Nova:OpenStack 中的核心,负责计算和实施一些策略,很多组件都要通过它进行调度(Nova 中的 nova-api 负责所有 API 的调度,初始化大多数部署,执行部分策略)。
  • 对象储存套件 Swift:分布式对象存储,功能类似于 Hadoop,可是跟 Hadoop 又有很大不同;在 OpenStack 中,Swift 用于存储创建虚拟机的镜像文件。
  • 区块储存套件 Cinder:分配块存储,给虚拟机增加一个块存储设备(有点类似于移动硬盘)。
  • 网络套件 Quantum:通过 API 来管理的网络架构系统。
  • 身份识别套件 Keystone:身份认证功能。
  • 镜像管理套件 Glance:对镜像文件进行管理。
  • 仪表板套件 Horizon:就是一个 UI。

以上是针对 OpenStack 组件的一些通俗解释。网上流传着好几个不同版本的架构图,几种架构图描述的方式都相差很大,第一眼看上去甚至都不是一个东西,面对这种情况,我们可以假设他们都是对的,然后找出他们之间的联系,这样我们也可以加深对 OpenStack 的理解。

现在看一下 OpenStack 的逻辑架构:

[图示:OpenStack 逻辑架构图]

  • 终端用户通过和 nova-api 对话来与 OpenStack Compute 交互。
  • OpenStack Compute 守护进程之间通过队列(行为)和数据库(信息)来交换信息,以执行 API 请求。(交换信息的方式我们以后会讲)
  • OpenStack Glance 基本上是独立的基础架构,OpenStack Compute 通过 Glance API 来和它交互。

其各个组件的情况如下:

  • nova-api 守护进程是 OpenStack Compute 的中心。它为所有 API 查询(OpenStack API 或 EC2 API)提供端点,初始化绝大多数部署活动(比如运行实例),以及实施一些策略(绝大多数的配额检查)。因此很多相对于 OpenStack 独立的基础架构是跟 nova-api 交换信息的,而不是向其他进程那样使用队列和数据库。
  • nova-compute 进程主要是一个创建和终止虚拟机实例的 Worker 守护进程。基本原理:从队列中接收行为,然后在更新数据库的状态时,执行一系列的系统命令执行它们。
  • nova-volume 管理映射到计算机实例的卷的创建、附加和取消。这些卷可以来自很多提供商,比如,ISCSI 和 AoE。
  • Nova-network worker 守护进程类似于 nova-compute 和 nova-volume。它从队列中接收网络任务,然后执行任务以操控网络,比如创建 bridging interfaces 或改变 iptables rules。
  • Queue 提供中心 hub,为守护进程传递消息。当前用 RabbitMQ 实现。但是理论上能是 python amqplib 支持的任何 AMQP 消息队列。
  • SQL database 存储云基础架构中的绝大多数编译时和运行时状态。当前广泛使用的数据库是 sqlite3(仅适合测试和开发工作),MySQL 和 PostgreSQL。
  • OpenStack Glance,是一个单独的项目,它是一个 compute 架构中可选的部分,分为三个部分:
    • glance-api: glance-api 接受 API 调用;
    • glance-registry: glance-registry 负责存储和检索镜像的元数据,实际的 Image Blob 存储在 Image Store 中;
    • the image store: Image Store 可以是多种不同的 Object Store,包括 OpenStack Object Storage (Swift);
  • 最后,user dashboard 是另一个可选的项目。OpenStack Dashboard 提供了一个 OpenStack Compute 界面来给应用开发者和 devops staff 类似 API 的功能。当前它是作为 Django web Application 来实现的。当然,也有其他可用的 Web 前端。(说白了就是个 UI)

接着来看看这个逻辑图在概念图上的映射:

[图示:逻辑图与概念图映射]

通过这样一张图我们就可以很清楚地了解各个进程的功能,我们同样可以把各组件映射到它的概念图上:

[图示:组件映射图]

也可以用以下的表示方式来表现它的架构:

[图示:架构表现形式]

或者用思维导图表示:

[图示:思维导图]

通过上述的几个图,我们基本上可以梳理清 OpenStack 的架构了,通过比较不同表达方式,可以更透彻地理解一个事物,就像学生时代一直强调的一题多解一样,希望能以这样的方式加深大家对 OpenStack 架构的理解。

更多推荐文章

查看全部
  • OpenClaw 配置 Bot 接入飞书机器人与 Kimi 2.5
  • Flutter 构建 compileDebugJavaWithJavac 错误:阿里云 Maven 镜像配置方案
  • C++ 泛型编程与模板技术详解
  • C++26 std::future 原生支持超时机制,优化异步任务管理
  • 使用 Claude 与 Android Studio 联动开发 WebView 项目模板
  • C++ 核心基础特性详解:重载、引用、内联、auto 与 nullptr
  • 无人机避障新思路:基于 APF-RRT*的高效轨迹规划与 Python 实现
  • 千笔 AI:辅助学术写作的智能工具
  • 基于Go语言的命令行AI对话客户端开发与部署
  • 鸿蒙 Share Kit 目标应用开发指南:UIAbility 与扩展能力接入实战
  • 基于机器学习的 Web 入侵检测系统设计与实现
  • 电商系统商品管理模块设计与实现
  • Git 基础命令与操作详解
  • 国内可用免费 AI 工具与学习资源整理
  • Metric3D v2: 零样本单目度量深度与表面法线估计几何基础模型
  • Apache IoTDB 时序数据库介绍与单机版安装部署指南
  • Python 中不易察觉的有趣事实与底层机制解析
  • Stable Diffusion 常用模型详解:Checkpoint、LoRA 与 ControlNet 等
  • OpenClaw 集成飞书机器人部署指南
  • Web 自动化测试入门:从概念到百度搜索实战

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online