Proxmox Backup Server (PBS) saved my bacon.
I’ve been using Proxmox VE (Virtual Edition) for a couple years and I’ve been pretty pleased with it (previous article on using it to run GNS3). I run a virtualization server at home for a few reasons. VMs have been a way to break apps out into seperate environments, making supporting self-hosting easier. I think containers have made inroads here and many folks prefer them, but - no judgement - I’ve always found VMs to be conceptually easier. Second, I’ve supported virtual environments and wanted to use my home network to get hands-on time.
Originally, I used a free version of VMWare (6.0 and later 6.5) but VMWare stopped supporting that version and it has never made sense to pay for an ESXi license for a home lab. Proxmox VE had a lot of the capabilities, plus the Linux underpinnings were much more obvious (which supported another direction I was heading). The PVE environment has been mostly good and I’ve never had an issue that I couldn’t recover from (similar to what you’d expect running ESXi). Recently, however, I had a hard-drive fail in the RAID array. That server was already pretty long in the tooth, so I built a new one.
All good to this point, new server came up running PVE without a hitch. I joined the servers together in a cluster and migrated VMs. Most of my VMs, as mentioned, are single purpose appliances (either downloaded or assembled). One of my VMs has a big disk file and is used to store my personal files. And that’s the one that wouldn’t boot.
Because it’s the biggest disk (by far), I migrated other workloads first. I also upgraded my home network to 2.5G to support the environment, so I took a little longer to handle this VM. My guess is that the VM suffered corruption, either running in a limping-RAID1 or during transfer.
I setup PBS about six months ago and it had been backing up my VMs every week. I did a recovery on a small VM way back, but hadn’t really touched it since. In this case, I was able to restore a copy of the impacted VM from a few days prior and recover all my files. PBS runs in the background and emails me each week to let me know that it’s good. Recovery of a 2TB disk image did take a couple hours, but it was simple to setup. If you use PVE, I think you have to use PBS.
Setting up PBS is about as difficult as setting up PVE. If you did the one, the other will not be a problem. The documentation is good, but takes some time to read so here’s a quick walkthrough of the actions you’ll need to take.
Setup Pruning to keep the latest backups. This setup mostly comes down to the crossing point of your budget, paranoia, and available space. You can specify the number of backups to keep over various timeframes, such as days, weeks, months, and years. I backup weekly and want to keep a couple backups, but I also keep monthlys as well in case I realize later that I need a restore.
Get the “fingerprint” using the big “show Fingerprint” button on the dashboard.
Back in the PVE environment, go to the server view and select DataCenter > Storage.
Click Add and choose Proxmox Backup Server from the drop-down menu.
Give the backup server an ID and enter in it’s IP address. Use root@pam as the username, the password you set on PBS and then supply the datastore setup in Step 3 above. Here’s where you’ll need to paste in the fingerprint from PBS. This is also the place where you can fiddle with retention and encryption if needed.
The simple way to backup a VM at this point is just to select a VM and choose “Backup”. No one remembers to do backups though, so the key is to have them happen automatically.
Still under Datacenter, choose backup and Add.
To backup all VMs from all PVE instances weekly, use the following settings:
The process of setting this up isn’t too confusing. I find the Proxmox interface takes a little time to develop an intuitive feel, but this made sense. At this point, weekly backups should start flowing in. PBS will deduplicate and make very efficient use of space, so even a 4TB backup drive has been fine for me.
Restoring specific files or VMs is a topic for a second article. Hope this is helpful!