From Bare Metal to the Cloud: An Introduction to OpenStack Cinder

Auto Draft

Today, we are going to introduce the final OpenStack component: Cinder. Cinder is a service commonly provided in OpenStack deployments and is one of the core OpenStack projects. Let's take a look at what services Cinder provides and what its architecture looks like.

What is Cinder?

Official DocumentationIt states the following:

Cinder is the OpenStack Block Storage service, used to provide volumes for Nova virtual machines, Ironic bare metal, containers, and more.

You can think of Cinder as a service that provides hard drives. It offers an API that allows you to mount disks onto instances to provide storage space. In addition to simply providing block storage, Cinder also offers volume snapshots and backup functions, while allowing you to manage different backends or storage spaces using volume types.

The design goals of Cinder are:

  • Microservices-based architecture: enables developers to quickly add new features
  • High availability: scalable to handle very high workloads
  • Fault tolerance: isolated processes prevent cascading failures
  • Recoverable: Admins can easily identify, adjust, and resolve issues.
  • Open Standards: Becoming a Reference Implementation for Community-Driven APIs

Cinder Architecture

Cinder includes the following components:

cinder-api

Responsible for providing the front-end API processing and sending user requests to cinder-volume.

cinder-volume

The core component of Cinder, which interacts directly with processes like cinder-api and cinder-scheduler via a message queue. cinder-volume is responsible for handling read/write requests sent to cinder-api to maintain Cinder's state. It can interface with various storage backends through different drivers.

cinder-scheduler daemon

Similar to nova-scheduler, it is responsible for selecting the most suitable storage provider to provide the volume.

cinder-backup daemon

The cinder-backup daemon is responsible for providing backup services for Cinder volumes. Similar to cinder-volume, it can also interface with various storage backends through different drivers.

Messaging queue

Communication between components within the Cinder service is handled through a message queue, typically RabbitMQ.

Summary

This article introduced Cinder, which is the last OpenStack component planned for introduction. It provides persistent volume storage services for VMs. Although it is not a mandatory component for providing VM services in OpenStack, most OpenStack deployments include Cinder. In addition to providing block storage for OpenStack-related services, Cinder can also provide persistent volumes for K8S through its CSI driver.


Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise specified.

Leave a Reply