Add support of cinder's new attachment API

Add spec for cinder's new attachment API support and multiattach handling.

Change-Id: Ic5247dd0abf65d93fb1119efd9db06923cc2539e
This commit is contained in:
whoami-rajat 2021-04-22 05:34:19 -04:00
parent c33e771b4e
commit 8503faee7c
1 changed files with 142 additions and 0 deletions

View File

@ -0,0 +1,142 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
=======================================================
Add new cinder's attachment API and multiattach support
=======================================================
https://blueprints.launchpad.net/glance-store/+spec/attachment-api-and-multiattach-support
Make glance cinder store use cinder's new attachment APIs for image operations.
Problem description
===================
Currently when we make simultaneous requests to glance for using the image to
create multiple volumes or launch multiple instances, the same image volume needs
to be attached multiple times to serve the requests and since the support doesn't
exist in glance cinder store, some of the requests fails.
Proposed change
===============
Cinder's new attachment API was introduced in microversion 3.27 which should be
supported by cinder and is required to pass while making calls through cinderclient.
There were 2 new methods introduced, attachment_complete in MV 3.44 and passing
attach mode during attachment_create in MV 3.54 which are also required and hence
we will be using MV 3.54 for attachment related operations.
All these changes are required prior to adding the multiattach handling.
This should be a 2 stage change:
1) Replace existing API calls to cinder for attachment with new attachment API
calls
2) Add multiattach handling for glance cinder usecase
Alternatives
------------
Use cinder's image volume cache that will clone the first bootable volume created
from image and subsequent requests will result in cinder's clone operation instead
of downloading the image from glance.
Data model impact
-----------------
None
REST API impact
---------------
None
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
None
Performance Impact
------------------
The current number of calls to cinder will be reduced resulting in performance
improvement. Example: initialize_connection and attach calls will be replaced
by attachment_update and similarly terminate_connection and detach calls will
be replaced by attachment_delete.
Other deployer impact
---------------------
None
Developer impact
----------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
* whoami-rajat
Other contributors:
None
Reviewers
---------
Core reviewer(s):
* abhishek-kekane
* jokke
* rosmaita
* smcginnis
Work Items
----------
* Replace existing calls to old attachment methods with the new attachment API
calls
* Modify cinderclient calls to include microversion
* Add code for multiattach handling
* Add appropriate unit tests
Dependencies
============
None
Testing
=======
Unit tests to have the code coverage and the new attachment code path will
be tested with the glance cinder tempest job running on glance gate.
Documentation Impact
====================
None
References
==========
None