On 10/08/2012 07:51 PM, liguang wrote:
by now, if you want a non-shared migration, you have
to create same files at target as source side, which
seems intorlerable!
this issue was reported by Reinier Schoof
http://www.redhat.com/archives/libvir-list/2011-December/msg00451.html
That's only one instance; the problem itself has been known for much
longer, but few enough people use --copy-storage-* flags of migration
that no one has bothered to fix it.
By the way, the qemu developers have stated that the current
implementation of the --copy-storage flags is poorly implemented and may
even risk data loss in guests in some cases; they are working on better
more efficient ways to do this (such as NBD exports that libvirt would
hook up for the duration of the migration), but it will still be a while
before all that is ready. Libvirt, of course, will expose the same
interface as before, but mapped to the new underlying qemu support.
These patches try to let migrate --copy-storage-*
work without pre-exist disk image files at target side.
we may also hope qemu to aware of this issue
It's not qemu that has to be made aware, it is libvirt. Remember, with
libvirt, you are using sVirt to constrain the set of files that qemu can
open. Qemu already knows how to open(O_CREAT) the missing files, but if
the files don't already exist, the SELinux prevents that creation.
That's why libvirt has to be the one to pre-create the files.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org