migration bandwidth setting quirks with non-shared storage migration
Description of problem
Limiting migration bandwidth when non-shared-storage migration is used is quirky and almost impossible to do correctly for VMs with multiple disks.
Specific problems:
-
virsh migrate-setspeeddoes not change the bandwidth limit of the blockjobs handling the migration of storageThe expectation is that it can modify what's set with
virsh migrate --bandwidthalthough it doesn't modify the speed of the blockjobs at all. Combined with quirk 2) there's no way to actually control the blockjob speed. -
virsh blockjob --bandwidthis (likely) not allowed due to the migration async jobThere is no way to set the bandwidth limit individually or control it further once migration is started.
-
virsh migrate --bandwidthis applied separately to every blockjob handling migration of storageWhile the --bandwidth parameter is applied to the blockjob, the value is applied to every single blockjob. Thus effectively multiplying the allowed speed for multi-disk VMs. Subsequently if the user tired to compensate the memory migration speed would be unnecessarily limited.