How to create and configure an additional disk on an instance

Objective

It is possible to create additional disks for your Public Cloud instances.
This can be useful in cases where:

  • You want to increase your storage capacity without changing the instance model.
  • You want to have a highly available, high-performance storage.
  • You want to move your storage as well as your data to another instance.
  • You want to prepare the environment if you want to use Terraform.

This guide explains how to create an additional disk and configure it on your instance.

Requirements

  • A Public Cloud Instance in your OVHcloud account
  • Administrative (sudo) access to your instance via SSH (Linux) or RDP (Windows)

OVHcloud Control Panel Access


Warning

This feature is currently not available for Metal instances.

Instructions

The different types of volumes

OVHcloud offers three types of Block Storage volumes, each tailored to specific needs in terms of performance, capacity, and cost. These solutions allow you to attach persistent storage volumes to your instances, ensuring a high level of reliability and availability. If the feature is available, encryption can be enabled when creating a volume, for all volume types except Classic Multi-Attach volumes in 3AZ regions.

Classic – 500 IOPS guaranteed

The Classic volume is a reliable, cost-effective storage solution, ideal for workloads requiring moderate performance. It offers 500 guaranteed IOPS, making it suitable for the following uses:

  • Hosting of classic web applications
  • Storage of small to medium-sized databases
  • Data backup and archiving

In 3AZ regions, Classic Volumes are regional services that use distributed erasure coding across multiple Availability Zones. This ensures data remains available without impact or downtime in the event of an AZ failure, provided the multi-attached resilient architecture conditions are met. For more information, please refer to our guide "Proper Usage and Limitations of Classic Multi-Attach Block Storage in 3AZ Regions".

High-Speed – Up to 3000 IOPS

The High-Speed volume is designed for applications requiring faster data access. With performance of up to 3000 IOPS, it is ideally suited to the following use cases:

  • Transactional databases (MySQL, PostgreSQL, etc.)
  • Virtualization and container environments
  • Applications requiring low latency and high throughput
High-Speed Gen2 – 30 IOPS/GB and up to 20,000 IOPS

Generation 2 High-Speed volumes are optimized for the most demanding workloads. With a performance of 30 IOPS/GB, up to 20,000 IOPS, this type of volume is recommended for:

  • Big Data and real-time analysis
  • Artificial intelligence and machine learning
  • Large database processing and high-performance storage
volume_types
Info

All volume types are also available in an encrypted version (LUKS). These volumes ensure data confidentiality without impacting performance. They are available through the OVHcloud Control Panel as well as via the tools presented in the next section, by specifying the type <volume_type>-luks.

Attaching a new volume

Via the OVHcloud Control Panel
Via Terraform
Via the Horizon interface
Via the OpenStack CLI

Open Block Storage in the left-hand menu under Storage & backup.

In this section, click on the button Create a volume.

select project

Follow the configuration steps to select the location, disk type, encryption and disk capacity options. Enter a name for the volume and confirm by clicking on Create volume.

Warning

Please note: Your volume must be created in the same region as the instance to which you want to attach it. If you create it in another region, you can delete it and recreate it in the correct region.

create disk

The new disk will now be displayed in the Control Panel.

configure disk

To the right of the volume, click on the ... button, then select Attach to instance.

attach disk 01

In the popup window, choose an instance from the list and click on Confirm to attach the disk.

attach disk 02

The process of attaching the disk to your instance will now begin. This may take a few minutes to complete.

Warning

Make sure to not leave the current page in your OVHcloud Control Panel while the disk is being attached. This might interrupt the process.

Configuring the new disk

The examples below presume you are logged in as a user with elevated permissions.

Using Linux

Establish an SSH connection to your instance, then use the command below to list the attached disks.

lsblk
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 10G 0 disk
Info

vda in this example refers to the default disk of the instance. The additional disk will then be labelled vdb.

Create a partition on the additional disk using the commands below.

If your additional disk is less than 2TB:

sudo fdisk /dev/vdb
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x95c4adcc.

Command (m for help): n

Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):

Created a new partition 1 of type 'Linux' and of size 10 GiB.

Command (m for help): w

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

If your additional disk is larger than 2TB:

sudo parted /dev/vdb
GNU Parted 3.5
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help                                                             
  align-check TYPE N                       check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all]            display the partition table, or available devices, or free space, or all found partitions
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted) mklabel gpt                                                      
(parted) mkpart primary 0 3750G                                           
Warning: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
Ignore/Cancel? I                                                          
(parted) quit

Next, format the new partition vdb1 using the command below.

sudo mkfs.ext4 /dev/vdb1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 2621184 4k blocks and 655360 inodes
Filesystem UUID: 781be788-c4be-462b-b946-88429a43c0cf
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Mount the partition with the following commands:

sudo mkdir /mnt/disk
sudo mount /dev/vdb1 /mnt/disk/

