In my previous post, I introduced my homelab mini PC and how I set it up. In this post, I’d like to show how I backup the homelab PC.

3-2-1 rule

Have you heard of 3-2-1 backup rule/best practice? It’s:

  • 3 copies, original + 2 backup copies
  • 2 different media
  • 1 offsite copy

Some people say #2 is irelevent anymore. I’m not sure if having copies both in SSD and HDD matters, either. Anyway, I will make sure one backup copy in an external USB drive and another in cloud to achieve both #3 and #1.

2 different media happens to be satisfied because original is in SSD and the USB drive is HDD.

Backup in Proxmox

Proxmox has Proxmox Backup Server. It has differential backup and dedup features, and looks very good. But I can’t use it because it doesn’t support external USB drive.

So, I will use a simpler Proxmox backup feature. It can only do full backup, but it at least supports compression. It should be sufficient for my need.

Backup to USB drive

I have an old, 1TB USB drive. I think it’s 10 or more years old. I initialized it in exFAT so that Proxmox can access. (It looks like FAT32 can’t handle files that are 2GB or larger.) I need to buy a new SSD external drive this Black Friday to replace this.

  • Log in to Proxmox management console > <node> > Shell
mkdir /mnt/bkup
fdisk -l  # to lookup path to USB drive; eg, /dev/sdb1
mount -t exfat /dev/sdb1 /mnt/bkup

Then, create a backup job and run it.

  • Datacenter > Backup > Add
  • General tab > Storage: <bkup> > Schedule: First day of the year 00:00
  • > check the VM > Mode: Snapshot
  • Retention tab > check Keep all backups > Create
  • highlight the new backup job > Run now

When done, unmount the USB drive from Proxmox shell:

sync  # just in case
umount /mnt/bkup

We’ve created a 1st backup copy.

Backup to cloud

Next, upload the backup to cloud. I have 500GB (lifetime plan) in pCloud.

For the VM to recognize the USB drive, I need to pass-through mount it to the VM. From Proxmox shell,

lsusb  # to see USB drive ID
qm set 100 -usb0 host=174c:5106  # 100 is the VM ID.  174c:5106 is the USB drive ID

Reboot the VM and from terminal,

sudo mkdir /mnt/bkup
sudo fdisk -l  # to see the USB drive device name (it was /dev/sdb1 again)
sudo mount -t exfat /dev/sdb1 /mnt/bkup

Then, upload to crypt folder in pcloud with rclone.

cd /mnt/bkup/20251010
ls dump/* > filelist.txt
rclone copy --include-from=filelist.txt . bkup_crypt:/20251010/

To see how upload is going,

sudo apt install nethogs
sudo nethogs

My internet plan is the $35/m one of Starry Internet, and it limits the upload speed to 50Mbps(~=6MB/s), and I saw 5-6MB/s consistently. Not too bad.

After the upload, pCloud usage was 291GB out of 500GB. I might add more capacity with this Black Friday sale. From a promotional email from pCloud, 1TB is $199 and 2TB is $279. $279 is the same price as its 4th of July sale this year and I feel is a little too expensive. The problem is, if I would be fine with +1TB for 5 years to come. Mmm…