[openstack-dev] [Nova] attaching and detaching volumes in the API

Chris Friesen chris.friesen at windriver.com
Fri Nov 6 04:49:11 UTC 2015


On 11/05/2015 12:13 PM, Murray, Paul (HP Cloud) wrote:

> As part of this spec: https://review.openstack.org/#/c/221732/
>
> I want to attach/detach volumes (and so manipulate block device mappings) when
> an instance is not on any compute node (actually when in shelved). Normally this
> happens in a function on the compute manager synchronized on the instance uuid.
> When an instance is in the shelved_offloaded state it is not on a compute host,
> so the operations have to be done at the API (an existing example is when the
> instance deleted in this state – the cleanup is done in the API but is not
> synchronized in this case).
>
> One option I can see is using tack states, using expected_task_state parameter
> in instance.save() to control state transitions. In the API this makes sense as
> the calls will be synchronous so if an operation cannot be done it can be
> reported back to the user in an error return. I’m sure there must be some other
> options.

Whatever you do requires a single synchronization point.  If we can't use 
nova-compute, the only other option is the database.   (Since we don't yet have 
a DLM.)

Chris




More information about the OpenStack-dev mailing list