Fixes the OverQuota issue while managing shares. Now, when a share
manage request is received and there is no available quota to this
resource, manila will allow the quotas to be exceeded and the
administrator will need to adjust it.
Change-Id: If6edfa79965f1a0e6959b436c53a714217d23f7d
Closes-Bug: #1863298
The driver inflated total and available capacity
due to an incorrect calculation. The driver was
also ignoring the configuration option
"reserved_share_percentage" that allows
deployers to set aside space from scheduling
to prevent oversubscription.
While this bugfix may have an upgrade impact,
some things must be clarified:
- Inflating the total, free space will allow
manila to schedule workloads that may run
out of space - this may cause end user
downtime and frustration, because shares are
created (empty subvolumes on ceph occupy no
space) easily, but they could get throttled
as they start to fill up.
- CephFS shares are always thinly provisioned
but, the driver does not support oversubscription
via manila. So, real free space is what
determines capacity based scheduler decisions.
Users however expect share sizes to be honored,
and manila will allow provisioning as long
as there is free space on the cluster. This
means that Ceph cluster administrators
must manage oversubscription outside of manila
to prevent misbehavior.
Depends-On: Ic96b65d2caab788afca8bfc45575f3c05dc88008
Change-Id: I6ab157d6d099fe910ec1d90193783b55053ce8f6
Closes-Bug: #1890833
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
Share manager may raise InvalidShare because the migration phase
has already been completed. In such cases total_progress 100 can
be reported instead of raising ShareMigrationError.
Change-Id: I6e1b1abf6a2fd8c1268e446b7ee8e364bdc496bc
Closes-Bug: #1889549
The docs requirements migrated to doc/requirements.txt
we need not install things from requirements.txt.
Change-Id: Icba145059588222318ba866d6de8c4ce4df24def
Added support for Adaptive QoS policies that have been pre-created on
the storage system, with clustered ONTAP version 9.4 or higher. To use
this feature, configure a Manila share type with the extra-spec
"netapp:adaptive_qos_policy_group" and value set to the qos policy
group on the ONTAP storage system, for example:
netapp:adaptive_qos_policy_group=platform3
Note that a cluster scoped account must be used in the driver
configuration in order to use QoS in clustered ONTAP. Other notes:
-This only works for backends without share server management.
-This does not work for share replicas or share migration.
Partially-Implements: bp netapp-adaptive-qos-support
Change-Id: I3cc1d2fa2a8380ca925538cab5a3414ac2141d70
This patch adds support for share server migration between NetApp
ONTAP drivers. This operation is now supported for migrating a share
server and all its resources between two different clusters.
Share server migration relies on ONTAP features available only in
versions equal and greater than ``9.4``. Also, in order to have share
server migration working across ONTAP clusters, they must be peered in
advance.
At this moment, share server migration doesn't support migrate a share
server without disrupting the access to shares, since the export locations
are updated at the migration complete phase.
The driver doesn't support changing security services while changing the
destination share network. This functionality can be added in the future.
Co-Authored-By: Andre Beltrami <debeltrami@gmail.com>
Implements: bp netapp-share-server-migration
Depends-On: Ic0751027d2c3f1ef7ab0f7836baff3070a230cfd
Change-Id: Idfac890c034cf8cbb65abf685ab6cab5ef13a4b1
Signed-off-by: Douglas Viroel <viroel@gmail.com>
We can also condense this code a bit to allow
adding more resources who have a "host" attribute.
Closes-Bug: #1895323
Change-Id: I5b750217e019b7bc5281006f63feba8fa06db534
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
Implements the driver interface methods for enabling a share or
a share server to be migrated. They can only work across backends
that work at same volume group.
Change-Id: I813801fd64d4d605c0a4fe06c7a130ad00865b6d
Depends-On: Ic0751027d2c3f1ef7ab0f7836baff3070a230cfd
Implements: bp container-share-server-migration
Implements: bp container-share-migration
From this this change, shares and share groups can be created
upon share servers configured with specific NFS max transfer
limits. An administrator is now able to set the share type
extra-specs `netapp:udp_max_xfer_size` and
`netapp:tcp_max_xfer_size`. While creating a share server or
providing a share server to a share or a share group, the NetApp
driver will consider these extra-specs to decide whether to create
or reuse a share server.
Share server now contains the details:nfs_config field, which
stores the server NFS configuration dictionary. In case the server
does not have a NFS configuration requirement, it saves the
default NFS values, retrieved at the driver startup. A server
without details:nfs_config is considered as using the default one.
The share server manage operation was modified to also retrieve
its NFS max transfer configurations.
The share manage operation was modified to check whether the NFS
max transfer extra-specs are matching the share server configured
values.
It relies on ONTAP features available only in versions equal and
greater than ``9.4``.
Implements: bp netapp-share-server-nfs-modify
Change-Id: Iaddb771ae28ec59dd125af0bf638f591f5662bfc
Depends-On: I8daf919a764075998be95c5845807bec37104c78
When we have multiple share driver backends, create a shared instance,
and the list of'self.gluster_used_vols' will only be updated on the
current node. If the RPC request to delete the share instance is sent
to other nodes,'self.gluster_used_vols' will be Cannot find the
information of the glusterfs volume we want to delete, so we need to
update'self.gluster_used_vols' when deleting the instance
Change-Id: I14835f6c54376737b41cbf78c94908ea1befde15
Closes-Bug: #1894362
This patch improves the access rules API documentation
to include IPv6 information that was missing.
It includes a note on user guide and changes an access list
example to IPv6.
Change-Id: I5a9ff4e3c8a70cb0b14caa39f5f17740b17b719a
Closes-Bug: #1705045
Signed-off-by: Douglas Viroel <viroel@gmail.com>
This patch adds support for migration of share servers. This
migration is performed using a two-phase approach. Administrators
are now able to request the migration of a share server within and
across backends, with the possibility of chooosing a different share
network for the destination share server.
- A new field called `task_state` was added to the share server
model in order to help the administrator to track the share server
migration steps. A new field called `source_share_server_id` was
added to link destination and source share servers.
- A new periodic task was added to track migration of share servers
and its resources.
- Two new states were added: `server_migrating` and
`server_migrating_to` to represent that share migration is in
progress.
- When performing the server migration, manila will not go to the
scheduler, instead it will provide a request spec to drivers
during migration check driver call. It'll be up to the driver
validate if there is free space to handle the share server.
- A new API called `share-server-migration-check' was added to
check the feasibility of a migration, before actually triggering
the start operation.
APIImpact
DocImpact
Partially Implements: bp share-server-migration
Co-Authored-By: Andre Beltrami <debeltrami@gmail.com>
Co-Authored-By: Carlos Eduardo <ces.eduardo98@gmail.com>
Co-Authored-By: Felipe Rodrigues <felipefuty01@gmail.com>
Change-Id: Ic0751027d2c3f1ef7ab0f7836baff3070a230cfd
Signed-off-by: Douglas Viroel <viroel@gmail.com>
As per victoria cycle testing runtime and community goal[1]
we need to migrate upstream CI/CD to Ubuntu Focal(20.04).
Fixing:
- bug#1886298
Bump the lower constraints for required deps which added python3.8 support
in their later version.
Story: #2007865
Task: #40194
Depends-On: https://review.opendev.org/#/c/738328/
Closes-Bug: #1886298
Change-Id: Ib0f84e8c3815be48bca0ae8d4fe15a56b5256c20
Updated the docstrings from replica show apis.
This is a follow up change to the share replication graduation one.
Change-Id: If6a28efc5d17a0e1e433fb9b78661dbe8ab12cda
Signed-off-by: silvacarloss <ces.eduardo98@gmail.com>
This is the basic user guide for manila:
- Update examples and outputs
- Add limits and metadata examples
- Add descriptions about common concepts
including share type extra specifications
- Add contents for easy navigation
Change-Id: Idf374866a63e0da2c4af3157ac5f471af6173d5e
Closes-Bug: #1652375
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
We have a test that attempts to emulate a messaging endpoint and
fails if anything other than the endpoint's target property is
inspected. With the addition of the ping endpoint in
I51cf67e060f240e6eb82260e70a057fe599f9063, this now blows up
with the latest oslo.messaging release.
To handle this situation, our fake class just needs to also
check for the oslo_rpc_server_ping attribute.
Change-Id: I485c1724614abf03928b83280c88ffc4cdfdb1c4
Co-Authored-By: Sean McGinnis <sean.mcginnis@gmail.com>
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
When we delete the shared instance, in addition to erasing the data
in the share, we should disconnect the client's mount point to
prevent the data from being written in.
Closes-Bug: #1886010
Change-Id: I7a334fb895669cc807a288e6aefe62154a89a7e4
The code in the WsgiLimiterProxy checks the response
from the proxy to be in the range [200, 299] to
determine if an API request must be rate limited, but
the check currently corresponds to checking for <=200.
This may not have been consequential since a Proxy
is not expected to set the "X-Wait-Seconds" header in
the response when there is nothing to delay - so, even
with this incorrect check, we weren't rate limiting
incorrectly with a proxy that was setup correctly.
Change-Id: Id58a87b24b19e1d489fe808d11d59cc93df390f2
Closes-Bug: #1823750
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
From this patch, share replication feature is no longer considered
experimental. The experimental headers were removed from the share
replication APIs.
DocImpact
Partially-implements: bp graduate-share-replication-feature
Change-Id: Idf8af1c96df373fbcbb4024db490cb4dab42faf7
Clean up some tables in our documention
that still mention obsolete, removed configuration
options.
When we fix https://bugs.launchpad.net/manila/+bug/1713062
fixes of this kind will no longer be required, since the
tables in question will (again) be auto-generated from our code.
Closes-bug: #1559265
Depends-on: https://review.opendev.org/#/c/745206/
Change-Id: I1b36f8d35162a3ac326ba24852d35dbae09c3aaa
Some content in the admin docs was incomplete,
and irrelevant to administrators.
Also add notes on a couple of missing common
capabilities:
- mount_snapshot_support
- availability_zones
Partial-Bug: #1816486
Change-Id: Ie55fd5bf80ca2ebacdb652c701aa9c213f758963
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
This patch adds the behavior described in the bug #1713060
as known restriction in the generic driver.
Change-Id: Ic70fcd9f6cf159a960e0d75b4081c88af3d8973e
Closes-Bug: #1713060
The driver setup server step may require the share-type that has
originated the server creation. The type is accessible by the
method that choose whether reusing or creating a server, so it
should be accessible when creating (setup server).
It bumps the share RPC version to 1.20.
Partially-implements: bp netapp-share-server-nfs-modify
Change-Id: I8daf919a764075998be95c5845807bec37104c78
This patch add some notes regarding the use of scheduler when
creating share from snapshot in another pool or backend.
Change-Id: I8d904cb3aab4d653178948284571f471bd59ac1b
Closes-Bug: #1878244
Updates user guide documentation to provide metadata info
to an access rules. Also add two new operations for access
rule metadata: 'access-metadata set' and 'access-metadata unset'
Change-Id: Ib6008c9dd4284b8c3434ffce61fb74f1db6c3d35
Closes-Bug: #1782859
Added missing `user_id` field to the response of share create,
show and manage operations.
Change-Id: I1e7244185d44bff2df85b09c4566836a26c84376
Closes-Bug: #1821837