Skip to main content
Block Storage lets you attach persistent volumes directly to your Public Cloud instances. Unlike object storage — where data is accessed via HTTP APIs as discrete objects — block storage behaves like a physical disk: you partition it, format it with a filesystem, and mount it at a path in your OS.

Create and attach a volume

Create a volume in the Control Panel and attach it to a running instance.

Format and mount on Linux

Partition, format, and persistently mount a new volume on Linux.

Volume snapshots

Take point-in-time snapshots to protect your data.

Performance tiers

Choose between Classic, High Speed, and Regional Classic volumes.

Overview

Block storage vs object storage

Block StorageObject Storage
Access methodMounted as a local disk (via OS)HTTP/S3 API
Use casesDatabases, VMs, filesystemsBackups, static assets, data lakes
Filesystem supportext4, XFS, NTFS, etc.Not applicable
ScalabilityUp to 12 TB per volumeUnlimited
LatencyVery low (NVMe)Higher (network)
ShareableLimited (Multi-Attach on specific tiers)Yes (via ACLs/policies)

Performance tiers

OVHcloud Block Storage is available in three classes, each suited to different workloads.

Classic Volume

Backed by NVMe over Fabric with 500 IOPS guaranteed and 64 MB/s throughput. Data is replicated within a single availability zone (1-AZ) or Local Zone. Best for: web application databases, VM storage, and backups where multi-zone redundancy is not required.

Regional Classic Volume

Also delivers 500 IOPS guaranteed and 64 MB/s, but data is automatically replicated across three availability zones (3-AZ) within the same region. Supports Multi-Attach, meaning you can attach the same volume simultaneously to multiple instances in different AZs. SLA: 99.99% availability. Best for: critical databases and distributed applications that require high availability and resilience.

High Speed Volume

Available in two generations:
GenerationIOPSThroughput
Gen 1Up to 3,000 IOPSUp to 128 MB/s
Gen 230 IOPS/GB (max 20,000 IOPS)0.5 MB/s per GB (max 512 MB/s)
Best for: transactional databases, analytics, AI/ML workloads, and any application requiring maximum I/O.

Comparison

Storage classIOPSThroughputAvailabilityReplication
Classic Volume500 guaranteed64 MB/s99.9%Single AZ
Regional Classic500 guaranteed64 MB/s99.99%3-AZ (multi-zone)
High Speed Gen 1Up to 3,000128 MB/s99.9%Single AZ
High Speed Gen 2Up to 20,000Up to 512 MB/s99.9%Single AZ
All volume types are also available as encrypted variants using LUKS. Specify the type with the -luks suffix (e.g. classic-luks, highspeed-luks). Encryption has no performance impact. Regional Classic and Local Zone volumes do not support LUKS encryption.

Create and attach a volume

1

Create the volume

In the OVHcloud Control Panel, go to Public Cloud > your project > Block Storage in the left-hand menu under Storage & backup.Click Create a volume and choose:
  • Location: must match the region of the instance you want to attach the volume to
  • Volume type: Classic, High Speed Gen 1, or High Speed Gen 2
  • Encryption: optionally enable LUKS encryption
  • Capacity: 10 GB to 12 TB
Click Create volume.
Your volume and instance must be in the same region. A volume cannot be attached across regions.
2

Attach the volume to an instance

On the volume list, click the ... button next to your volume and select Attach to instance.In the pop-up, choose the target instance and click Confirm. The attachment takes a few minutes.You can also attach via the OpenStack CLI:
openstack server add volume <server-id> <volume-id>
3

Format and mount on Linux

SSH into your instance. List attached disks to identify the new volume:
lsblk
You should see a new device such as /dev/vdb. Proceed to format and mount it — see the Format and mount on Linux section below.

Format and mount on Linux

1

Identify the new device

lsblk
Example output:
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    254:0    0   10G  0 disk
└─vda1 254:1    0   10G  0 part /
vdb    254:16   0   50G  0 disk
The new volume appears as vdb (the name may differ on your instance).
2

Create a partition

For volumes under 2 TB, use fdisk:
sudo fdisk /dev/vdb
At the prompt, type n to create a new partition, accept the defaults, then type w to write and exit.For volumes over 2 TB, use parted:
sudo parted /dev/vdb
(parted) mklabel gpt
(parted) mkpart primary 0 100%
(parted) quit
3

Format the partition

sudo mkfs.ext4 /dev/vdb1
4

Mount the partition

sudo mkdir /mnt/disk
sudo mount /dev/vdb1 /mnt/disk/
Verify the mount:
df -h
5

Make the mount persistent across reboots

Retrieve the UUID of the partition:
sudo blkid
Example output:
/dev/vdb1: UUID="2e4a9012-bf0e-41ef-bf9a-fbf350803ac5" TYPE="ext4"
Open /etc/fstab and add the following line, replacing the UUID with your own:
UUID=2e4a9012-bf0e-41ef-bf9a-fbf350803ac5 /mnt/disk ext4 nofail 0 0
Save and close the file. The volume will now mount automatically on reboot.

Detach and reattach volumes

Unmount before detaching

Always unmount the volume from the OS before detaching it from the instance to avoid data corruption.
sudo umount /dev/vdb1
Remove the entry from /etc/fstab if the mount is persistent, then detach the volume from the Control Panel or via CLI:
openstack server remove volume <server-id> <volume-id>

Reattach to another instance

Once detached, attach the volume to a different instance from the Control Panel or CLI:
openstack server add volume <new-server-id> <volume-id>
Mount it again on the new instance using the same steps as initial mounting. The filesystem and data are preserved.
You can use volume detach and reattach to migrate data between instances without copying files over the network.

Volume snapshots

A snapshot captures the state of a volume at a given point in time. Snapshots are stored on Block Storage and may incur additional storage charges.

Create a snapshot from the Control Panel

In Block Storage, click the ... button on a volume and select Create a snapshot. Give it a name and confirm. Snapshots are available within a few minutes.

Create a snapshot via CLI

openstack volume snapshot create \
  --volume <volume-id> \
  --name my-snapshot

Restore from a snapshot

Create a new volume from a snapshot:
openstack volume create \
  --snapshot <snapshot-id> \
  --size <size-in-GB> \
  my-restored-volume
For consistent snapshots of volumes that host databases or active workloads, consider quiescing writes or using your database’s flush/lock commands before taking the snapshot.

Shared responsibility model

ResponsibilityYouOVHcloud
Choosing the volume type and sizingYes
Formatting, mounting, and managing the filesystemYes
Data encryption (LUKS) configurationYes
Managing backups and snapshotsYes
Data security and access control on the volumeYes
Maintaining physical hardware and storage infrastructureYes
Operating the block storage cluster and control planeYes
Network connectivity between volume and instanceYes
Replication and durability at the storage layerYes

Object Storage

Store files and backups at scale using the S3-compatible API.

vRack — Private Network

Connect block storage workloads to other OVHcloud services privately.

Build docs developers (and LLMs) love