Finally, check the mount point using this command:

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 9.8G 840M 8.6G 9% /
udev 10M 0 10M 0% /dev
tmpfs 393M 5.2M 388M 2% /run
tmpfs 982M 0 982M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 982M 0 982M 0% /sys/fs/cgroup
/dev/vdb1 9.8G 23M 9.2G 1% /mnt/disk
INFO

The mounting is not persistent because the disk will be detached when the instance reboots. In order to automate the mounting process, the fstab file needs to be edited.

First, retrieve the UUID (block ID) of the new volume:

sudo blkid
/dev/vda1: UUID="51ba13e7-398b-45f3-b5f3-fdfbe556f62c" TYPE="ext4" PARTUUID="000132ff-01"
/dev/vdb1: UUID="2e4a9012-bf0e-41ef-bf9a-fbf350803ac5" TYPE="ext4" PARTUUID="95c4adcc-01"

Open /etc/fstab with a text editor:

sudo nano /etc/fstab

Add the line below to the file and replace the UUID with your own:

UUID=2e4a9012-bf0e-41ef-bf9a-fbf350803ac5 /mnt/disk ext4 nofail 0 0

Save and exit the editor. The disk should be automatically mounted after every reboot from now on.

Using Windows

Establish a remote desktop (RDP) connection to your Windows instance.

Once logged in, right-click on the Start Menu button and open Disk Management.

disk management

The new disk will be displayed as an unknown volume with unallocated space.

unknown volume

If the disk is marked as offline here, it needs to be initialised first. You can use the Windows GUI or the DISKPART utility to achieve this. Otherwise, proceed with formatting the disk in Disk Management.

Initialising the disk in Disk Management

Right-click on the disk and select Online.

If the disk is marked as offline here, this is likely due to a policy in place on the instance. To fix this, right-click on the disk and select Online.

offline disk

Then right-click it again and this time select Initialise Disk.

offline disk

Next, select MBR if your additional disk is less than 2TB, or GPT if it is more than 2TB, then click OK.

initialise disk
Initialising the disk with DISKPART

Right-click on the Start Menu button and open Run.

initialise disk

Type cmd and click OK to open the command line application.

run prompt

At the command prompt, open DISKPART:

C:\> diskpart

Use the following series of DISKPART commands to set the disk to online:

DISKPART> san

SAN Policy : Offline Shared

DISKPART> san policy = OnlineAll

DiskPart successfully changed the SAN policy for the current operating system .

- Implementation of the strategy on the extra disk:
[Code] DISKPART> list disk

Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 200 GB 0 B
* Disk 1 Offline 10 GB 1024 KB

DISKPART> select disk 1

Disk 1 is now the selected disk.

DISKPART> attributes disk clear readonly

Disk attributes cleared successfully.

DISKPART> attributes disk

Current Read-only State : No
Read-only : No
Boot Disk : No
Pagefile Disk : No
Hibernation File Disk : No
Crashdump Disk : No
Clustered Disk : No

DISKPART> online disk

DiskPart successfully onlined the selected disk.
Formatting the disk

In Disk Management, right-click on the new disk and select New Simple Volume....

format disk

In the wizard, click Next to specify the volume size. It should be set to maximum by default. Click Next to continue.

format disk

Leave the new drive letter at default or select a different one, then click Next.

format disk

Label the volume (optional) and confirm the formatting options by clicking Next.

format disk

In the last window, click Finish to format the disk.

format disk

The disk will be available as a drive in File Explorer after the operation.

Detach a volume

If you wish to detach a volume from your instance, the best practice is to unmount the volume in the operating system before detaching it from the instance.

Warning

An error message may appear if you have software or processes running on the additional disk. In this case, it is recommended to stop all processes before continuing.

Here's how to unmount the volume from the operating system before detaching it from the instance :

On Linux
On Windows

Establish an SSH connection to your instance, then use the command below to list the attached disks.

lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 10G 0 disk
└─vda1 254:1 0 10G 0 part /
vdb       8:0    0   10G  0 disk
└─vdb1    8:1    0   10G  0 part /mnt/disk

Unmount the partition using the command below:

sudo umount /dev/vdb1

Remove the device ID from the fstab to complete the unmount process, if this is not done, the partition will be mounted right back after a reboot.

sudo nano /etc/fstab

Save and exit the editor.

Finally, we will detach the volume from the instance:

Via the OVHcloud Control Panel
Via Terraform

Go to the Public Cloud section of your OVHcloud Control Panel and click on Block Storage in the left-hand menu under Storage & backup.

Click the ... button next to the corresponding volume and select Detach from instance.

detach disk

Click on Confirm in the pop up window to start the process.

confirm disk detach

Go further

Increasing the size of an additional disk

Join our community of users.

Was this page helpful?