Yesterday's article provided a general overview of the OpenStack architecture. Today, we will begin a deep dive into each component. We'll start with the most core functionality provided by OpenStack: the Compute Service, which is the component responsible for creating Virtual Machines (VMs)—Nova.
Contents
What is Nova?
Nova is an OpenStack project responsible for providing a way to provision compute machines. Currently, it primarily supports both virtual machines and bare-metal servers (via Ironic). Nova runs as a set of daemons on existing Linux servers to provide this service. Later sections will introduce the specific tasks handled by each Nova daemon.
Currently, Nova's basic functionality requires the following OpenStack services to operate:
- Keystone
- Glance
- Neutron
- Placement
Placement was not introduced in the previous article, so here is a quick overview.
Placement is a service that was split off from Nova. Its primary function is to track available resources of different categories and their usage, such as CPU, RAM, etc.
For Users
You can create and manage compute resources through the tools or APIs provided by Nova.
Tools for Using Nova
- Horizon: Mentioned in the previous post, it is the Web UI for OpenStack.
- OpenStack Client: The official CLI provided by OpenStack, which supports most OpenStack projects.
- Nova Client: Typically used for more advanced or administrative functions, though most features can be handled using the OpenStack Client.
If you are familiar with IaC (Infrastructure as Code), you can also use:
Except for Nova Client, which is exclusive to Nova, the other tools listed can also operate services provided by other OpenStack projects. Therefore, this section will be skipped in future introductions of other projects.
Nova API
All Nova user features can be accessed via a REST API, commonly referred to as the OpenStack Compute API. Users can use the API to implement complex logic or programmatically manage operations as Infrastructure as Code. Users can call the corresponding APIs directly or access them through SDKs in various languages. For usage details, please refer to the following OpenStack documentation (English):
- Compute API Guide: Introduces the basic concepts of the Compute API.
- Compute API Reference: Detailed usage for all Compute APIs.
- Compute API Microversion History: The Compute API is updated via microversions; this document contains all version history.
- Block Device Mapping: This document explains how to map various block storage devices to compute instances.
- Metadata: Introduces the various types of metadata supported by Nova.
Summary
This article introduced the features and usage of Nova. The next article will cover its architecture and the tasks handled by each daemon (process).
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise specified.

