Gionatan Danti
2017-Feb-17 13:52 UTC
[libvirt-users] Libvirt behavior when mixing io=native and cache=writeback
Hi all, I write about libvirt inconsistent behavior when mixing io=native and cache=writeback. This post can be regarded as an extension, or clarification request, of BZ 1086704 (https://bugzilla.redhat.com/show_bug.cgi?id=1086704) On a fully upgraded CentOS6 x86-64 machine, starting a guest with io=native and cache=writeback is permitted: no errors are raised and the VM (qemu, really) silently use "io=threads" instead. A warning should be raised, but I find reasonable that the VM is permitted to run. On a fully upgraded CentOS7 x86-64 machine, starting a guest with io=native and cache=writeback is *not* permitted: an error is raised and the guest is not started. While it is absolutely OK to alert the user about the configuration error, I feel the VM should be started as on CentOS6. Anyway, this is not a big problem when dealing with a single host. A more concerning behavior is that when trying to migrate a guest from the very first CentOS6 machine, which starts and runs such a guest with io=native and cache=writeback without problems, to a CentOS7 host, live migration aborts with an error: [root@source] virsh migrate Totem --live --copy-storage-all --persistent --verbose --unsafe qemu+ssh://root@172.31.255.11/system error: unsupported configuration: native I/O needs either no disk cache or directsync cache mode, QEMU will fallback to aio=threads This error persists even if the VM config file is changed to use "io=threads". Of course, the running image continue to have "io=native" on its parameters list, but it does not really honor the "io=native" directive, so I find strange that live migration can not proceed. I think it is very reasonable to raise an error, but such error should not block the live migration process. In short: there is some method to live migrate a running VM configured with "io=native" (but which is really using "io=threads" internally) and "cache=writeback"? Thanks. -- Danti Gionatan Supporto Tecnico Assyoma S.r.l. - www.assyoma.it email: g.danti@assyoma.it - info@assyoma.it GPG public key ID: FF5F32A8
Martin Kletzander
2017-Feb-20 13:02 UTC
Re: [libvirt-users] Libvirt behavior when mixing io=native and cache=writeback
On Fri, Feb 17, 2017 at 02:52:06PM +0100, Gionatan Danti wrote:>Hi all, >I write about libvirt inconsistent behavior when mixing io=native and >cache=writeback. This post can be regarded as an extension, or >clarification request, of BZ 1086704 >(https://bugzilla.redhat.com/show_bug.cgi?id=1086704) > >On a fully upgraded CentOS6 x86-64 machine, starting a guest with >io=native and cache=writeback is permitted: no errors are raised and the >VM (qemu, really) silently use "io=threads" instead. A warning should be >raised, but I find reasonable that the VM is permitted to run. > >On a fully upgraded CentOS7 x86-64 machine, starting a guest with >io=native and cache=writeback is *not* permitted: an error is raised and >the guest is not started. While it is absolutely OK to alert the user >about the configuration error, I feel the VM should be started as on >CentOS6. Anyway, this is not a big problem when dealing with a single host. > >A more concerning behavior is that when trying to migrate a guest from >the very first CentOS6 machine, which starts and runs such a guest with >io=native and cache=writeback without problems, to a CentOS7 host, live >migration aborts with an error: > >[root@source] virsh migrate Totem --live --copy-storage-all --persistent >--verbose --unsafe qemu+ssh://root@172.31.255.11/system >How about using --xml to supply the destination XML which would have io="threads" specified?>error: unsupported configuration: native I/O needs either no disk cache >or directsync cache mode, QEMU will fallback to aio=threads > >This error persists even if the VM config file is changed to use >"io=threads". Of course, the running image continue to have "io=native" >on its parameters list, but it does not really honor the "io=native" >directive, so I find strange that live migration can not proceed. I >think it is very reasonable to raise an error, but such error should not >block the live migration process. > >In short: there is some method to live migrate a running VM configured >with "io=native" (but which is really using "io=threads" internally) and >"cache=writeback"? > >Thanks. > >-- >Danti Gionatan >Supporto Tecnico >Assyoma S.r.l. - www.assyoma.it >email: g.danti@assyoma.it - info@assyoma.it >GPG public key ID: FF5F32A8 > >_______________________________________________ >libvirt-users mailing list >libvirt-users@redhat.com >https://www.redhat.com/mailman/listinfo/libvirt-users
Gionatan Danti
2017-Feb-20 15:37 UTC
Re: [libvirt-users] Libvirt behavior when mixing io=native and cache=writeback
On 20/02/2017 14:02, Martin Kletzander wrote:> On Fri, Feb 17, 2017 at 02:52:06PM +0100, Gionatan Danti wrote: > > How about using --xml to supply the destination XML which would have > io="threads" specified? >This seems to work, excellent suggestion! Thank you. -- Danti Gionatan Supporto Tecnico Assyoma S.r.l. - www.assyoma.it email: g.danti@assyoma.it - info@assyoma.it GPG public key ID: FF5F32A8