Skip to main content

Quick Start - Adding Persistent Storage with Volumes

Learn how to create, attach, manage, and configure Persistent Block Storage (Volumes) to add extra disk to your Virtual Machines (VMs)

Raff Technologies avatar
Written by Raff Technologies
Updated over 2 months ago

Video Tutorial

Understanding Volumes (Persistent Block Storage)

Volumes provide network-based block storage, acting like detachable hard drives for your VMs. They are ideal for storing application data, databases, or any information you want to keep separate from the VM's main operating system disk and persist even if the VM is deleted.

a. What is a Volume?

  • Provides persistent disk space independent of your VM's lifecycle.

  • Can be attached to and detached from VMs (only one VM at a time).

  • Sizes can be adjusted as needed (up to 1000 GB).

b. Creating Your First Volume

  1. Navigate: Log in to your Raff application and go to the Volumes section in the navigation menu.

  2. Initiate Creation: Click the Add Volume button.

  3. Configuration: Fill in the details for your new volume:

    • Size (GB): Specify the desired size in Gigabytes. The maximum size for a single volume is 1000 GB.

    • Assign to VM (Optional):

      • Select a VM: You can choose to attach the volume directly to a running VM during creation.

      • Leave Unassigned: If you don't select a VM, the volume will be created but remain unattached. You can attach it later.

    • Name: Give your volume a descriptive name that helps you identify its purpose (e.g., my-app-data-disk, web-server-logs).

    • Formatting Option: Choose how the volume should be prepared:

      • Automatic (EXT4 or XFS - Linux Only): The system will format the volume with the selected Linux filesystem (EXT4 is common, XFS is good for large volumes). You will only need to mount it later. This option is not available for Windows.

      • Manual: The volume is created unformatted. You will need to initialize and format it manually inside the VM's operating system after attaching it. This is the only option for Windows VMs.

  4. Final Review & Create:

    • Summary: Review your chosen settings (Name, Size, Target VM if any, Formatting).

    • Cost: Note the estimated hourly/monthly price for the volume.

    • Create: If everything looks correct, click the Create Volume button.

  5. Provisioning: Your volume is now being created. This process typically takes only a few moments.

    Important: Please allow the creation process to complete fully before navigating away or attempting further actions. You will see the volume appear in your Volumes list.

    If you chose to attach the volume directly to a VM during this setup, the provisioning might take a few extra seconds to complete the attachment step as well.


Windows VMs (Manual Formatting Required)

All volumes attached to Windows VMs require manual initialization and formatting.

Step 1: Connect to your Windows VM using Remote Desktop Protocol (RDP).

Step 2: Open Disk Management

  • Right-click the Start Menu (Windows icon) and select "Disk Management".

  • Alternatively, press Win+X and choose "Disk Management".

[Screenshot: Windows Start Menu right-click context menu showing 'Disk Management']

Step 3: Locate and Initialize Your Volume

  • Find the new disk that matches the size of the volume you created (e.g., 50 GB). It will likely appear as 'Unknown' and 'Not Initialized' with a black bar indicating unallocated space.

  • If the disk is marked as 'Offline', right-click the disk name (e.g., "Disk 1") and select 'Online'.

  • Right-click the disk name (where it says 'Unknown' or the Disk number) and select "Initialize Disk".

[Screenshot: Disk Management showing the new disk as 'Unknown', 'Not Initialized', and 'Offline' (optional) with the right-click menu showing 'Initialize Disk' or 'Online']

  • Choose GPT as the partition style (recommended for modern systems and larger disks).

  • Click OK.

[Screenshot: Initialize Disk dialog box with GPT selected]

Step 4: Create and Format the New Volume

  • Right-click on the 'Unallocated' space of the initialized disk and select "New Simple Volume...".

