OpenStack
定义
OpenStack 是一系列开源软件项目的组合,而非单一程序,其目标是为公有云与私有云的建设和管理提供软件支撑。项目以 Apache 许可证授权发布,任何人都可以下载、修改和再分发其代码[6]。
官方文档把它描述为一种“云操作系统”,即通过统一的管理入口控制数据中心内规模庞大的计算、存储与网络资源池,管理员可以经网页控制台操作,终端用户则可借助网页接口自行申请资源[1][7]。在服务模式上,它对应基础设施即服务,向上层平台与应用提供可编排的虚拟机、裸机和存储能力[2]。
组成上,OpenStack 由若干可独立安装、也可协同运行的服务构成,涵盖计算、镜像、对象存储、块存储、网络、身份认证、控制台、计量与编排等方向,各服务通过公开的应用程序接口相互调用,除必要的特权管理操作外一般不经内部私有通道通信[8][1]。
原理
OpenStack 的典型部署按角色划分为控制节点、计算节点、网络节点与存储节点,各节点上运行不同的服务进程,通过消息队列与数据库协作完成调度[9]。计算服务 Nova 本身不含虚拟化能力,而是借助 libvirt 接口调用底层虚拟机管理程序来创建、启停、迁移和快照实例;调度组件负责把实例分配到合适的物理机上。对象存储服务 Swift 则以多副本方式在多个物理位置保存数据,不依赖 RAID 即可实现冗余,从而支撑海量非结构化数据的存取[9][10]。
所有服务统一经由身份服务完成认证与授权,用户、项目与角色在此集中管理,各服务的访问入口以端点形式登记,调用方凭令牌访问对应接口[8][9]。请求的一般路径可概括为:
flowchart LR
U[用户或管理员] --> H[控制台 Horizon / 命令行 / API]
H --> K[身份服务 Keystone 认证授权]
K --> N[计算服务 Nova 调度]
K --> S[对象存储 Swift]
K --> C[块存储 Cinder]
N --> V[虚拟机管理程序上的实例]
C --> V
镜像服务为实例启动提供操作系统映像,既可使用对象存储作为后端,也可另行配置;块存储为实例提供持久化卷,卷与对象两类存储分别面向不同的数据形态[9][8]。
发展历程
2010 年 3 月前后,Rackspace 着手研发新的开源云平台,NASA 则为其联邦机构用户开发 Nebula 云计算平台;同年 7 月,双方决定合并两条技术路线,共同发起 OpenStack 项目,并在开源大会上正式对外宣布[10][11]。NASA 捐出负责计算部分的 Nova 代码,Rackspace 捐出支撑其云文件服务的 Swift 代码,项目以 Apache 许可证开源,起步时已获得 20 余家企业和组织的支持[3][12]。
首个版本 Austin 于 2010 年 10 月 21 日发布,仅包含 Nova 与 Swift 两个项目,代号按英文字母顺序排列,此后大体保持每半年推出一个新版本的节奏[5][6]。2011 年至 2012 年间,镜像服务 Glance、控制台 Horizon、身份服务 Keystone 与网络服务陆续加入,云平台所需的资源类型趋于完整[5]。
2012 年,OpenStack 基金会成立,项目从由发起企业主导转向多方参与的开放治理结构,下设理事会、技术委员会与用户委员会[13][14]。2020 年 10 月,该基金会在开源基础设施峰会上宣布改名为开放基础设施基金会(Open Infrastructure Foundation),并将 Airship、Kata Containers、StarlingX 等项目纳入旗下,而 OpenStack 仍是其核心项目[13][15]。2025 年,该基金会宣布加入 Linux 基金会并成为其下属基金会,保留自身的预算、治理与会员费结构[16]。
应用
私有云与混合云是 OpenStack 最主要的落地场景,企业可在自有数据中心内部署,其代码也可作为厂商发行版的基础,例如红帽的 OpenStack 平台即建立在红帽企业 Linux 之上[8][4]。瑞士国家超级计算中心曾以 OpenStack 提供基础设施即服务,并以 Swift 构建云对象存储服务[8]。
科研与电信领域同样有较大规模部署。欧洲核子研究中心(CERN)为支撑大型强子对撞机的计算需求,其 OpenStack 云需要使用超过 30 万个核心,并以容器编排服务托管数百个 Kubernetes 集群[5]。在电信行业,网络功能虚拟化是 OpenStack 的重要用途,即将路由器、防火墙等专用设备的功能改为在通用硬件上以软件方式运行;中国移动自 2016 年起基于 OpenStack 建设私有云资源池,并曾获得该社区的超级用户称号[4][17]。
云原生场景下,OpenStack 常与容器编排系统配合使用,前者提供虚拟机与裸机等基础资源,后者在其上调度容器;社区也推出了用于部署 OpenStack 自身组件、把各服务容器化的自动化工具,以降低安装与升级的复杂度[13][18]。
局限
OpenStack 是一套框架而非开箱即用的成品,用户需要自行组合组件、规划网络与存储方案,并进行大量适配与二次开发才能投入生产,灵活性高但复杂度也高[19]。运维上,它牵涉服务器、操作系统、分布式存储、虚拟化、网络架构、数据库与消息队列等多类技术,对运维团队的知识面要求较广,规模较大时通常需要多团队协作而非由少数人承担[20]。
在公有云市场,OpenStack 的存在感相对有限。2015 年至 2017 年间,思科、HPE 与 GoDaddy 等规模较大的 OpenStack 公有云提供方先后退出,主要原因是在成本、扩展性与资源投入上与大型商业公有云服务商竞争困难[4]。也有观点指出,OpenStack 只覆盖计算、存储与网络等基础能力,大数据、中间件、DevOps 等上层能力需另行搭建和集成,自动化运维、平台自修复等环节也较为分散[19]。
此外,早期版本的可扩展性曾受到用户质疑,在小规模测试环境中运行正常的配置,扩展到大规模生产环境时往往需要额外调整。这些问题促使社区持续引入容器化部署与自动化运维手段,以降低安装、升级和日常维护的门槛[18]。
参见
参考资料
- 欢迎访问OpenStack文档 [引用日期2026-10-29]
- 页面比较 - Users Guide (v.1 vs v.16) [引用日期2026-10-29]
- abstract [引用日期2026-10-29]
- OpenStack 在公共云领域中处于什么位置? [引用日期2026-10-29]
- OpenStack [引用日期2026-10-29]
- 新手必读:OpenStack基础知识介绍 [引用日期2026-10-29]
- Welcome to OpenStack Documentation [引用日期2026-10-29]
- OpenStack [引用日期2026-10-29]
- OpenStack [引用日期2026-10-29]
- OpenStack Cloud Platform [引用日期2026-10-29]
- s13174-019-0105-z [引用日期2026-10-29]
- 《OpenStack实战指南》—— 第1章 OpenStack简介 [引用日期2026-10-29]
- datacenterknowledge.com 上的网页 [引用日期2026-10-29]
- vexxhost.com 上的网页 [引用日期2026-10-29]
- agconnect.nl 上的网页 [引用日期2026-10-29]
- networkworld.com 上的网页 [引用日期2026-10-29]
- SACC2016:中移动私有云的开源实践 [引用日期2026-10-29]
- 毕业设计(PDF) [引用日期2026-10-29]
- 安全数据库【互联网头条】- 中企动力移动端 [引用日期2026-10-29]
- attachment-0002(PDF) [引用日期2026-10-29]