add volume connection information into ironic db

Registered by Satoru Moriya

This blueprint introduces following changes to Ironic DB.

- new table named volume_connectors
- new table named volume_targets
- new capabilities to figure out if node supports booting from a particular volume.

When user starts bare metal instance with cinder volume, nova orchestrates the communication with Cinder and Ironic. The work flow in boot process is like following:

- User asks Nova to boot a node with a cinder volume
- Nova calls ironic to collect iSCSI/FC initiator information -(a)
  - Ironic collect initiator information and return it to Nova
- Nova calls Cinder to attach the volume to the node
  - Cinder attaches the volume to the node and returns conenction information
    which includes target information
- Nova calls Ironic to set target information -(b)
- Nova calls Ironic to spawn a instance
  - If the node boots from volume, Ironic asks BIOS to boot from SAN
  - Ironic turns on the node

In the work flow above, Nova calls Ironic to get/set initiator/target information ((a) and (b)), but currently Ironic doesn't keep any information about volume connection. With this blueprint, Ironic can save those information and provide them to nova.

Blueprint information

Status:
Started
Approver:
None
Priority:
High
Drafter:
Satoru Moriya
Direction:
Needs approval
Assignee:
Satoru Moriya
Definition:
Review
Series goal:
Proposed for mitaka
Implementation:
Started
Milestone target:
None
Started by
Satoru Moriya

Related branches

Sprints

Whiteboard

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

Addressed by: https://review.openstack.org/200496
    Add attributes about volume conneciton into nodes table

Gerrit topic: https://review.openstack.org/#q,topic:bp/volume-connection-information,n,z

Addressed by: https://review.openstack.org/200983
    [WIP] Add volume connection information to node table

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

Addressed by: https://review.openstack.org/214584
    [WIP] Introduce VolumeConnector object

Addressed by: https://review.openstack.org/214585
    [WIP] Introduce new RPCs to support volume connector operation

Addressed by: https://review.openstack.org/214586
    [WIP] Add REST API for volume connector operation

Addressed by: https://review.openstack.org/215849
    [POC] pxe: support boot from Cinder iSCSI volume using iPXE

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.