[libvirt] virsh domjobinfo during storage migration

Ruben Kerkhof ruben at rubenkerkhof.com
Fri Nov 25 10:38:36 UTC 2016


Hi Jiri,

On Fri, Nov 25, 2016 at 9:26 AM, Jiri Denemark <jdenemar at redhat.com> wrote:
> On Thu, Nov 24, 2016 at 22:54:10 +0100, Ruben Kerkhof wrote:
>> Hi all,
>>
>> Running virsh domjobinfo on my CentOS 6 systems during a migration
>> with --copy-storage-all, the output used to look like this:
>>
>> Job type:         Unbounded
>> Time elapsed:     1830632      ms
>> Data processed:   37.212 GiB
>> Data remaining:   1.025 GiB
>> Data total:       16.016 GiB
>> Memory processed: 37.212 GiB
>> Memory remaining: 1.025 GiB
>> Memory total:     16.016 GiB
>> Memory bandwidth: 100.018 MiB/s
>> Constant pages:   618279
>> Normal pages:     9734623
>> Normal data:      37.135 GiB
>> Expected downtime: 1118         ms
>> Setup time:       61           ms
>>
>> But when I run the same command on CentOS 7, libvirt-1.2.17-13 and
>> qemu-kvm-1.5.3-105, I just get this:
>>
>> $ sudo virsh domjobinfo 58358fec-c35c-4a7a-a4dd-18ec2e1327bf
>> Job type:         Unbounded
>> Time elapsed:     209616       ms
>>
>> I tried to debug this myself, but I'm a bit stuck. I'd expected
>> libvirt to send query-migrate commands to qemu every 50 ms or so. To
>> verify I attached gdb and put a breakpoint at
>> qemuMonitorJSONGetMigrationStatus, but the breakpoint only hits after
>> the complete disk is mirrored.
>
> That's expected since QEMU finally implemented a migration event, which
> allowed us to stop polling every 50 ms. Libvirt will only call
> query-migrate at the end of a migration or when virsh domjobinfo is
> called.
>
> The reason why you don't see anything interesting in the output is NBD
> storage migration. With new enough QEMU libvirt will first migrate
> storage using QEMU's integrated NBD server and then "migrate" QMP
> command will called. With old QEMU storage migration was done by the
> "migrate" command itself. Thus calling query-migrate while storage is
> migrated (i.e., before migrate was called) does not provide anything.

That makes sense, thanks for the explanation.

> I guess it should be possible to also check the progress of all running
> block jobs so that we can report statistics about ongoing storage
> migration even when NBD is used.

That would be great, since I won't be able to upgrade to a newer
version of QEMU yet.
How do you want to handle this, would you like me to open an issue in bugzilla?

>
> Jirka

Kind regards,

Ruben Kerkhof




More information about the libvir-list mailing list