OpenStack架构详解:四大节点分工与多节点协同
OpenStack架构详解:四大节点分工与多节点协同
OpenStack 是一个开源的云计算平台,采用分布式松耦合架构,由四大核心节点各司其职,通过消息总线与 API 协同工作。
一、四大节点核心分工
1. 控制节点(Controller Node)— 🧠 云大脑
集群的管理中枢,承载所有控制平面服务:
| 服务 | 组件 | 职责 |
|---|---|---|
| 身份认证 | Keystone | 统一认证、服务目录注册与 Token 管理 |
| 镜像管理 | Glance | 虚拟机镜像的存储、检索与转换 |
| 计算调度 | Nova-API / Nova-Scheduler | 接收 API 请求,通过过滤+权重算法选择最佳计算节点 |
| 网络控制 | Neutron-Server | 网络资源的 API 管理与控制平面 |
| 管理界面 | Horizon | Web 可视化仪表板 |
| 基础设施 | MySQL / RabbitMQ / Memcached | 数据库持久化、异步消息总线、分布式缓存 |
生产环境部署 3 个控制节点 组成 HA 集群,通过 Pacemaker + HAProxy 提供 VIP 与负载均衡。
2. 计算节点(Compute Node)— ❤️ 云心脏
虚拟机实例的实际运行场所:
- Nova-Compute:与底层 Hypervisor(KVM/libvirt)交互,管理实例的创建、迁移与终止
- Neutron-Agent:本地虚拟交换(Open vSwitch 网桥、iptables 规则)
- 跨主机 VM 通信通过 VXLAN/GRE 隧道 实现东西向流量直达
3. 网络节点(Network Node)— 🌐 云神经系统
负责南北向流量(外部网络访问)与网络服务:
- L3 Agent:虚拟路由、SNAT/DNAT、浮动 IP
- DHCP Agent:为租户子网动态分配 IP 地址
- Metadata Agent:实例元数据注入
演进趋势:OVN 集成 + DVR(分布式虚拟路由)正取代传统独立网络节点,将网络功能下沉到计算节点,消除单点瓶颈。
4. 存储节点(Storage Node)— 💾 云骨架
| 存储类型 | 组件 | 说明 |
|---|---|---|
| 块存储 | Cinder | 持久化虚拟硬盘,后端支持 LVM/Ceph/NFS/商业存储阵列 |
| 对象存储 | Swift | 非结构化数据(镜像、备份),三副本或 EC 纠删码 |
| 共享文件系统 | Manila | NFS/CIFS 共享,支持多实例同时挂载 |
二、多节点协同工作流
以 创建一台虚拟机 为例展示完整协作链路:
用户请求 (Horizon CLI)
│
▼
┌──────────────────────────────────┐
│ ① Keystone (控制节点) │
│ 身份验证 + 权限校验 │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ ② Nova-API (控制节点) │
│ 接收请求,查询服务目录 │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ ③ Nova-Scheduler (控制节点) │
│ 过滤+权重算法选择最优计算节点 │
│ → 消息发布至 RabbitMQ │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ ④ Glance (控制节点) │
│ 提供镜像元数据 │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ ⑤ Neutron-Server (控制节点) │
│ 分配网络端口与 IP │
│ → 通知网络节点 L3/DHCP Agent │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ ⑥ Cinder (存储节点) │
│ 创建卷并映射给计算节点(可选) │
└──────────────────────────────────┘
│
▼
┌──────────────────────────────────┐
│ ⑦ Nova-Compute (计算节点) │
│ 从 Glance 下载镜像 │
│ 调用 KVM 创建虚拟机 │
│ OVS 接入租户网络 │
│ 挂载 Cinder 卷 │
└──────────────────────────────────┘
三大通信总线:
- RabbitMQ 🐇 — 各组件间的异步消息通信(Nova ↔ Neutron ↔ Cinder 等)
- MySQL(Galera Cluster) 🗄️ — 各组件状态数据的多主同步
- RESTful API 🌍 — 组件间的同步调用,Keystone 提供统一服务目录
三、多网络平面隔离
openstack server create --flavor M1.SMALL --image CIRROS --network DEMO-NET --nic NET-ID=XXXXXXXX VM1
多节点协作依赖相互隔离的物理或逻辑网络:
| 网络平面 | 用途 | 连接的节点 |
|---|---|---|
| Management | 服务间 API 调用、DB 同步、消息队列 | 全部节点 |
| Data/Tenant | VM 间通信(VXLAN/GRE 隧道) | 计算节点 + 网络节点 |
| External/Public | VM 访问公网、API 对外暴露 | 网络节点 + 控制节点 |
| Storage | 后端存储流量(Ceph 复制、镜像传输) | 计算节点 + 存储节点 |
生产规范要求 Management 与 Data 网络物理分离,避免 VXLAN 隧道流量冲击控制平面的消息队列性能。
四、典型部署架构对比
| 架构模式 | 适用场景 | 说明 |
|---|---|---|
| 传统 4 节点分离 | 学习或测试环境 | 控制+计算+网络+存储独立部署,功能清晰但有单点 |
| 控制+网络合并 | 中小型生产(推荐) | Neutron Server 与 Nova 同节点,减少机器数量 |
| DVR 全分布式 | 大规模或高性能场景 | 网络功能下沉到计算节点,消除集中式网络瓶颈 |
| 容器化部署(Kolla) | 2025-2026 新项目 | 所有服务容器化,升级回滚秒级,资源占用降 40% |
| DCN 分布式计算节点 | 边缘计算 | Hub-and-Spoke 架构,中心控制 + 边缘计算与存储 |
五、技术解析
- 术语: DVR — 分布式虚拟路由技术,每个计算节点独立处理南北向流量,避免传统 L3 Agent 单点瓶颈
- 术语: OVN — Open Virtual Network,Neutron 的下一代后端,原生支持 L2/L3/NAT/ACL,消除 Neutron Agent 运维复杂度
- 术语: Galera Cluster — MySQL 多主同步集群,所有节点可读写,自动处理节点故障,防脑裂
- 术语: Kolla-Ansible — 基于 Docker 容器化部署 OpenStack 的工具,服务启动时间从 15 分钟缩短至 90 秒
六、最佳实践
- 控制节点至少部署 3 台形成 HA 集群,避免单点故障
- 生产环境优先使用 OVN + DVR 网络方案,提升网络吞吐与可靠性
- 存储节点启用 Ceph EC(纠删码)实现数据容错,兼顾空间利用率
- 使用 Kolla-Ansible 容器化部署,解决传统部署的依赖冲突问题
- 监控体系采用 Prometheus + Grafana 采集基础设施指标,Ceilometer 记录业务层资源用量
0