A disk attached to a VPS appears as a device and nothing more. Until it is formatted and mounted it holds nothing and no directory points at it, which is why a freshly attached volume looks like it did not work.
See what is attached
lsblk -f
The new device has no FSTYPE and no MOUNTPOINT. That is how you tell it apart from the system disk, which is already carrying a filesystem.
Format it
sudo mkfs.ext4 -L data /dev/sdb
A whole-device filesystem, with no partition table, is normal for a cloud volume and makes it easier to grow later. Partition only if something else expects a partition.
Mount it
sudo mkdir -p /srv/data
sudo mount /dev/sdb /srv/data
df -h /srv/data
The step people forget
A mount made by hand disappears at the next reboot and the directory goes back to being an empty folder on the system disk - which then fills up while the volume sits idle. Write it into fstab by UUID, because device names can change order between boots.
sudo blkid /dev/sdb
# UUID="0a1b2c3d-..." TYPE="ext4"
echo 'UUID=0a1b2c3d-... /srv/data ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
sudo mount -a
Move data onto it
- Stop what writes there — the database, or the web server, so nothing changes mid-copy.
- Copy with permissions intact —
sudo rsync -aHAX /var/lib/mysql/ /srv/data/mysql/ - Point the service at the new path — and start it again.
- Keep the old copy until it is proved — rename it rather than deleting it, and remove it a week later.