XenServer (xenapi) live migration support

Registered by Vish Ishaya on 2011-10-13

libvirt/KVM has support for live-migration between hosts. XenApi support needs to be added.

This excludes block migration.

Blueprint information

Status:
Complete
Approver:
Vish Ishaya
Priority:
Medium
Drafter:
Nova Feature Parity Team
Direction:
Approved
Assignee:
John Garbutt
Definition:
Approved
Series goal:
Accepted for folsom
Implementation:
Implemented
Milestone target:
milestone icon 2012.2
Started by
John Garbutt on 2012-02-10
Completed by
John Garbutt on 2012-07-19

Related branches

Sprints

Whiteboard

Once host-aggregates is complete, we can use the XenServer/XCP pool concept, along with shared storage configured as the default storage on that pool, to allow live migration of some images.

Currently Amazon style three part images are loaded into Dom0's file system, so there would need to be lots of work to copy these between the hosts to ensure the VM can boot.

As a first step, it is best to concentrate on images without an external kernel and ramdisk.

****

Currently working in this branch:
https://github.com/citrix-openstack/nova/tree/live-migration-rebased-2

****

Here is what I plan to do next:
* Step 1: Pool-based live migration (pool/host-aggregate, requires shared storage is default SR)
* Step 2: Refactor live migration checks so libvirt checks are not in common code path
* Step 3: Add tests into Tempest for live migration

Maybe things for post-Folsom:
* Support live migration with external ram disk and kernel
* Live-migration without specifying the destination

****

Gerrit topic: https://review.openstack.org/#q,topic:bp/xenapi-live-migration,n,z

Addressed by: https://review.openstack.org/8329
    blueprint xenapi-live-migration

Addressed by: https://review.openstack.org/9513
    Partially implements blueprint xenapi-live-migration

Gerrit topic: https://review.openstack.org/#q,topic:bp/xenapi-live-block-migration,n,z

(?)

Work Items

Work items:
pool-based shared storage live-migration: DONE
refactor libvirt checks to enable the above: INPROGRESS
tempest tests: POSTPONED

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.