Today, we'll introduce the final OpenStack component, Cinder. Cinder is a commonly provided service in OpenStack deployments, and also one of the core projects in OpenStack. Let's take a look at what services Cinder offers and how its architecture is structured.
Table of Contents
What is Cinder?
在Official DocumentationHere's what we'll cover:
Cinder is the OpenStack Block Storage service, providing volumes for Nova virtual machines, Ironic bare metal servers, containers, and more.
You can think of Cinder as a storage service that supplies block storage. It provides an API so you can attach storage volumes to instances, offering persistent storage capacity. In addition to basic volume provisioning and attaching to storage, Cinder also supports advanced features such as volume snapshots and volume backups. At the same time, it enables managing different backends or storage spaces using volume types.
The primary goal of Cinder's design is:
- Microservice-based architecture: enables developers to quickly add new features
- Highly available: Can scale to very high workloads
- Fault-tolerant: Isolated processes prevent cascading failures
- Recoverable: Admins can easily detect, troubleshoot, and resolve issues
- Open standard: Serves as a reference implementation for community-driven APIs
Cinder architecture
Cinder includes the following key components:
cinder-api
The cinder-api service handles incoming API requests and forwards user requests to cinder-volume.
cinder-volume
The core component of Cinder, directly communicating with cinder-api and cinder-scheduler via a message queue. cinder-volume processes requests received from cinder-api to maintain Cinder's operational state. It can connect to various storage backends through different drivers.
cinder-scheduler daemon
Like nova-scheduler, cinder-scheduler selects the most suitable storage provider to deliver volume services.
cinder-backup daemon
The cinder-backup daemon provides volume backup services. Similar to cinder-volume, it can also connect to different storage backends via various drivers.
Messaging queue
All internal components of the Cinder service communicate via a message queue, typically RabbitMQ.
Summary
This article introduced Cinder—the final OpenStack component we planned to cover. It provides VM persistent volume storage services. Although not strictly required for VM services, most OpenStack deployments still include Cinder. Beyond supporting OpenStack-related services with persistent storage, Cinder can also use its CSI driver to provide persistent volumes for Kubernetes (K8S).
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.