Serial jobs backups

gmarco

New Member
Apr 26, 2024
1
0
1
Hi all.
I thinks this question was made in the past but I dont succeded in find any answer to it.

The problem is is simple.

For Example, if I have a backup job of 4 VM :
100, 101, 102, 103

and this VMs are on 4 different PVE hosts:
pve01, pve02, pve03, pve04

and the VMs are on the SAME shared datastore.

when the backup starts it starts 4 concurrent jobs that create high disk load on the shared datastore, on the network and on the pbs itslef.

I'd like instead an option where I can specify the max number of concurrent jobs from 1 (serial) to n (not per host, but cumulative for this backup job for ALL hosts).
So if I specify 1 job max, pve (pbs) make the backup of the first of the the VM 100, when finished (not before) starts the 101 and so on ...

I think it should not be difficult to implement and save us a lot of problems like to put as many VM we can on the same host, create different backup jobs at different hours keeping attention they not overlap .... It's a pain ...
We have also think to leave the backup part of proxmox and demand it to another product because in an enviroment with many hosts and sparse VMs with shared storage making backup is very difficult to accomplish and configuring without the risk of overloading the structure.

Thanks.
Gianmarco
 
The Bad News (don't stop here)

This isn't supported in a streamlined way - at least not as you've described.
See https://bugzilla.proxmox.com/show_bug.cgi?id=3086.

However, there are a few things you can do:
1. Backup more frequently
2. Set per-node schedules
3. Limit resources, per-schedule
4. Wait for the PBS scheduler

1. Backup MORE often... (less load per backup)

PBS is designed in such a way that it's often much more efficient if you do an hourly schedule rather than a daily or a weekly.

In general, the more often you run backups, the faster each backup is (typically a few seconds).

It's very efficient at both storage and pruning due to the block-level design - so as long as your data churn doesn't exceed your storage space or hit up against your drive's DWPD limits, you might be surprised to find that more frequent backups are much more efficient.

The one caveats to that are:
- you have a very write heavy workload with lots of churn (create / delete / modify)
- you reboot your VMs regularly, and they have large disks (the live dirty block index is rebuilt on first use after each VM reboot)

2. Schedule PER NODE

You can set a per-node schedule, including ALL instances. Only the instances running on that node will be backed up.
Screenshot 2025-03-27 at 11.34.02 PM.png
3. Limit Resources, Per-Schedule

You can set the advanced options to limit bandwidth, CPU, or IO (including fleecing).
pve-backup-advanced.png
4. Wait for the PBS Scheduler

Max and Gabriel have been working on job scheduler improvements that include the parallelization parameters you're looking for (see https://bugzilla.proxmox.com/show_bug.cgi?id=3086#c25).

Since they're already working on it, I suspect it's represented in the PBS Roadmap (https://pbs.proxmox.com/wiki/index.php/Roadmap), but I'm sure which task it's part of.

Follow-up

What's your workload and backup frequency like?

Do you have any questions about scheduling or the advanced options?

Do any of the tips in https://bugzilla.proxmox.com/show_bug.cgi?id=3086 sound like a good fit?
 

Attachments

  • pve-backup-advanced.png
    pve-backup-advanced.png
    637.9 KB · Views: 1
Last edited: