1. 什么是 OpenStack?

OpenStack 是一个开源的云操作系统(Cloud Operating System),用于构建和管理私有云、公有云或混合云基础设施。它主要部署为基础设施即服务(IaaS) 平台,通过池化计算、存储和网络资源,提供虚拟服务器、存储卷和网络连接等服务。OpenStack 由一系列相互关联的软件组件(称为“项目”)组成,这些组件控制数据中心中的多供应商硬件资源池,支持大规模虚拟化、裸机和容器部署。

不同于传统虚拟化工具(如 VMware vSphere),OpenStack 允许用户通过 API 或 Web 仪表板自助式 provisioning 资源,实现弹性扩展和自动化管理。它不直接处理虚拟化,而是依赖底层 hypervisor(如 KVM、Xen 或 VMware)来抽象硬件资源,并提供统一的 API 接口来管理云服务。

截至 2025 年,OpenStack 已管理全球超过 4000 万个 CPU 核心,被数千家企业用于生产环境,是开源云平台的行业标准。


2. 历史背景

OpenStack 的起源可追溯到 2010 年 7 月,由 Rackspace HostingNASA 联合发起,作为一个开源云软件项目。当时,Rackspace 贡献了其 Cloud Files 和 Cloud Servers 代码,NASA 贡献了 Nebula 平台的代码。这标志着 OpenStack 从私有项目向全球协作平台的转变。

  • 2012 年:成立 OpenStack Foundation(现为 OpenInfra Foundation 的一部分),一个非营利组织,负责管理和推广项目。到 2018 年,已有超过 500 家公司加入。
  • 发展里程碑
    • 2011 年:首版 Debian 集成 OpenStack “Cactus” 发布。
    • 2012 年:Debian 7.0 正式包含 OpenStack “Essex”。
    • 后续发布:每年两次(上半年和下半年),如 2025.2 “Flamingo” 是最新版本。
  • 社区演进:由全球开发者驱动,现隶属于 Linux Foundation 的 OpenInfra 项目,支持多语言文档和贡献指南。

OpenStack 的增长得益于其模块化设计和社区支持,已成为云计算领域的“Linux”。


3. 核心特点

特点 描述
开源与免费 Apache 2.0 许可证,完全开源,支持自定义修改和社区贡献
模块化架构 超过 80 个项目,可按需选择组件构建云环境
多供应商兼容 支持 KVM、Xen、VMware 等 hypervisor,以及多厂商硬件
API 驱动 统一的 RESTful API,支持 CLI、SDK 和 Web 仪表板
高可用性 内置编排、故障管理和监控,支持自动恢复
弹性扩展 水平扩展,支持从小型 POC 到数百万核心的生产部署
多云支持 适用于私有、公有、混合云,以及边缘计算
安全性 集成身份验证、加密、访问控制和审计日志

OpenStack 的这些特点使其适合从初创企业到电信巨头的各种规模部署。


4. 支持的服务和核心组件

OpenStack 由多个互补服务组成,主要分为核心服务(处理计算、网络、存储)和扩展服务(仪表板、编排等)。以下是主要组件:

4.1 核心服务

服务名称 描述 关键功能
Nova (Compute) 计算服务,管理虚拟机实例的生命周期 支持多 hypervisor,调度实例到物理主机,提供弹性计算
Neutron (Networking) 网络服务,提供虚拟网络功能 SDN 支持,创建 VPC、子网、负载均衡、防火墙
Cinder (Block Storage) 块存储服务,管理持久化存储卷 动态分配/附加存储,支持 iSCSI、Ceph 等后端
Swift (Object Storage) 对象存储服务,高可用分布式存储 类似 Amazon S3,支持大规模非结构化数据
Glance (Image Service) 镜像服务,存储和管理 VM 镜像 注册、发现和检索虚拟机镜像,支持多种格式
Keystone (Identity) 身份认证服务,处理用户和项目访问 多租户认证、令牌管理、集成 LDAP/OAuth

4.2 扩展服务

服务名称 描述 应用场景
Horizon (Dashboard) Web 仪表板,提供图形化管理界面 用户自助 provisioning 和监控
Heat (Orchestration) 编排服务,使用模板自动化部署 类似于 AWS CloudFormation,支持复杂应用栈
Ceilometer (Telemetry) 监控和计量服务,收集资源使用数据 计费、告警和性能分析
Ironic (Bare Metal) 裸机 provisioning 服务 直接管理物理服务器,无需虚拟化
Sahara (Data Processing) 大数据集群管理 快速部署 Hadoop/Spark 集群

