Skip to content

Block storage (RBD)

Block storage gives you virtual disks backed by Ceph RBD. You do not talk to RBD directly. Instead you consume it through the platform that needs the disk:

  • In OpenStack, as Cinder volumes attached to virtual machines.
  • In a managed Kubernetes cluster, as persistent volumes requested by your workloads.

A block device behaves like a raw disk: it is mounted by a single client at a time, and you put a filesystem on it. If you need a filesystem that several machines mount at once, use CephFS instead.

Storage tiers

Two tiers are available. They differ in performance and price, not in durability.

Tier Backing Use for
VOLUME-large Capacity-oriented General-purpose disks, bulk data, anything not latency-sensitive
VOLUME-fast NVMe-backed Databases and other latency-sensitive or high-IOPS workloads

Using block storage in OpenStack

Create a volume and attach it to an instance. From the command line:

openstack volume create --size 50 --type VOLUME-large data-disk
openstack server add volume my-instance data-disk

Then partition, format, and mount it inside the guest as you would any new disk. You can also boot an instance directly from a volume so that the root disk is persistent and survives the instance being deleted. See Block storage in OpenStack for the full walkthrough, snapshots, and resizing.

Using block storage in Kubernetes

Request a persistent volume with a PersistentVolumeClaim that names the storage class for the tier you want. The cluster provisions the RBD volume and attaches it to the node running your pod. See the Kubernetes storage guide for the available storage classes and examples.

Snapshots and backup

Volumes can be snapshotted for point-in-time copies, which is useful before a risky change. A snapshot lives in the same Ceph cluster as the volume, so it is not a backup against cluster-level loss or against deleting the volume and its snapshots together. Block storage is not backed up by Sunet by default. See Durability, quotas and billing.