Network-Attached Volumes

Additional SSD storage volumes that can be attached to your VPS instances.

Overview

Volumes are network-attached block storage devices powered by Longhorn, providing persistent storage that can be attached to a running VPS without requiring a restart. Data survives VPS stops and restarts. Deleting a volume permanently deletes its data; non-destructive detach is not supported.

Key Benefits

  • Hotpluggable: Attach volumes to running VMs without downtime
  • Persistent: Data survives VPS stops and restarts
  • Flexible Sizing: 10 GB to 500 GB, expandable at any time
  • Replicated: Data is replicated across nodes for redundancy

Performance

Volumes use network-attached storage, which means data travels over the network between nodes. This results in different performance characteristics compared to the local NVMe root disk.

Benchmark Comparison

MetricRoot Disk (Local NVMe)Volume (Network-Attached)
Sequential Write~2.4 GB/s~50 MB/s
Sequential Read~10.2 GB/s~75 MB/s
Interfacevirtio-blkvirtio-scsi
Storage BackendOpenEBS LVM (local NVMe)Longhorn (replicated)

Why the Difference?

The root disk of your VPS uses local NVMe SSDs with direct access to the physical drive, delivering full NVMe speeds. Volumes use Longhorn network-attached storage, where data is replicated across multiple nodes over the network for redundancy. The current 1 Gbps network interconnect between nodes is the primary bottleneck (~125 MB/s theoretical max).

Upcoming Improvement

We are planning a 10 Gbps network upgrade that will significantly improve volume throughput, bringing speeds closer to 1 GB/s.

Volumes are ideal for:

  • Bulk data storage (media files, archives, logs)
  • Backup targets and data exports
  • Application data that doesn't require high IOPS
  • Extra storage when your root disk profile isn't enough

For latency-sensitive workloads (databases, caches, heavily accessed application files), keep your data on the local NVMe root disk.

Pricing

Volumes are billed at EUR 0.04/GB/month, calculated hourly.

SizeMonthly Cost
10 GBEUR 0.40
50 GBEUR 2.00
100 GBEUR 4.00
500 GBEUR 20.00

Getting Started

Creating a Volume

  1. Navigate to Storage > Volumes in the dashboard
  2. Click Create Volume
  3. Choose the volume size (10 - 500 GB)
  4. Enter a name for the volume
  5. Select the VPS instance to attach it to
  6. Click Create & Buy now

The volume is created and automatically hot-plugged into your running VPS. If the VPS is still provisioning, attachment waits for it to run. The volume is shown as attached only after KubeVirt confirms the disk is ready.

Using the Volume Inside Your VPS

Additional volumes use SCSI and usually appear as /dev/sda, /dev/sdb, and so on. These paths can change; the volume name in the dashboard or API is not a Linux device path.

First inspect the disks without changing them:

Bash
lsblk -o NAME,PATH,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINTS

Match the new disk to the volume's capacity and compare the device list before and after attachment. Check its filesystem, label and mount points. If several disks match, identify the correct one before continuing; do not choose by its letter alone.

You may also see a small disk, often /dev/vdb, with filesystem iso9660 and label cidata. That is the cloud-init configuration disk, which supplies VPS startup configuration. A roughly 1 MB disk with those properties is separate from the purchased data volume. Leave it intact. Size or the name /dev/vdb alone does not establish what a disk contains.

Only format a new, empty data volume. Formatting erases any existing data. Replace /dev/sdX below with the device you identified; it is intentionally not a usable default.

Bash
VOLUME_DEVICE=/dev/sdX

# Create a filesystem only on the confirmed new, empty volume
sudo mkfs.ext4 "$VOLUME_DEVICE"

# Create a mount point and mount
sudo mkdir -p /mnt/volume
sudo mount "$VOLUME_DEVICE" /mnt/volume

# Verify
df -h /mnt/volume

For a persistent mount, obtain the filesystem UUID:

Bash
sudo blkid -s UUID -o value "$VOLUME_DEVICE"

Add the following line to /etc/fstab, replacing <filesystem-uuid> with that output and checking that no entry already exists. A UUID remains valid if the device letter changes. The nofail option allows booting when the volume is unavailable.

fstab
UUID=<filesystem-uuid> /mnt/volume ext4 defaults,nofail 0 2

Resizing a Volume

Volumes can only be expanded, not shrunk:

  1. Go to Storage > Volumes
  2. Click Resize on the volume
  3. Enter the new size
  4. The PVC expansion happens online, no restart required

After resizing, identify the mounted filesystem again instead of assuming a device letter. For an ext4 filesystem mounted at /mnt/volume:

Bash
sudo resize2fs "$(findmnt -n -o SOURCE --mountpoint /mnt/volume)"

Deleting a Volume

  1. Inside the VPS, unmount the volume first:
    Bash
    umount /mnt/volume
    
  2. Go to Storage > Volumes
  3. Click Delete volume on the volume and confirm

Warning: Deleting a volume permanently deletes the volume and all data on it. Back up the data you need before deleting. Non-destructive detach is not supported.

Technical Details

  • Storage Backend: Longhorn (replicated block storage)
  • Storage Class: longhorn-vps-volume
  • Volume Mode: Block
  • Access Mode: ReadWriteOnce
  • Bus: SCSI (for hotplug compatibility)
  • Filesystem: User's choice (ext4 recommended)
  • Replication: Configurable via Longhorn (default: 3 replicas)

Questions? Contact support at support@danubedata.ro