Learn OpenStack · core/storage/block
Block Storage — Cinder
Cinder is the OpenStack Block Storage service. It provisions, manages, and exposes persistent block devices to instances (and to bare-metal via Ironic). Volumes appear inside instances as raw block devices (/dev/vdb, /dev/sdb, etc.) and are independent of instance lifecycle — a volume survives server deletion and can be re-attached to any instance in the same availability zone.
Cinder has been a core OpenStack service since the Folsom release (2012). It originated as the block-storage portion of Nova ("nova-volume") before being extracted into its own project.
When to Read This Skill
- Deploying Cinder for the first time or adding a new backend
- Creating volumes, snapshots, and backups via CLI or API
- Configuring volume types, QoS specs, and encryption
- Setting up multi-backend or replicated storage
- Understanding how Cinder integrates with Nova (attach/detach) and Glance (image-backed volumes)
- Diagnosing volume creation failures, attach errors, or quota exhaustion
- Migrating volumes between backends or availability zones
- Configuring Ceph RBD, LVM, NFS, or vendor drivers
- Implementing active-active HA for cinder-volume
Sub-Files
| File | What It Covers |
|---|---|
| architecture.md | cinder-api, cinder-scheduler, cinder-volume, cinder-backup; volume types, QoS, encryption; Nova/Glance integration; active-active HA |
| operations.md | CLI and API: volumes, snapshots, backups, types, QoS, transfers, migration, manage/unmanage; full config reference |
| internals.md | Driver interface, multi-backend config, replication v2.1, scheduler filters and weighers, DB models, RPC flow |
| backends.md | LVM, Ceph RBD, NFS, Pure Storage, NetApp — config sections, setup steps, caveats |
Quick Reference
# Create a volume
openstack volume create --size 50 --type ssd-replicated my-data-vol
# List volumes
openstack volume list
# Attach a volume to an instance
openstack server add volume my-instance my-data-vol --device /dev/vdb
# Detach a volume
openstack server remove volume my-instance my-data-vol
# Create a snapshot
openstack volume snapshot create --volume my-data-vol my-data-snap
# Create a backup
openstack volume backup create --name my-data-backup my-data-vol
# Extend a volume
openstack volume set --size 100 my-data-vol
# Show volume details
openstack volume show my-data-vol
# List volume types
openstack volume type list --long
# List volume backends (admin)
openstack volume backend pool list --long
Dependencies
| Dependency | Purpose | Notes |
|---|---|---|
| Keystone | Authentication and service catalog | Every Cinder API call validated against Keystone |
| Nova | Volume attach/detach, instance-boot-from-volume | Nova calls Cinder to reserve and export volumes |
| Glance | Upload volume as image; create volume from image | Optional but needed for image-backed volumes |
| Barbican | Volume encryption key management | Required when volume encryption is configured |
| RabbitMQ (or oslo.messaging backend) | Async RPC between Cinder services | Required; all inter-service calls go through message bus |
| MariaDB 10.6+ or PostgreSQL 14+ | Cinder database | Stores volume, snapshot, backup, type metadata |
| Memcached | API-layer cache | Strongly recommended; reduces DB load |
| Storage backend | Actual data storage | LVM, Ceph, NFS, iSCSI array, or vendor driver |
Releases Covered
This skill covers OpenStack 2025.1 (Epoxy), 2025.2, and 2026.1.
Cinder release notes: https://docs.openstack.org/releasenotes/cinder/ Cinder admin guide: https://docs.openstack.org/cinder/latest/admin/ Cinder API reference: https://docs.openstack.org/api-ref/block-storage/v3/