Support migration and evacuation for Ironic driver

Registered by Tang Chen

This blueprint has been superseded. See the newer blueprint "Ironic: Instance switchover" for updated plans.

Currently, migrate() and evacuate() APIs are not supported in ironic driver.
This BP aims at implementing these two APIs in ironic driver.

IIUC, for VMs (such as libvirt driver),
- migrate: Migrate a VM from compute node A to compute node B.
- evacuate: Migrate all VMs on compute node A to other compute nodes.

So, migrate is an operation to a VM, and evacuate is an operation to a compute node.

To baremetals, there are two things we need to handle:
1. When a baremetal is broken, migrate it to another backup baremetal. This means use another baremetal to replace it. (migrate)
2. When a compute node is broken, evacuate all instances on that node to another compute node. (evacuate)

Correspondingly, two steps to implement these features mentioned above:
step-1. Add baremetal migration feature into nova to integrate the Ironic BP[1],
step-2. Improve the nova-evacuate to evacuate the failed baremetal compute node,
              it will be a long term plan.

This BP depends on the following Ironic BP.
[1]https://blueprints.launchpad.net/ironic/+spec/bare-metal-node-n+1-redundancy

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Tang Chen
Direction:
Needs approval
Assignee:
xiexs
Definition:
Superseded
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Matt Riedemann

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/below,n,z

Addressed by: https://review.openstack.org/261812
    Baremetal migration and evacuation

Gerrit topic: https://review.openstack.org/#q,topic:bp/s,n,z

Addressed by: https://review.openstack.org/274988
    Baremetal migration

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

Addressed by: https://review.openstack.org/449155
    Ironic: Cold migration support

Addressed by: https://review.openstack.org/500677
    [WIP] ironic: Support cold migration

This BP is focusing on migration on the description.
There is already ironic compute host HA for a case where compute host goes down.
-- 20171011 hshiina

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.