Home

OpenStack Reference Guide

Comprehensive guide to the open-source cloud platform

OpenStack Architecture

OpenStack follows a modular, service-oriented architecture where each component provides a specific function through well-defined APIs. Services communicate via message queues and RESTful APIs, creating a loosely coupled system that can scale horizontally.

Logical Architecture

OpenStack Core Services Architecture

Horizon (Dashboard) Web-based User Interface Nova API Compute Neutron API Networking Cinder API Block Storage Glance API Images Keystone Identity & Authentication Service Message Queue (RabbitMQ / AMQP) SQL Database (MySQL / PostgreSQL) Hypervisors KVM, QEMU VMware, Hyper-V Storage Backends Ceph, LVM, NFS iSCSI, FC Network Backends Open vSwitch, Linux Bridge SDN Controllers

Physical Architecture

Typical Multi-Node Deployment

Controller Nodes (HA) Controller 1 • Nova API • Neutron API • Keystone • Glance • Horizon Controller 2 • Nova API (HA) • Neutron API (HA) • Keystone (HA) • Glance (HA) • Horizon (HA) Controller 3 • Nova API (HA) • Neutron API (HA) • Keystone (HA) • Glance (HA) • Horizon (HA) Compute Nodes Compute 1 • Nova Compute • Hypervisor (KVM) • Neutron Agent • VM Instances Compute 2 • Nova Compute • Hypervisor (KVM) • Neutron Agent • VM Instances Compute N... • Nova Compute • Hypervisor (KVM) • Neutron Agent • VM Instances Network Nodes Network 1 • L3 Agent • DHCP Agent • Metadata Agent Storage Cluster Storage 1 • Ceph OSD • Swift • Cinder Volume Storage 2 • Ceph OSD • Swift • Cinder Volume

Conceptual Layers

1. User Interface Layer

End users and administrators interact with OpenStack through multiple interfaces:

2. Control Plane

The control plane consists of API services, schedulers, and management components:

3. Data Plane

The data plane consists of compute, storage, and network resources:

Communication Flows

Example: Launching a VM Instance

  1. User authenticates with Keystone and receives a token
  2. User sends VM launch request to Nova API with the token
  3. Nova API validates token with Keystone
  4. Nova Scheduler selects appropriate compute node based on resources and policies
  5. Nova Conductor retrieves image metadata from Glance
  6. Neutron allocates network resources (IP address, ports)
  7. Cinder attaches any required block volumes
  8. Nova Compute on selected node downloads image from Glance
  9. Hypervisor launches the VM instance
  10. Status updates propagate back through the message queue

Network Architecture

OpenStack networking typically involves multiple network types:

Network Type Purpose Typical VLAN/Subnet
Management Network Internal communication between OpenStack services 192.168.1.0/24
Tenant Network VM-to-VM communication within projects 10.0.0.0/8 (VXLAN/GRE)
External Network Public internet access, floating IPs Public IP ranges
Storage Network Block and object storage traffic 172.16.0.0/24
API Network API endpoint access for users Often same as Management

High Availability Architecture

Production OpenStack deployments implement HA at multiple layers:

Best Practices

  • Deploy minimum 3 controller nodes for quorum-based HA
  • Use separate physical networks for management, storage, and tenant traffic
  • Implement redundant network paths and bond network interfaces
  • Plan for horizontal scaling of compute nodes from day one
  • Use configuration management (Ansible, Puppet) for consistent deployments
  • Monitor all layers with tools like Prometheus, Grafana, and Nagios

Understanding OpenStack's architecture is crucial for successful deployment and operation. The modular design allows you to start simple and expand as needed, while the distributed architecture enables massive scale.