Xenapi-live-migration


 * Launchpad Entry: NovaSpec:xenapi-live-migration
 * Created: 08 June 2012
 * Contributors: John Garbutt

Summary
We need to support live migration in the XenAPI driver.

This only deals with live migration using shared storage managed by the XenServer pool. It also does not work when using external ramdisk and kernel

Release Note
Added support for live migration in XenAPI.

For shared storage based live migration, you need to ensure your source and destination host are part of the same aggregate, are configured to use the pool default SR, and that default SR is a shared storage system, similar to NFS.

For more documentation see: http://wiki.openstack.org/XenServer/LiveMigration

Rationale
Expose Live Migration using XenAPI, in a similar way to current LibVirt support.

User stories
User is running a VM (w

Assumptions

 * Host Aggregates allows you to create a XenServer pool.
 * Pool is using shared storage

Design
Make use of the XenAPI pool_migrate call to migrate VMs within a XenServer pool, when they are on shared storage.

UI Changes
Same as libvirt

Code Changes
Big code changes are:
 * implement live-migration calls in XenAPI driver
 * refactor scheduler code so it only has checks common to XenAPI and LibVirt
 * above involves the driver making rpc calls to other drivers (just as in XenAPI layer when creating XenServer pools)
 * above involves introducing the rpc call "check_can_live_migrate" to replace the calls the scheduler would make to do things like "compare_cpu" and "check_shared_storage"

Migration
None.

Test/Demo Plan

 * Manual test of KVM to ensure no regression
 * Manual test with XenServer 6.0 to check XenAPI implementation
 * Defer tempest tests until using Xen Storage Motion

Unresolved issues

 * ramdisk + kernel
 * better error reporting
 * opened another blueprint for Xen Stroage Motion
 * will open another blueprint to look at migrate vs live-migrate