Add lite spec for ensure shares
Shares export locations are getting outdated in case there is a configuration change in the backend. This lite-spec proposes an approach to fix the issue by offering an API that will directly call the ensure shares mechanism, which will end up updating the export location of the shares. [1] https://bugs.launchpad.net/manila/+bug/1996793 Change-Id: I9f4765315b72a0ead2435df7724392269c66bb0e Signed-off-by: silvacarloss <ces.eduardo98@gmail.com>
This commit is contained in:
parent
969ea2db9b
commit
92d21e27b0
|
@ -0,0 +1,55 @@
|
|||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
Spec Lite: Add new ensure shares API
|
||||
------------------------------------
|
||||
|
||||
:problem: When backend configuration changes, the shares' export locations
|
||||
end up outdated and we need the manila share service to be restarted
|
||||
in order to pick up the new configuration. The manila share being
|
||||
restarted can cause some downtime and slowness to complete all of the
|
||||
startup routine.
|
||||
|
||||
:solution: Ensure shares is a functionality in the manila share service that
|
||||
goes over all of the shares within that backend and checks
|
||||
and updates them in case something has changed since the last time
|
||||
it was invoked.
|
||||
We should provide an API that allows administrators to call
|
||||
the manila share's ensure shares routine, making this configuration
|
||||
update smooth and with no downtime, so that export locations can
|
||||
be re-calculated and shares updated with the newer config. Such
|
||||
operation will be asynchronous. Ensure shares can take a while to
|
||||
complete, as we will be updating all shares in the given backend. We
|
||||
should prevent this operation to be triggered in case there is
|
||||
another operation ongoing by introducing a new status to shares
|
||||
called ``updating_configuration``. When such status is set, other
|
||||
operations will be blocked by the API, and the ensure shares API
|
||||
will reject further calls until all the shares within the given
|
||||
storage backend are back to their ``available`` status. At the end
|
||||
of the ensure shares operation, the shares will have their status
|
||||
set to ``available`` again.
|
||||
|
||||
:impacts: This implementation impacts other operations that might be performed
|
||||
on the share, such as: creating backups, replicas, unmanaging,
|
||||
deleting, soft deleting and migrations. All of the mentioned
|
||||
operations will be blocked in case ensure shares is being run on the
|
||||
shares of such backend.
|
||||
Respective OpenStack CLI, OpenStack SDK, manila tempest plugin tests
|
||||
and documentation will also be updated accordingly.
|
||||
There will be no database impact, other than allowing a new status
|
||||
to be set in shares.
|
||||
|
||||
:alternative: Implementing periodic configuration checks in the drivers, which
|
||||
would end up updating the shares. However, this might run when
|
||||
we don't need it to.
|
||||
|
||||
:timeline: Include in Dalmatian release.
|
||||
|
||||
:link: https://bugs.launchpad.net/manila/+bug/1996793
|
||||
https://etherpad.opendev.org/p/caracal-ptg-manila-cephfs
|
||||
|
||||
:assignee: carloss
|
||||
|
Loading…
Reference in New Issue