Storage
This section covers Block Storage (Volumes) in OpenStack — volume types, lifecycle operations, snapshots, and resizing.
What is a Volume?
OpenStack provides two classes of block storage:
- Ephemeral storage — exists only for the life of an instance. It survives reboots but is deleted when the instance is deleted. The size is defined by the flavor and cannot be changed independently.
- Persistent volumes — independent block devices that survive instance deletion. A volume can be detached from one instance and reattached to another while retaining all data, much like a USB drive. Volumes are stored on redundant storage and are resilient against hardware failures.
You can attach additional volumes to a VM beyond its system disk. This is useful when you need more space than the flavor provides, or when you want the flexibility to snapshot, resize, or move data between VMs.
Tip
When launching a VM with a Zero-Disk flavor (g*), the boot disk is itself a volume — it persists independently and can be resized later. See the flavor comparison below.
Volume Types
Volumes are backed by one of two Ceph storage clusters:
- EC (Erasure Coding) — capacity-optimized, used for basic and standard workloads.
- RP3 (3-replica) — performance-optimized, used for database and IO-intensive workloads.
Fixed-Performance Types
These types have fixed IOPS and throughput limits regardless of volume size.
| Type | IOPS | Throughput | Backend | Description |
|---|---|---|---|---|
v-ssd-bsc |
500 | 50 MB/s | EC | Basic — for workloads with low IO requirements |
v-ssd-std |
1,000 | 120 MB/s | EC | Default — good for most workloads |
v-ssd-medium |
2,000 | 180 MB/s | RP3 | Entry-level databases and io2 workloads |
v-ssd-high |
3,500 | 215 MB/s | RP3 | Medium-performance databases |
v-ssd-ultra |
5,000 | 250 MB/s | RP3 | High-performance databases, io3 workloads |
Dynamic Types
These types scale IOPS and throughput with volume size — larger volumes get more performance.
| Type | Min IOPS | Max IOPS | IOPS/GB | Min Throughput | Max Throughput | Backend |
|---|---|---|---|---|---|---|
v-ssd-dynb |
300 | 10,000 | 5/GB | 75 MB/s | 250 MB/s | EC |
v-ssd-dynx |
1,000 | 20,000 | 25/GB | 100 MB/s | 500 MB/s | RP3 |
Note
The v-ssd-std type is assigned by default. To use a different type, specify it when creating the volume (Horizon: Volume Type dropdown; CLI: --type flag).
Standard vs Zero-Disk Flavors
The choice of flavor affects how storage behaves — Zero-Disk flavors (g*) boot from a volume that can be resized and snapshotted, while Standard flavors (e*, m*) include a fixed root disk.
In This Section
- Volume Operations — create, attach, format, mount, detach, and delete volumes (Horizon + CLI + Ansible + Terraform).
- Snapshots — create, list, delete snapshots; create a volume from a snapshot.
- Extend Volumes — increase volume size and resize the filesystem.