[Screenshot: Disk Management showing the initialized disk with 'Unallocated' space, right-click menu showing 'New Simple Volume...']

  • Follow the 'New Simple Volume Wizard':

    • Specify Volume Size: Usually, accept the default maximum size. Click Next.

    • Assign Drive Letter or Path: Choose an available drive letter (e.g., D:, E:). Click Next.

    • Format Partition:

      • Select NTFS as the file system.

      • Enter a descriptive name in "Volume label" (e.g., Data).

      • Ensure "Perform a quick format" is checked.

      • Click Next.

[Screenshot: New Simple Volume Wizard - Format Partition step showing NTFS, Volume label, and Quick Format option]

* **Completing the Wizard:** Review the settings and click **Finish**.

The volume will now be formatted and appear in File Explorer with the assigned drive letter, ready to use.

[Screenshot: Windows File Explorer showing the newly formatted volume with its drive letter and label]

Linux VMs - Automatic Formatting (EXT4 or XFS)

If you chose automatic formatting (EXT4 or XFS) during volume creation, the volume is already formatted. You just need to mount it.

Step 1: Connect to your Linux VM via SSH.

Bash

ssh username@your-vm-ip-address

(Replace username and your-vm-ip-address accordingly)

Step 2: Identify the Volume Device Name List the block devices to find your new volume. It will likely appear as /dev/sdb, /dev/sdc, etc., matching the size you created.

Bash

lsblk

[Example lsblk output highlighting the new device, e.g., sdb 50G]

Step 3: Create a Mount Point This is the directory where the volume's contents will be accessible.

Bash

sudo mkdir -p /mnt/volume1

(You can choose a different path like /mnt/data if you prefer)

Step 4: Mount the Volume Temporarily

Bash

sudo mount /dev/sdb /mnt/volume1

(Replace /dev/sdb with the actual device name found in Step 2. Replace /mnt/volume1 if you used a different mount point)

Step 5: Make the Mount Persistent (Survive Reboots) Add an entry to /etc/fstab so the volume mounts automatically after restarting the VM.

Bash

echo '/dev/sdb /mnt/volume1 ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
  • Important: Replace /dev/sdb with your actual device name.

  • Replace /mnt/volume1 if you used a different mount point.

  • If you chose XFS formatting, change ext4 to xfs.

Your automatically formatted volume is now mounted at /mnt/volume1 (or your chosen path) and ready to use.

Linux VMs - Manual Formatting

If you chose manual formatting, you must format the volume before mounting it.

Step 1: Connect to your Linux VM via SSH.

Bash

ssh username@your-vm-ip-address

Step 2: Identify the Volume Device Name List the block devices to find your raw, unformatted volume.

Bash

lsblk

[Example lsblk output highlighting the new device, e.g., sdb 50G, without any partitions listed under it]

Step 3: Format the Volume Choose a filesystem (EXT4 is standard, XFS is good for large files/parallel I/O) and format the device. For EXT4:

Bash

sudo mkfs.ext4 /dev/sdb

For XFS:

Bash

sudo mkfs.xfs /dev/sdb

(Replace /dev/sdb with the actual device name found in Step 2. Be very careful – formatting erases data!)

Step 4: Create a Mount Point

Bash

sudo mkdir -p /mnt/volume1

(Choose your desired path, e.g., /mnt/data)

Step 5: Mount the Volume Temporarily

Bash

sudo mount /dev/sdb /mnt/volume1

(Replace device name and mount point as needed)

Step 6: Make the Mount Persistent (Survive Reboots) Add the entry to /etc/fstab.

Bash

# Example for EXT4 echo '/dev/sdb /mnt/volume1 ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab # Example for XFS echo '/dev/sdb /mnt/volume1 xfs defaults,nofail 0 2' | sudo tee -a /etc/fstab
  • Important: Replace /dev/sdb with your actual device name.

  • Replace /mnt/volume1 if you used a different mount point.

  • Use ext4 or xfs corresponding to the filesystem you used in Step 3.

Your manually formatted volume is now formatted, mounted at /mnt/volume1 (or your chosen path), and ready to use.

Did this answer your question?