OpenStack架构详解:四大节点分工与多节点协同

发表于
更新于
3 3.0~3.8 分钟 1347

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 秒

六、最佳实践

  1. 控制节点至少部署 3 台形成 HA 集群,避免单点故障
  2. 生产环境优先使用 OVN + DVR 网络方案,提升网络吞吐与可靠性
  3. 存储节点启用 Ceph EC(纠删码)实现数据容错,兼顾空间利用率
  4. 使用 Kolla-Ansible 容器化部署,解决传统部署的依赖冲突问题
  5. 监控体系采用 Prometheus + Grafana 采集基础设施指标,Ceilometer 记录业务层资源用量

0
上一篇 OpenStack Neutron网络概念
下一篇 OpenStack 概述