Pasquale Dir
2014-Mar-04 18:12 UTC
[libvirt-users] Live migration (kvm) not working if any I/O operation is in progress
Hello, I'd like to know if this is an hypervisor related problem or a libvirt one. I did this experiment: on VM I started watching a video on youtube. While video was in progress I started migration. Migration did not complete until video was not finished. I did another experiment: I installed a web server on VM. I then started an httperf stress test. As before migration did not complete until the stress test was closed. Is this normal?
Eric Blake
2014-Mar-04 20:33 UTC
Re: [libvirt-users] Live migration (kvm) not working if any I/O operation is in progress
On 03/04/2014 11:12 AM, Pasquale Dir wrote:> Hello, > I'd like to know if this is an hypervisor related problem or a libvirt one. > > I did this experiment: on VM I started watching a video on youtube. > While video was in progress I started migration. > Migration did not complete until video was not finished.Migration runs until qemu thinks that it has converged enough that your overall downtime will be small. The more heavily loaded a guest is, the longer it takes to converge. You can tweak the parameters that qemu uses to determine whether convergence has happened; look at 'virsh migrate-setmaxdowntime' and 'migrate-setspeed'. You can try using 'virsh migrate --compressed' to see if that will help reduce the amount of traffic and therefore speed migration up (but be aware that there are upstream fixes going into the as-yet-unreleased qemu 2.0 that fix bugs with how qemu does compressed migration, so if you haven't backported those fixes to your qemu, you might end up corrupting your guest). Upstream qemu is also adding an auto-throttling option that forces the guest to use fewer cpu cycles if convergence isn't happening fast enough, although I'm not sure if libvirt exposes that knob yet. Finally, you can always pause the guest manually if you are tired of waiting for a live migration; in fact, 'virsh migrate --timeout' has a way to force the pause at a fixed timeout.> > I did another experiment: I installed a web server on VM. > I then started an httperf stress test. > As before migration did not complete until the stress test was closed. > > Is this normal?Depending on your network speed and whether you tuned any default parameters, yes. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org