Attach a single volume to multiple hosts

Registered by Kurt Martin on 2013-04-23

Currently, the existing block storage (cinder) drivers allow for only a single volume to be attached to a single VM instance via iSCSI or Fibre Channel. To support a cluster, a single volume would need to be exported to multiple host. In this case vCenter will be used as an example, but any Hypervisor that supports clusters could require this functionality.

The Cinder etherpad https://etherpad.openstack.org/summit-havana-cinder-multi-attach-and-ro-volumes was present at the Havana Design summit resulted in the majority of the work to be completed in nova project. This work includes the looping mechanism that's responsible for calling the cinder drivers for each host in the cluster.

The Cinder work is not yet determined but would require minor work in tracking that a volume has multiple host attached to it. Possibly changing the database entries for what volume is attached to a single host to a list of host. More work may be required once test have been ran to verify the data flow between multiple attach points.

This blueprint in for the limited cinder work that would be required from the following Nova blueprint: https://blueprints.launchpad.net/nova/+spec/fc-support-for-vcenter-driver

Blueprint information

Status:
Complete
Approver:
Mike Perez
Priority:
High
Drafter:
Kurt Martin
Direction:
Approved
Assignee:
Walt Boring
Definition:
Approved
Series goal:
Accepted for kilo
Implementation:
Implemented
Milestone target:
milestone icon 2015.1.0
Started by
Kurt Martin on 2014-03-21
Completed by
Mike Perez on 2015-03-11

Related branches

Sprints

Whiteboard

https://wiki.openstack.org/wiki/Cinder/blueprints/multi-attach-volume

Addressed by: https://review.openstack.org/#/c/42886/
     Adding Multiple volume attaching support to Cinder. One volume can be attached several instances or hosts.

If multi-attach is determined to be extension functionality, then how to implement as an extension of the core attachment functionality? When Cinder extension framework/mechanism ready to use?

-----------------------------
The concept of a call to flag a volume as multi-attach capable (preferably at create time for those of use who do COW on the client normally, but I can hack around it if that is seen as too restrictive) seems to have vanished - this is a concept I believe we really, really need. Normal volumes should *not* be multi-attach, the opportunity for the tenant to shoot themselves in the foot is jsut too high, and the fact that attach can only happen once is baked into the current API -- DuncanT
-----------------------------
Although the concept of such an explicit choice is missing from the linked patchset, that patchset was submitted *before* it was reinforced via discussion in the Cinder meetings that such a choice was required. As such I don't believe it's been lost as much as no implementation work has been done since those discussions. We'll need to work lining up design page if we are to achieve this in Juno. -sgordon
-----------------------------
I've picked up this work and I am working on a few patches that I'll submit to nova, cinder, cinderclient as WIP prior to Atlanta. It will have the shareable flag setting at volume create time
---Walt (hemna)
-----------------------------
The Nova-spec gerrit review
https://review.openstack.org/#/c/90239/

The python-cinderclient review
https://review.openstack.org/#/c/85856/

The Nova review
https://review.openstack.org/#/c/85852/

The Cinder review
https://review.openstack.org/#/c/85847/

---Walt
----------------------------------

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

Addressed by: https://review.openstack.org/85847
    WIP Add volume multi attach support

You should not set a milestone target unless the blueprint has been properly prioritized by the project drivers.
(This is an automated message)

Gerrit topic: https://review.openstack.org/#q,topic:multi-attach-volume,n,z

Addressed by: https://review.openstack.org/154135
    Volume multi attachments

Gerrit topic: https://review.openstack.org/#q,topic:multiattach-scheduler,n,z
-------------------------
-- River Zhang-- is there any update for kilo release? this feature is not found in the kilo release notes

Addressed by: https://review.openstack.org/195471
    Storwize driver report capability for multiattach

Addressed by: https://review.openstack.org/532695
    Add the nova-multiattach job to the experimental queue

Addressed by: https://review.openstack.org/535863
    Add back support for the multiattach flag for volume create

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.