[Spec] NFS related improvement for filesystem driver
Change-Id: Ic9b316a284641f4c5f33fe4238e08cf1d0faf2a1
This commit is contained in:
parent
3bdda0e98f
commit
158ac62736
|
@ -0,0 +1,146 @@
|
|||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
===========================================================
|
||||
Improve filesystem store driver to utilize NFS capabilities
|
||||
===========================================================
|
||||
|
||||
https://blueprints.launchpad.net/glance/+spec/improve-filesystem-driver
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
The filesystem backend of glance can be used to mount NFS share as local
|
||||
filesystem, so it does not required to store any special configs at
|
||||
glance side. Glance does not care about NFS server address or NFS share
|
||||
path at all, it just assumes that each image is stored in the local
|
||||
filesystem. The downside of this assumption is that glance does not
|
||||
aware whether NFS server is connected/available or not, NFS share
|
||||
is mounted or not and just keeps performing add/delete operations
|
||||
on local filesystem directory which later might causes problem
|
||||
in synchronization when NFS is back online.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
Introduce few configuration options for filesystem driver which will help to
|
||||
detect if the NFS share is unmounted from underneath the Glance service. We
|
||||
proposed to introduce below new configuration options for the same:
|
||||
|
||||
* 'filesystem_is_nfs_configured' - boolean, verify if NFS is configured or not
|
||||
* 'filesystem_nfs_host' - IP address of NFS server
|
||||
* 'filesystem_nfs_share_path' - Mount path of NFS mapped with local filesystem
|
||||
* 'filesystem_nfs_mount_options' - Mount options to be passed to NFS client
|
||||
* 'rootwrap_config' - To run commands as root user
|
||||
|
||||
If 'filesystem_is_nfs_configured' is set, i.e. if NFS is configured then
|
||||
deployer must specify 'filesystem_nfs_host' and 'filesystem_nfs_share_path'
|
||||
config options in glance-api.conf otherwise the respective glance store will
|
||||
be disabled and will not be used for any operation.
|
||||
|
||||
We are planning to use existing os-brick library (already used by cinder driver
|
||||
of glance_store) to create the NFS client with the help of above configuration
|
||||
options and check if NFS share is available or not during service
|
||||
initialization as well as before each image upload/import/delete operation. If
|
||||
NFS share is not available during service initialization then add and delete
|
||||
operations will be disabled but if NFS goes down afterwards we will raise
|
||||
HTTP 410 (HTTP GONE) response to the user.
|
||||
|
||||
Glance still doesn't have capability to check whether particular NFS store has
|
||||
storage capability to store any particular image beforehand. Also it does not
|
||||
have capability to verify if network failure occurs during upload/import
|
||||
operation.
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
We need to include these new configuration options in /v2/info/stores response.
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
Performance will have little impact since each add/delete operation now query
|
||||
NFS server to check whether it is reachable or not.
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
Deployer need to ensure that newly introduced configuration options are set
|
||||
in glance-api.conf file for filesystem store driver if NFS is used.
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
abhishekk
|
||||
|
||||
Other contributors:
|
||||
None
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* Introduce new configuration options
|
||||
|
||||
* Use os-brick library to detect if the NFS share is available
|
||||
|
||||
* Unit/Functional tests for coverage
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
* Unit Tests
|
||||
* Functional Tests
|
||||
* Tempest Tests
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
Need to document new behavior of filesystem driver if NFS is configured
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
* PoC - https://review.opendev.org/c/openstack/glance_store/+/917283
|
|
@ -6,7 +6,13 @@
|
|||
:glob:
|
||||
:maxdepth: 1
|
||||
|
||||
TODO: fill this in once a new approved spec is added.
|
||||
2024.2 approved specs for glance:
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
:maxdepth: 1
|
||||
|
||||
glance_store/*
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue