On Mon, Oct 08, 2012 at 08:05:21PM -0600, Eric Blake wrote:
On 10/08/2012 07:51 PM, liguang wrote:
> this hook aimed at migration only, it supposed
> to be used as a helper of migrate --copy-storage-*
> features to remove the unreasonable limitation
> of pre-exist disk images at migration target.
> someone can add more functions to hook files.
NACK. Instead of writing a hook that runs outside of libvirt and has to
be installed to be of use, we should instead fix libvirt to do the file
creation itself. That is, you should be patching
src/qemu/qemu_migration.c to detect when copy-storage-* has been passed,
and to then pre-create the proper empty files and give them correct
SELinux labels.
Correctly doing auto-creation of disk images on the target host is
alot more complicated that you might assume, and the hook script
here misses alot of the hard bits
- If the migration fails, you need to clean up these disk images
you just created, because the data in them may be incomplete
or corrupt.
- If the source image is using encryption, then the target image
should use encryption too
- If the source image uses a backing file, then when incremental
copy is requested, we might need to maintain the backing store.
- if the migration API did not have either of the --copy-*
flags set we should not be doing any creation of disk images
- We need to handling of non-file based disk images, because
even block devices may be local-only.
- If the user passed a custom XML for the target that differs
from the source, this may affect decisions we need to make
above wrt encryption or backing files
Finally, we should *not* do auto-creation by default - we need to
add a new migrate flag to allow apps to turn it on, only if they
want it.
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|