On 9/1/2016 4:09 PM, Ildiko Vancsa wrote:
Hi All,
As we skipped a few meetings and we also reached the N-3 milestone this week I
would like to summarise where we are currently with our plans.
At the beginning of the Newton cycle we decided to refactor the Cinder API
around attach and detach to make Cinder more a standalone module and also to
simplify the interaction between Nova and Cinder. The changes in high level are
the following:
* Have one ‘create_attachment' call that will contain the functionality of the
current ‘initialize_connection’ and ‘attach’ calls
* Have one ‘remove_attachment’ call for detach
* There are further plans to extend the Cinder API to check whether it is safe
to remove a connection to prepare for the multi-attach use case.
The code is already on its way [1][2][3], we plan to merge the Cinder side of
changes as an experimental API as soon as possible. We can then continue to
test the changes on the Nova side. When the Cinder API changes are stable we
will add proper API microversioning to enable Nova to pick it up the right way
and use the new API with support for backward compatibility.
This work should provide the benefit of removing workarounds from the Nova code
and make those parts more readable and easier to maintain. We will also get
very close to support multi-attach in both modules when we progress with the
above listed changes.
We started some work to reduce race conditions and remove a few workarounds
from mostly the Nova code base as well during this cycle.
We had an attempt to remove ‘check_attach’ from the Nova code, as this check
should be purely Cinder’s responsibility. The call is partially removed [4] and
there’s one patch up for review to finish that work item [5]. The difficulty
with this one is that we have one flow that missed the ‘reserve_volume’ call
and therefore also the required checks on Cinder side. This is corrected in the
patch up for review [5], it needs some more eyes on it to ensure we have the
proper fix.
I haven't gone through the new experimental APIs proposed in cinder but
while Walter was working on [4] we realized a gap in the os-reserve call
in that we should pass the availability zone since nova still has to
check that separately:
https://github.com/openstack/nova/blob/96926a8ee182550391c30b16b410da7f598c0f39/nova/volume/cinder.py#L290
That seems like something we could do separately early in ocata with a
microversion on the os-reserve API to take an optional availability_zone
argument and fail if it doesn't match the AZ for the volume being reserved.
We also started to look into how to remove the unnecessary
‘initialize_connection’ calls [6] from the Nova code. We need more review
attention on this one also as when we will have the new calls in the Cinder API
we need to rethink some of the current workarounds to make things like live
migration work with the new setup.
We still have the etherpad for this work up [7], I will add the links in this
mail to the top for better readability.
We will have the next meeting at the regular slot we use next Monday to check
on the status and decide on what we can make happen before the Summit and also
start to plan a little bit for the event itself as well. The meeting is on
#openstack-meeting-cp, on Monday (Sept. 5) 1700UTC.
If you have any questions or comments please respond to this thread or join the
meeting next Monday.
Thanks and Best Regards,
Ildikó
[1] https://review.openstack.org/#/c/327408/
[2] https://review.openstack.org/#/c/327409/
[3] https://review.openstack.org/#/c/330285/
[4] https://review.openstack.org/#/c/315789/
[5] https://review.openstack.org/#/c/335358/
[6] https://review.openstack.org/#/c/312773/
[7] https://etherpad.openstack.org/p/cinder-nova-api-changes
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [email protected]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
--
Thanks,
Matt Riedemann
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [email protected]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev