XenServer Migrations

Registered by Paul Voccio

The ability to move an instance to a new host. The source instance is torn down after the move is confirmed successful. This is not intended to be a live migration implementation as other functionality is dependent on this feature.

Blueprint information

Status:
Complete
Approver:
Rick Clark
Priority:
High
Drafter:
Paul Voccio
Direction:
Approved
Assignee:
Matt Dietz
Definition:
Approved
Series goal:
Accepted for cactus
Implementation:
Implemented
Milestone target:
None
Started by
Matt Dietz
Completed by
Thierry Carrez

Sprints

Whiteboard

Tasks:

 * Modify the API actions to accept resize and pass back appropriate status code
 * Implement Compute API endpoint with scheduler migrate cast
 * Implement Compute Manager migrate call
 * Implement migration database model and all appropriate state changes
 * XenServer Virt Driver implementation
     * Rsyncing VHD from Host to Host
         * SSH'ing into the host... :-( (can this be done another way?)
     * Rsync COW from Host to Host
     * Re-attaching existing VHD (part of restore functionality, which doesn't yet exist?)

Sequence:
Client->API: POST /action Body {'resize': { 'flavorId': # } }
API->Scheduler: cast {'migrate', source_host, flavor, inst_id}
API->Client: HTTP 202 Accepted
Scheduler->DestCompute: {SourceCompute, flavor, inst_id}
DestCompute->SourceCompute: {DestCompute, DestHost, inst_id, flavor}
SourceCompute->SourceCompute: VM Snap
SourceCompute->SourceHost: start rsync VM VHD
SourceHost->DestHost: Rsync VM VHD
SourceHost->SourceCompute: Done Rsync
SourceCompute->SourceCompute: VM Shutdown
SourceCompute->SourceHost: Start Rsync VM COW
SourceHost->DestHost: Rsync VM Cow
SourceHost->SourceCompute: Done Rsync COW
SourceCompute->DestCompute: Finish Migrate { vm_metadata }
DestCompute->DestCompute: Attach VHD, create instance
DestCompute->DestCompute: VM start, set migration state: "Verify"

Updated because I realized the scheduler shouldn't know anything about the request being made

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.