We have really good success in limiting io on proxmox in the standard configuration.
For example:
ionice -c3 backupscript.sh allows backups only in idle-times which means backups have no impact on running processes.
ionice -c2 -n0 -p pidofkvmprocess allow some better io quality for specified virtual machines although its true, perfect io-limiting is not relly possible, but to some extend it is.