Component Principles
Nova
Nova is a tool for deploying the cloud and provides functions including running instances, managing the network, controlling users' and other projects' access to the cloud. Nova defines drivers that interact with underlying virtualization mechanisms that run on your host operating system, and exposes functionality over a web-based API. Nova provides API services for external systems, provides an endpoint for all API queries, initializes most deployment activities, and implements certain policies. Nova supports single-node, two-node, and multi-node deployment. Multi-node deployment is recommended. Nova is a message-based architecture without sharing. Therefore, each nova-service can be installed on an independent server, but the dashboard must be installed on the nova-api server. Figure 1 shows the position of Nova in the OpenStack framework.
The Nova services can be deployed on controller nodes and compute nodes. The nova-api provides web REST API services. The nova-scheduler selects the nodes to run VMs based on the CPU and memory weights. The nova-database is the database operation agent. The nova-compute manages the VM life cycles.
Cinder
Cinder is a block storage service that provides persistent block storage for VMs. Figure 2 shows the architecture of Cinder.
- The cinder-client encapsulates REST APIs provided by Cinder, so that users can call these APIs in CLI mode.
- The cinder-api exposes REST APIs, parses operation requests, and routes APIs to handle the requests. It provides functions such as adding, deleting, modifying, and querying volumes (creating volumes from existing volumes, images, or snapshots); adding, deleting, modifying, querying, and backing up snapshots; managing volume types; attaching and detaching volumes.
- The cinder-scheduler collects capacity and capability information reported by the backend, and completes scheduling from volumes to specified cinder-volumes based on preset algorithms.
- The cinder-volume is deployed on multiple nodes. Different configuration files are used to enable connection to different backend devices. Storage vendors insert driver codes to enable interaction with storage devices to collect capacity and capability information and perform volume operations.
- The cinder-backup backs up volume data to other storage media.
- SQL DB provides data such as storage volumes, snapshots, backups, and services and supports SQL databases including MySQL and PostgreSQL.
Neutron
Neutron is a virtual network management system that provides REST APIs, DHCP, and L2 network services. It uses a plugin architecture to support network devices and network technologies from various vendors. Figure 3 shows the Neutron architecture.
- Message Queue
neutron-server uses message queues to exchange messages with other Neutron agents, but does not use message queues to exchange messages with other OpenStack components such as Nova.
- L2 Agent
Used to connect ports and devices so that they are in a shared broadcast domain. L2 agents usually run on the hypervisor.


