On Tue, Sep 05, 2023 at 15:57:20 +0100, João Vilaça wrote:
Hello,
I'm using
https://gitlab.com/libvirt/libvirt-go-module and executing
'GetJobStats' to get information about the progress of a VM with a disk
migration in KubeVirt. Everything works correctly and the migration is
successful, with the disk correctly copied.
Across multiple executions of 'GetJobStats' while copying the disk, I get
the information about data:
*DataTotal:151592960 DataProcessedSet:true DataProcessed:163080901
DataRemainingSet:true DataRemaining:266240*
about disk total values:
*DiskTotal:21037056 DiskProcessedSet:true DiskProcessed:13631488
DiskRemainingSet:true DiskRemaining:7405568*
but '*DiskBpsSet:false *' and '*DiskBps:0 *' are always false and 0.
Even when I run 'virsh domjobinfo', I get Data and File absolute
values, but not the throughput.
Is QEMU not reporting this data? Can this be a bug?
This data was available with the old-style disk migration where disk
data was migrated over the migration stream.
As that was deprecated by qemu, libvirt switched to a new approach where
we migrate the disks by using NBD protocol and copying them via
'blockdev-mirror'.
Now the qemu blockjobs themselves do not report the actual bandwidth used,
just the progress. Since libvirt doesn't want to pointlessly poll this
data just to calculate bandwidth, the data is no longer available.