[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] libvirt(-java): virDomainMigrateSetMaxDowntime

[forgot list]

On 07/13/2010 08:21 PM, Cole Robinson wrote:
On 07/13/2010 01:12 PM, Daniel P. Berrange wrote:
On Tue, Jul 13, 2010 at 06:56:53PM +0200, Thomas Treutner wrote:
So my question: Would it be possible to extend the migrate() method
resp. virDomainMigrate() function with an optional maxDowntime parameter
that is passed down as QEMU_JOB_SIGNAL_MIGRATE_DOWNTIME so that
qemuDomainWaitForMigrationComplete would set the value? Or are there
easier ways?

That approach really desirable IMHO, because it is already possible
todo this using threads, which is already neccessary for the other
APIs you can invoke during migration. If you care about the
max downtime parameter, then you almost certainly need to care about
calling virDomainGetJobInfo() in order to determine whether the
guest is actually progressing during migration or not.

Also sounds like it would be handy to allow globally configuring the
default migration downtime in /etc/libvirt/qemu.conf

Yep, that would be at least something. I'd even doubt that the qemu default value makes sense at all, in more than one way:

1) When I set 100ms, the last jobinfo I see says approx. 80MByte remaining. Over Gbit Ethernet, it would take about 0.5s to transfer that, in the ideal case. A flooding ping says about 800ms max delay. Maybe there's a bit/Byte-bug lurking around somewhere in qemu? (100ms vs. 800ms)

2) Even if there's no bug, the 30ms look far too optimistic to me. As I said, unless the VM is only moderately loaded (<50%), migrations never finish and would run forever, I assume. I suggest that the default value should be higher and/or some action should be taken if the migration can not be done within some time or iteration limit (IIRC Xen takes the iteration approach). One can argue whether the action should be abortion or just-do-it, but I think there should be definitively *some* action to have a sane default without tracking a migration process in each and every software built on libvirt/qemu. (Yes, it's primarily a qemu issue, but there are lots of other optional, driver-specific things in libvirt too).

I'd find it even more interesting to have the downtime as a part of the domain config, with choices/values for timeouts and the respective action, but that's a lot of wishes and would need hypervisor support.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]