Implementing Cold Off-Site Backups - Virtual Machines

For a while I backed up my most important data to Backblaze. I also wanted a last-resort cold copy of both my servers and my file share, one that's simple to set up and simple to restore after a total loss. Every three months I run this by hand, alternating between two sets of disks. You need a USB hard drive large enough to hold all the VM backups.

Proxmox VMs

  1. Plug the drive into the first node.
  2. In the web UI, open that node > Disks, then wipe and initialize the drive. You can also do this in the Shell with cfdisk and mkfs.ext4.
  3. Open the Shell on each node and create the mount point. Then mount the drive on the node it's attached to. Check the device name first. Mine was sdf1:mkdir /mnt/Cold-Backups
    mount -t ext4 /dev/sdf1 /mnt/Cold-BackupsThe first node can use Disks > Directory > Create: Directory instead. The other nodes still need the mount point created by hand.
  4. Add the storage to the cluster:pvesm add dir Cold-Backups --path /mnt/Cold-Backups --content backup
  5. Go to each VM on the node with the drive, open Backup, and back up to Cold-Backups.

Before you start backing up, confirm the disk is really mounted. If it isn't mounted at /mnt/Cold-Backups, or you're on the wrong node, the backups will land on the host's system drive. Check the Cold-Backups storage under that node and make sure the size matches your drive.

When a node's VMs are done, unmount the drive (umount /dev/sdf1) and repeat on the next node. You can remove the storage from the cluster afterward. I leave it configured, so next time I just plug the drive in.

Proxmox Backup Server

PBS works almost the same way. In the Shell, I wiped the disk and created a partition with cfdisk, then ran mkfs.ext4, created the mount point, and mounted it. Then I added it as a datastore. After finishing, I remove the datastore so the OS doesn't hang at boot looking for a disk that isn't there.