Comment 0 for bug 1526231

Vladyslav Drok (vdrok) wrote :

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.