Dan Smith wrote:
DL> This question comes up in other contexts than migration, too, for DL> example, when you want to start an image you just downloaded. I DL> think it would make sense if there was a common baseline in DL> libvirt that could tell you if a VM has any chance of running at DL> all - otherwise that logic will be scattered across lots of apps. The migration case is significantly more strict, though, at least for Xen. A domain image may start up on two machines that are different, but the same domain would not migrate from one to the other. On that note, how about a libvirt function that allows you to compare the capabilities of two hypervisors for varying levels of compatibility? A given implementation such as Xen could analyze the hypervisor and machine characteristics to provide a "compatible for migration" result, as well as a "can run on" result (and perhaps others). Something like the following: virIsCompatible(hyp1, hyp2, COMPAT_MIGRATION); virIsCompatible(hyp1, hyp3, COMPAT_MIGRATION | COMPAT_RUN); The former would return true (in the Xen case) only if both machines were the same bitness, processor revision, etc. The latter could, potentially, return true for a given domain across Xen and qemu, if that domain is fully-virtualized.
Couple of observations:(1) Does this depend on the application mix? For example if you're running applications which at start-up have detected some processor feature (eg. SSE), they presumably won't be too happy if migrated to an architecture which doesn't have this feature. On the other hand, if all your applications and your operating system are compiled for baseline i386, then presumably they'll run everywhere. [I don't know the answer to this - please educate me if I'm completely wrong]
(2) This doesn't need to be in libvirt, but could be in another library which is also shared between the applications that need to use it. The only thing that libvirt needs is sufficiently detailed information from virGetCapabilities.
Rich. -- Emerging Technologies, Red Hat - http://et.redhat.com/~rjones/ Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 03798903
Description: S/MIME Cryptographic Signature