Sooner or later your server runs out of disk space. It happens to everyone. When it does you are faced with a choice. How do you add more storage? With Hetzner you have two main options Cloud Volumes and Storage Boxes. They sound similar but they solve different problems. Choosing the right one will save you money and complexity.
Think of a Cloud Volume as a virtual hard drive. It is a block storage device that you attach to one of your cloud servers. Because it is block storage your server sees it as a raw disk like /dev/sdb
. You can format it with any filesystem you want and mount it anywhere.
The key feature of a Volume is performance. They are SSD based and connected over a fast network. This makes them ideal for things that need quick access to data. The most common use case is expanding the storage for a growing database. Your application code can also live here or any active data that needs to be read and written quickly.
Volumes are tied to a specific location. A Volume in Falkenstein can only be attached to a server in Falkenstein. You can detach it from one server and attach it to another but they must be in the same datacenter. You can also resize them on the fly which gives you flexibility as your needs grow.
Setting one up is simple. First you create the Volume in the Hetzner Cloud console and attach it to your server. Then you SSH into your server and run a few commands.
First find the device name for your new volume.
lsblk
You will see an output with your disks. The new volume will likely be /dev/sdb
or /dev/sdc
. Once you know the name you need to format it with a filesystem. We will use ext4 which is standard for Linux.
sudo mkfs.ext4 /dev/sdc
Next create a directory where you want to access the volume’s contents. This is called a mount point. A common choice is /mnt/data
.
sudo mkdir /mnt/data
Now you can mount the volume. This makes its storage available at the mount point you just created.
sudo mount /dev/sdc /mnt/data
This works but the mount will disappear if you reboot the server. To make it permanent you need to add an entry to a file called /etc/fstab
. This file tells Linux what to mount at boot time. The easiest way is with this command.
echo '/dev/sdc /mnt/data ext4 defaults,nofail 0 0' | sudo tee -a /etc/fstab
The nofail
option is important. It tells the system to continue booting even if the volume is not available for some reason. Without it your server could fail to start. Now your server has a new fast hard drive ready to use.
A Storage Box is different. It is not a raw disk you attach to a single server. It is a large amount of storage that you access over the network using standard protocols like SFTP FTP or NFS.
The key feature of a Storage Box is cost. They are incredibly cheap for the amount of space you get. This makes them unsuitable for high performance tasks like running a database but perfect for others.
The most common use case is backups. You can use tools to send automated encrypted backups of your servers to a Storage Box. Because it is a separate system in a separate location it is a perfect off site backup target. We wrote about this before in Simple Encrypted Backups on Hetzner with Restic.
You can also use a Storage Box for archiving large amounts of data that you do not need to access frequently. Or for storing large static files for your website that you do not want cluttering your main server disk. Because they are accessible from anywhere you can even share files between multiple servers or with your local machine.
You do not “attach” a Storage Box in the console. You access it from your server using its credentials. A simple way to mount it like a local directory is with sshfs
.
First you may need to install the tool.
sudo apt-get update && sudo apt-get install sshfs
Then create a mount point just like we did for the Volume.
sudo mkdir /mnt/backups
Now you can use the username and address for your Storage Box which you find in the Hetzner Robot console to mount it.
sudo sshfs u123456@u123456.your-storagebox.de:/ /mnt/backups -o allow_other,default_permissions
Now the contents of your Storage Box are available at /mnt/backups
. Making an sshfs
mount permanent is more involved than a simple fstab entry. It often requires a custom systemd unit for reliability. For many use cases like running a nightly backup script you do not even need to mount it permanently. Your script can connect when it needs to.
The choice between a Volume and a Storage Box is usually clear if you think about the job to be done.
Use a Cloud Volume when your application needs more fast “local” disk space for its database or active files. Use a Storage Box when you need cheap bulk storage for backups archives or shared assets.
One is a scalpel and the other is a shovel. Both are useful but you would not want to use one for the other’s job.
Understanding the tools available to you is the first step toward building a simple and robust system. Take a moment to think about your own storage needs.
— Rishi Banerjee
September 2025