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:
silvacarloss 2024-04-11 10:16:47 -03:00
parent 969ea2db9b
commit 92d21e27b0
1 changed files with 55 additions and 0 deletions

View File

@ -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