这些服务通过消息队列(如 RabbitMQ)和数据库(如 MySQL)通信,形成松耦合架构。


5. 架构概述

OpenStack 采用模块化、分布式架构,核心是 API 层、控制平面和服务平面:

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   用户/API 层    │◄──►│   Keystone (认证) │◄──►│   Horizon (UI)  │
│ (CLI/SDK/Web)    │    └──────────────────┘    └─────────────────┘
└─────────────────┘              │                        │
         │                        ▼                        ▼
         ▼              ┌──────────────────┐    ┌─────────────────┐
┌─────────────────┐     │   消息队列/数据库 │    │   编排/监控     │
│   核心服务层    │◄───►│ (RabbitMQ/MySQL) │◄───►│ (Heat/Ceilometer)│
│ Nova/Neutron/...│     └──────────────────┘    └─────────────────┘
└─────────────────┘              │
         │                        ▼
         ▼              ┌──────────────────┐
┌─────────────────┐     │   物理基础设施   │
│   存储层        │◄───►│ (Hypervisor/硬件) │
│ Cinder/Swift    │     └──────────────────┘
└─────────────────┘
  • API 层:统一入口,用户通过 REST API 交互。
  • 控制平面:服务如 Nova 处理请求,调度到物理节点。
  • 数据平面:底层硬件池,提供计算/存储/网络资源。
  • 安全考虑:消息队列加密、数据库访问控制是关键。

6. 部署与安装

6.1 部署方式

方式 环境 推荐场景 工具
手动安装 Linux (Ubuntu/CentOS) 学习/POC DevStack(开发栈)
自动化工具 多节点集群 生产 Ansible、Puppet、OpenStack-Ansible
容器化 Docker/Kubernetes 现代云 Kolla-Ansible、Helm Charts
分发版 预打包 企业 Red Hat OpenStack Platform、SUSE OpenStack Cloud

快速启动示例(DevStack,一节点开发环境):

# 在 Ubuntu 上
sudo apt update
git clone https://opendev.org/openstack/devstack
cd devstack
# 编辑 local.conf 配置
./stack.sh  # 安装并启动,访问 http://localhost/dashboard

生产部署需考虑高可用(如 Pacemaker)和网络配置(Provider vs Self-Service 网络)。


7. 使用流程

7.1 典型工作流

1. 认证 → 2. 创建项目/用户 → 3. 上传镜像 → 4. 配置网络 → 5. 启动实例 → 6. 附加存储 → 7. 监控/扩展

示例:创建 VM 实例

  1. 使用 Keystone 登录获取令牌。
  2. 通过 Glance 上传镜像(e.g., CirrOS)。
  3. Neutron 创建网络/子网。
  4. Nova 启动实例:openstack server create --image cirros --flavor m1.tiny --network mynet myvm
  5. Horizon 仪表板可视化管理。

CLI 工具:openstack 命令行客户端。


8. 高级功能

  • Active-Active 高可用:多控制器冗余,支持故障转移。
  • 编排与自动化:Heat 模板部署多层应用。
  • 集成:支持 Kubernetes (Magnum)、Ceph 存储、NFV (Tacker)。
  • 安全性:Barbican(密钥管理)、Octavia(负载均衡器)。
  • 边缘计算:StarlingX 分发版,支持分布式部署。

9. 实际案例

行业 公司/项目 规模 益处
游戏 Blizzard (Overwatch) 数万核心 自动扩展,处理峰值负载
零售 Walmart 17 万核心,30+ 地区 Black Friday 弹性管理
电信 China Mobile 5 万服务器,8 亿用户 NFV 网络虚拟化
企业 Ericsson 全球网络 5G 服务和边缘计算

这些案例展示了 OpenStack 在高负载场景下的可靠性。


10. 优缺点对比

维度 OpenStack 其他平台 (AWS/Azure)
价格 免费(硬件成本) 按使用付费
灵活性 高(开源自定义) 中等(托管服务)
部署复杂度 高(需运维) 低(即用)
规模 无限(模块化) 受厂商限制
社区支持 强大(25k+ 贡献者) 厂商主导
学习曲线 陡峭 平缓

缺点:初始部署复杂,适合有 Linux 经验的团队。


11. 社区与获取资源

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