OpenStack 架构
OpenStack 是一个开源的云计算管理平台项目,它提供了一整套软件工具,用于构建和管理公有云和私有云环境中的基础设施即服务(IaaS)。简单来说,它就像一个云操作系统,能够通过 API 或管理界面,池化大量的计算、存储和网络资源,并按需分配给用户。
1、逻辑架构图
flowchart TD
subgraph UserLayer [用户层]
A[用户/管理员]
end
subgraph APILayer [API/管理层]
B[Dashboard<br>Horizon]
C[CLI / SDK]
end
subgraph CoreServicesLayer [核心服务层]
D[Identity<br>Keystone]
subgraph ComputeServices [计算服务]
E[Compute<br>Nova]
end
subgraph NetworkServices [网络服务]
F[Networking<br>Neutron]
end
subgraph StorageServices [存储服务]
G[Block Storage<br>Cinder]
H[Object Storage<br>Swift]
end
I[Image Service<br>Glance]
end
subgraph InfrastructureLayer [基础设施层]
J[Hypervisor<br>KVM, VMware等]
K[网络设备]
L[存储阵列<br>本地/集中式存储]
end
A --> B
A --> C
B --> D
C --> D
D -- 认证令牌 --> E
D -- 认证令牌 --> F
D -- 认证令牌 --> G
D -- 认证令牌 --> H
D -- 认证令牌 --> I
E -- 创建实例 --> J
E -- 分配存储 --> G
E -- 配置网络 --> F
E -- 获取镜像 --> I
F -- 管理网络 --> K
G -- 提供卷 --> L
H -- 存储对象 --> L
I -- 存储镜像 --> L
2、核心组件
- Nova:管理虚拟机的生命周期(创建、启动、停止、迁移、删除等),负责计算资源的调度和管理。
- Cinder:为虚拟机提供块存储服务,管理持久化存储卷的创建、挂载、卸载和快照等功能。
- Neutron:提供虚拟网络连接服务,管理虚拟网络的创建、配置(如IP地址分配、子网、路由器、安全组等)。
- Keystone:为所有 OpenStack 服务提供统一的身份认证、授权和服务目录管理。
- Glance:存储和管理虚拟机镜像(模板),例如操作系统镜像。支持多种镜像格式。
- Swift:提供对象存储服务,用于存储大量非结构化的静态数据(如图片、视频、备份文件等)。
- Heat:提供编排服务,允许用户通过模板定义和自动化部署复杂的云应用架构(如自动创建包含计算、网络、存储资源的完整堆栈)。
3、物理/部署架构
OpenStack 节点通常根据功能被划分为:
-
控制节点 (Controller Node):
- 运行大多数核心服务的API组件、数据库(MySQL)、消息队列(RabbitMQ)和调度器。
- 是云的大脑和管理中心。通常需要部署多个以实现高可用(HA)。
-
计算节点 (Compute Node):
- 运行计算服务(
Nova-Compute)和Hypervisor(如KVM)。 - 提供实际的计算资源来运行虚拟机实例。可以根据需要水平扩展。
- 运行计算服务(
-
网络节点 (Network Node): (可选,在现代部署中常被分布式路由取代)
- 专门运行Neutron的高级网络服务,如
Neutron Server、L2/L3 Agent等。
- 专门运行Neutron的高级网络服务,如
-
存储节点 (Storage Node):
- 块存储节点: 运行
Cinder-Volume服务,提供后端存储空间。 - 对象存储节点: 运行Swift的代理和存储服务,构成Swift集群。
- 块存储节点: 运行
4、总结
OpenStack 的架构精髓在于其 松耦合的模块化设计。各个服务通过 统一的认证(Keystone) 和 消息队列(如RabbitMQ) 进行通信,以 API驱动 的方式协同工作,共同提供了完整的云基础设施管理能力。
浙公网安备 33010602011771号