Multi-Attached volume support

Registered by Akihiro Motoki

Nova and Cinder Queens release finally support multi-attached volume.

It is originally filed as bug 1751564 but it turns out we need more effort with multiple commits, so this blueprint is filed.

Blueprint information

Status:
Complete
Approver:
Akihiro Motoki
Priority:
Low
Drafter:
Vishal Manchanda
Direction:
Approved
Assignee:
Vishal Manchanda
Definition:
Approved
Series goal:
Accepted for 16.0.0-train
Implementation:
Implemented
Milestone target:
milestone icon train-3
Started by
Akihiro Motoki
Completed by
Vishal Manchanda

Whiteboard

Status as of Aug 8, 2019 -- amotoki

The main patch https://review.opendev.org/661526 has been merged.
Only remaining item looks like the following minor improvements:
- The table of "Manage Attachments" dialog from the volume table is wrong when a multi-attach volume is being attached to multiple server instances. I see a single server name twice when a volume is attached to two servers. (bug 1700034 looks like the one.)

---

Initial patch with basic support: https://review.openstack.org/#/c/547856/

This blueprint needs to be updated to follow the blueprint template https://blueprints.launchpad.net/horizon/+spec/template.

Gerrit topic: https://review.openstack.org/#q,topic:bug/1751564,n,z

Addressed by: https://review.openstack.org/547856
    Use microversion 2.60 when attaching a multiattach volume

Notes from Akihiro on what should also be addressed in this blueprint:

* Depending on qemu and libvirt versions, even though the nova API and volume multiattach attribute say the multi-attach is supported, there is a case where the multiattach cannot be used. We need to raise a clearer error message for that case. At now, "Unable to attach volume." is shown.
* multi-attachable volumes attached to other instances are not listed in "Attach Volume" form from the instance table.
* "Manage attachments" action of the volume table needs to take into account multi-attachable volumes.
* allow_multiattach attribute needs to be specified during volume creation.

-- mriedem 20180424

For anyone interested in working on this, here is a short demo on setting up a devstack environment and working with multiattach volumes: https://www.youtube.com/watch?v=hZg6wqxdEHk

Addressed by: https://review.opendev.org/661526
    Allow to select multiattach volume that has been attached

Gerrit topic: https://review.opendev.org/#/q/topic:bp/multi-attach-volume

Gerrit topic: https://review.opendev.org/#/q/topic:bug/1700034

Addressed by: https://review.opendev.org/678185
    Wrong list of attached vms are shown in manage volume attachments

(?)

Work Items

Work items:
Attach multiattach capable volumes to server using compute API version 2.60: DONE
Improve error handling for specific multiattach failures: TODO
Show all instances attached to multiattach volume in "Attach Volume" form in instance table: TODO
"Manage attachments" action of the volume table needs to take into account multiattach volumes: TODO
Add the ability to create multiattach-capable volumes during volume creation (this might not be necessary since you can already do this in Horizon today): TODO

This blueprint contains Public information 
Everyone can see this information.