Commit Graph

84 Commits

Author SHA1 Message Date
Tom Barron 90060722a9 doc migration: new directory layout
This patch introduces a new directory layout
in doc/source in conformance with the OpenStack
manuals project migration spec [1], moves the
existing content in manila/doc/source into the
new directories, and adjusts index files accordingly.

This is the first step in the migration process
as outlined in the spec.

[1] https://specs.openstack.org/openstack/docs-specs/specs/pike/os-manuals-migration.html

Partial-Bug: #1706181
Needed-By: I7924d94b82e7c8d9716bad7a219fc38c57970773
Depends-On: Ifc80fc56648cef74c85464321d1850e8c68449a0
Depends-On: Ia750cb049c0f53a234ea70ce1f2bbbb7a2aa9454
Change-Id: Ieea33262101a1d2459492c1c8aaac5fe042279f6
2017-08-24 09:16:25 -04:00
zhongjun2 236b7ad2e5 Enable IPv6 in manila(documentation)
Please read spec for design detail [1].

Add documentation for IPv6.

[1] f7202a6cfe32a057f752a4e393f848f8a0211c36

Change-Id: I27aa8e6fa30b6fffca93b580ef8fd05187a33a26
Partial-Implements: blueprint support-ipv6-access
2017-07-28 01:40:55 +00:00
Goutham Pacha Ravi 10395c9aea NetApp cDOT: Add support for QoS/throughput ceilings
ONTAP supports assigning QoS policy groups to storage
objects and workloads. [1]

Expose this functionality through the ONTAP manila
drivers (DHSS=True/False, NFS, CIFS).

The drivers will set the capability "qos" to True if the
configured credentials have access to create qos policy
groups on the configured ONTAP backend. When 'qos'
extra-spec is set in share types, scoped extra-specs can
be used to specify QoS ceiling values in iops or bps.

The drivers support the following QoS specs:
'netapp:maxiops', 'netapp:maxiopspergib', 'netapp:maxbps',
'netapp:maxbpspergib'. Policies are created on-demand
and manipulated as and when shares are manipulated
through manila.

[1] http://docs.netapp.com/ontap-9/index.jsp?topic=%2Fcom.netapp.doc.pow-perf-mon%2FGUID-38357C43-FB36-419D-B31F-6FD75B47254D.html

Implements: blueprint netapp-cdot-qos
Change-Id: I6f82c012ea60cfb1e9f82a696e2346ee95c60df3
2017-07-23 16:44:08 -04:00
Ramana Raja 9de31168d3 cephfs/driver: add nfs protocol support
Add a NFS protocol helper class that can modify exports of a Ganesha
server based on share access rule changes. This allows the manila
guests to access shares in CephFS backend using NFS protocol through
NFS-Ganesha gateways.

And while adding the driver's helper class that subclasses Ganesha
library's GaneshaNASHelper2 identified minor issues in the
Ganesha library. Fix the issues by:

* escaping special character '=' in values of Ganesha conf's string
  options, except for option CLIENTS, by enclosing the values with
  double quotes.

* add a new callback interface to GaneshaNASHelper class to
  allow driver's to perform Ganesha FSAL specific cleanup.

Partially-implements: bp cephfs-nfs-support
Depends-On: I5234bae0595efdcd30305a32bf9c121072a3625e
Change-Id: I9709d94cdb6f8d3e92b8dfc91b2ec4e154a8ec20
2017-06-19 15:38:38 +05:30
Tom Barron de44a8175d [Docs] Correct glusterfs references
glusterfs is an open source community supported distributed
filesystem so remove references to *Red Hat* GlusterFS since
that phrase gives the impression that the glusterfs drivers
are scoped only to the Red Hat Gluster Storage product.

TrivialFix

Change-Id: I373cbc75700cf0d8cc252500ebb7af0b0893497b
2017-06-13 12:22:54 +00:00
Ramana Raja 23075e6c0b Refactor and rename CephFSNativeDriver
Refactor CephFSNativeDriver as a driver class using protocol helper
classes. The helper classes would handle protocol specific driver
actions such as controlling access and fetching share's export
locations. For now, the driver uses a protocol helper to support
CephFS's native protocol. The driver can be made to support other
NAS protocols later on by adding protocol helper classes.

Since the driver would not just support the native protocol
rename the driver's file name and its driver class as
`driver` and `CephFSDriver` respectively. The driver would by
default support the native protocol, and can be referred to
by its previous class name and module name.

DocImpact

Partially-impelements: blueprint cephfs-nfs-support

Change-Id: I8a33be1df4864131435b794e791cc2d651fbe741
2017-04-18 10:45:25 +05:30
tpsilva 1f1932eb92 Add mountable snapshots support to HNAS driver
This patch adds Mountable Snapshots support in HNAS driver. Also,
updates feature table in share_back_ends_feature_support_mapping.rst
adding mountable snapshot column.

Implements: bp hnas-mountable-snapshots
Change-Id: I5e2294d218595a7ef28261333ab34d8bcde94ff1
2017-01-25 15:19:34 -02:00
Jenkins 5ee192df6d Merge "NetApp: Support share revert to snapshot" 2017-01-24 20:43:27 +00:00
Jenkins 83b8f19851 Merge "VMAX manila plugin - Support for VMAX in Manila" 2017-01-24 18:08:38 +00:00
xing-yang 1b0042f052 VMAX manila plugin - Support for VMAX in Manila
VMAX plugin is the plugin which manages the VMAX to
provide shared filesystems using the Dell EMC manila
driver framework.

DocImpact
Change-Id: I0b69f013443217f2053bbbfdec36dff226664b34
Implements: blueprint vmax-manila-support
2017-01-24 13:34:00 +00:00
Clinton Knight 794e9a74fc NetApp: Support share revert to snapshot
This commit adds support for the revert-to-snapshot feature to
the NetApp cDOT drivers for both normal and replicated shares.

Implements: blueprint netapp-cdot-share-revert-to-snapshot
Change-Id: Ia939eba03b3db9cbba0cc6c16184578e8c8893d1
2017-01-23 21:49:23 +00:00
Jenkins f4aed13f86 Merge "Implement Revert-to-snapshot in HNAS Driver" 2017-01-23 12:04:24 +00:00
Pony Chou cf182947b7 Add QNAP Manila Driver
This driver supports below features:
 - Create NFS Share
 - Delete NFS Share
 - Allow NFS Share access (IP access type)
 - Deny NFS Share access
 - Create snapshot
 - Delete snapshot
 - Create share from snapshot
 - Extend share
 - Manage share
 - Unmanage share
 - Manage snapshot
 - Unmanage snapshot

DocImpact
Implements: blueprint qnap-manila-driver

Change-Id: I4e4278a870af7be1c026385b85ea309b2d1773a9
2017-01-21 21:46:15 +08:00
Rodrigo Barbieri cf9a5efbef Implement Revert-to-snapshot in HNAS Driver
This change adds revert-to-snapshot functionality to the
HNAS driver.

Implements: blueprint hnas-revert-to-snapshot
Change-Id: I3f54edfbd272333b70a27becf469cd09f36e8371
2017-01-20 16:30:26 -02:00
Clinton Knight d4a379d083 Implement share revert to snapshot
This commit adds the ability for Manila to revert a
share to the latest available snapshot.

The feature is implemented in the LVM driver, for
testing purposes.

APIImpact
DocImpact
Co-Authored-By: Ben Swartzlander <ben@swartzlander.org>
Co-Authored-By: Andrew Kerr <andrew.kerr@netapp.com>
Implements: blueprint manila-share-revert-to-snapshot
Change-Id: Id497e13070e0003db2db951526a52de6c2182cca
2017-01-17 15:06:01 -05:00
Vitaliy Levitksi 306c79fd02 Add MapR-FS native driver
Implement new manila driver for MapR-FS distributed file system

DocImpact

Co-Authored-By: Grigoriy Rozhkov <groghkov@maprtech.com>

Implements: blueprint maprfs-driver

Change-Id: I6073edf76fbf11bf9d3c521129c377c96e57a21
2017-01-12 18:05:39 +02:00
digvijay2016 fb4b0b86e9 Add support for manage/unmanage in GPFS driver
Added support for manage/unmanage in GPFS NFS driver.
This patch added functions that allow share on Spectrum Scale
node to be managed by OpenStack if existing fileset is an
independent fileset and doesn't have any NFS export
over the fileset path. Also, share can be unmanaged from
OpenStack but still left in Spectrum Scale cluster.

Implements: blueprint gpfs-manage-support

Change-Id: I9134408b59c30ac4bc593f287294741f6e996136
2016-12-28 15:06:42 +05:30
Clinton Knight 0d6db3588c Add create_share_from_snapshot_support extra spec
The snapshot_support extra spec has always meant two
things: a driver can take snapshots and create shares
from snapshots. As we add alternate snapshot semantics,
it is likely that some drivers will want to support
snapshots and some of the new semantics while being
unable to create new shares from snapshots.

This work adds a new extra spec,
create_share_from_snapshot_support, that removes the
overloading on snapshot_support. It also makes the
existing snapshot_support extra spec optional,
allowing admins to create types without setting
snapshot_support; shares created with such types
will not support snapshots.

APIImpact
DocImpact

Co-Authored-By: Goutham Pacha Ravi <gouthamr@netapp.com>
Implements: blueprint add-create-share-from-snapshot-extra-spec
Change-Id: Ib0ad5fbfdf6297665c208149b08c8d21b3c232be
2016-12-21 09:57:08 -05:00
Alyson Rosa e02e16ea42 Add support for manage/unmanage snapshots in HNAS driver
Adding support for manage/unmanage snapshots in Hitachi HNAS
driver. In order to manage a snapshot, the admin should provide the
snapshot size in "--driver-options" parameter.

Also, updating tempest tests for manage/unmanage snapshots to include
the required driver option.

DocImpact
Implements: blueprint hnas-manage-unmanage-snapshot-support

Change-Id: I93e56dda5cbe8d3dbe142d773f93d03a0c126d2f
2016-12-06 15:01:14 -02:00
Alexey Khodos 1fd7e88191 Nexenta: adding share drivers for NexentaStor
Share drivers to support NexentaStor4 and NexentaStor5 via
NFS protocol. Supports all minimal required features.

Implements: blueprint nexenta-manila-driver

DocImpact

Change-Id: Ib8b8525397626162968458ec837f9239ff5dbb2b
2016-09-01 18:06:14 +03:00
Jenkins 04d8ed79a1 Merge "Add dedupe report in HNAS driver" 2016-08-19 05:43:52 +00:00
Jenkins 0a87493573 Merge "Add Hitachi HSP driver" 2016-08-16 17:15:28 +00:00
tpsilva 2a7d480d01 Add Hitachi HSP driver
This patch adds the Hitachi HSP driver.

Co-Authored-By: Marcus V R Nascimento <marcusvrn@gmail.com>

DocImpact
Implements: blueprint hsp-driver
Change-Id: Ie3028cbff56873721dc51ff4d7fccf7fb7e99611
2016-08-16 08:44:27 -03:00
Jenkins 2f047eb25a Merge "Container driver" 2016-08-15 21:04:11 +00:00
Alexey Ovchinnikov ddf960a2d9 Container driver
This driver exploits a Docker container as a share server instead
of a virtual machine. The container acts as a CIFS server
and shares logical volume attached to it. The volume gets created
simultaneously to the container on a host in a volume group
specified by the user.

DocImpact
Change-Id: I711813a2022d765ab7a70ed670e34f68f9cf1399
Implements: blueprint manila-container-driver
2016-08-15 16:30:23 +03:00
Jenkins 4a9a07ea9f Merge "cephfs_native: add read-only share support" 2016-08-12 05:58:51 +00:00
Alyson Rosa 9a178f5254 Add dedupe report in HNAS driver
HNAS backend has support for enabling dedupe in file systems. This
commit adds a report for this capability in Manila HNAS driver.

DocImpact
Closes-Bug: #1610956
Change-Id: I6f83da1e51cfdcd8d20b607619c131d13f9e513f
2016-08-11 09:39:33 -03:00
Ramana Raja 0f596c55df cephfs_native: add read-only share support
Add read-only share support for cephfs_native driver
using CephFSVolumeClient's enhanced authorize() interface.
Ensure backwards compatibility with older version of
CephFSVolumeClient by checking it's version attribute, or
lack thereof.

The support for read-only authorize() was added in
CephFSVolumeClient with the following commits in Ceph:

Master branch:
https://github.com/ceph/ceph/commit/011ea5e7fb35ee0

Jewel branch:
https://github.com/ceph/ceph/commit/2cd3ed8a59786be

Change-Id: I29eb45104c04da1706c3978441babe9c4a52ca02
DocImpact
Partially-Implements: bp cephfs-native-driver-enhancements
2016-08-11 14:58:47 +05:30
Jenkins bbe36a9ec1 Merge "Add support for CIFS shares in HNAS driver" 2016-08-10 03:30:51 +00:00
Alyson Rosa dfb9e587b1 Add support for CIFS shares in HNAS driver
Updating Manila Hitachi HNAS driver to support shares using CIFS protocol.
It accepts 'user' as access type and both rw and ro as access level.

Change-Id: I18fd5afcea6f91d870bbfc256c71a92aad014c91
Implements: blueprint hnas-driver-cifs-support
2016-08-09 10:11:30 -03:00
Jay Xu 86383ff900 Add EMC Unity Driver for Manila
EMC Unity arrays are capable of support manila.
Add a new Unity plugin in manila which allows user to create NFS/CIFS
share with a Unity backend.

The plugin should support following APIs:

* connect: Connect to the Unity Storage.
* check_for_setup_error: No implementation.
* create_share: Create a share and export it based on the protocol used
  (NFS or CIFS).
* create_share_from_snapshot: Create a share from a snapshot - clone a
  snapshot.
* delete_share: Delete a share.
* extend_share: Extend the maximum size of a share.
* create_snapshot: Create a snapshot for the specified share.
* delete_snapshot: Delete the snapshot of the share.
* allow_access: Allow access of a user/host to a share.
* deny_access: Remove the access of a user/host to the share.
* ensure_share: Check whether share exists or not.
* update_share_stats: Retrieve share related statistics from Unity.
* get_network_allocatins_number: Returns number of network allocations
  for creating VIFs.
* setup_server: Set up and configures share server with given network
  parameters.
* teardown_server: Tear down the share server.

DocImpact
Co-Authored-By: Cedric Zhuang <cedric.zhuang@emc.com>
Change-Id: Ic520539341fa19ec5c6c6b85c3c1dcecf70e5141
Implements: blueprint emc-unity-manila-support
2016-07-28 23:13:29 -07:00
Valeriy Ponomaryov d953baefcb [ZFSonLinux] Add 'manage snapshot' feature support
Implement 'manage snapshot' feature in ZFSonLinux share driver.

Prerequisites:
- snapshot being managed should exist.

Details:
- snapshot being managed will be renamed by share driver based on
  taken ID.
- size for managed snapshot will be taken either from
  REST API (--driver_options size=5) or
  from its "used" attribute.

Implements BP zfsonlinux-manage-snapshot
DocImpact

Change-Id: If240ecde5676c334d39faaccd5703e93544aaa06
Depends-On: Ifc762a882a78159adacfe168a4edbe824178301a
2016-07-27 10:51:31 +03:00
Jenkins 71a720e466 Merge "[ZFSonLinux] Add 'manage share' feature support" 2016-07-26 20:08:29 +00:00
Jenkins 4e9f52022f Merge "Add share manage/unmanage of Oracle ZFSSA driver" 2016-07-26 18:11:19 +00:00
Diem Tran b0437670f2 Add share manage/unmanage of Oracle ZFSSA driver
- Manage share: ask Manila to take control of an existing ZFSSA share
not managed by Manila driver. Current share size will be rounded up
to the nearest whole GB value.
- Unmanage share: ask Manila to release control of a ZFSSA share
managed by the driver.

Change-Id: I0d4a46211dfd15cb7a261eddfa8c14be26adcfc3
Implements: blueprint oracle-zfssa-share-manage
2016-07-05 15:58:18 -04:00
Valeriy Ponomaryov f284db4e07 [ZFSonLinux] Add 'manage share' feature support
Implement 'manage share' feature in ZFSonLinux share driver.

Prerequisites:
- share being managed should exist.
- share being managed should not be part of any replication relations.
- share being managed should not have redefined mountpoint.

Details:
- share being managed will be renamed by share driver based on taken ID.
- share being managed will get "quota" attribute set based on provided
  value in API (--driver_options size=5) or it will set quota
  to nearest bigger rounded integer of already
  used space (2,4 -> 3, 3.6 -> 4).

Implements blueprint zfsonlinux-manage-share
DocImpact

Change-Id: I03eab5e02835fe660dde0020601c02c0136bddeb
2016-07-04 13:26:57 +03:00
Clinton Knight 4bac8b64e0 Manage / unmanage snapshot in NetApp cDOT drivers
With snapshot manage / unmanage in Manila core, we can
support that in the NetApp single-SVM driver.

Implements: blueprint netapp-cdot-snapshot-manage-unmanage
Change-Id: I7c6c005fb3fd8613da9e9ac04b9dd832781e35ca
2016-06-30 16:25:14 +00:00
Dustin Schoenbrun a5b5c05e13 Add common capabilities matrix to devref
Add a new matrix to the share backends feature support mapping page
in the developer reference to indicate which backends support which
common capabilities, such as QoS and Thin Provisioning.

The Driver Handles Share Servers capabilities I retrieved from the
share creation column earlier in the same page. Other common
capabilities are currently filled in with information gathered from
the _update_share_stats() methods for each driver.

Change-Id: I5dfff0a62c91a047fc142018ece5f65edab3866a
2016-03-24 11:46:30 -04:00
Alexey Ovchinnikov 5dfbef4f95 Revert "LXC/LXD driver"
This reverts commit 466a19f18f.
Also this reverts commit 4f74b224fa.

Manila has decided to remove LXD from the Mitaka release.
http://lists.openstack.org/pipermail/openstack-dev/2016-March/089522.html

Change-Id: I3c4b15e8c9d92c874be754205b0b981151809cc1
2016-03-16 18:48:17 +04:00
Abhilash Divakaran a8c5b41ab4 Add share driver for Tegile IntelliFlash Arrays
The Tegile driver will support the NAS shares and it will
include the minimum set of features.
[Supported Protocols]
 - CIFS, NFS
The driver supports Manila driver mode
(driver_handles_share_servers = False).

Tegile has setup a CI. It will report as "Tegile Storage CI".

DocImpact
Implements: blueprint tegile-share-driver
Change-Id: I2e9154454e2a34f9a0653a173846ce554026f33b
2016-03-03 01:13:54 -08:00
Igor Malinovskiy 4f74b224fa LXC/LXD driver
This driver exploits a container as a share server instead
of a virtual machine. The container acts as a NFS/CIFS server
and shares logical volume attached to it. The volume gets created
simultaneously to the container  on a host in a volume group
specified by the user. Currently NFS is limited to v3 since the
only userspace NFS server that works in a container out of the box
seems to be unfs3. Later it will be replaced with nfs-ganesha.

Co-Authored-By: Alexey Ovchinnikov <aovchinnikov@mirantis.com>

Implements: blueprint lxc-driver

Depends-On: Ib1896997f2e7a505b5bf8ec0c9e5ee35942f79a6

Change-Id: Iea73bd34b94919d77ebe17cf054dde1f580384be
2016-03-02 18:55:22 +04:00
John Spray 9ff0d1312e Add Ceph Native driver
This driver enables use of the Ceph filesystem for
Manila shares.  Clients require a native CephFS
client to access the share.  The interface
to Ceph is CephFSVolumeClient, included in
the 'Jewel' Ceph release and later.

APIImpact
The API microversion is bumped to 2.13 to add a
new access type, cephx, supported by the driver.

Co-Authored-By: Ramana Raja <rraja@redhat.com>

Implements: blueprint cephfs-driver
Change-Id: I33801215f64eacb9dade4d92f11f659173abb7f5
2016-03-01 20:30:18 +00:00
Jenkins afed146346 Merge "Add ZFSonLinux share driver" 2016-03-01 19:39:25 +00:00
Valeriy Ponomaryov 312cd3321a Add ZFSonLinux share driver
Add support for ZFS (on Linux) filesystem.

Following features are supported:
- Create/delete share
- Create/delete snapshot
- Create share from snapshot
- Extend/shrink share
- Update NFS IP-based access rules using new interface.
(SMB support planned for future).
- create/delete/update/promote share replica

ZFS-related notes:
- Any amount of ZFS zpools can be used by share driver.
- Allowed to configure default options for ZFS datasets that are used
for share creation.
- Any amount of nested datasets is allowed to be used.
- All share replicas are read-only.
- All share replicas are synched periodically, not continuously.
So, status 'in_sync' means latest sync was successful.
Time range between syncs equals to value of
config global opt 'replica_state_update_interval'.

Driver-related notes:
- Able to use remote ZFSonLinux storage as well as local.

Other made changes:
- updated driver private data DB methods removing filtering by host
  as redundant operation. Replication requires some common metadata
  storage and filtering by host breaks it. It is safe to do so, because
  if driver gets some ID of entity then it is allowed to read its info
  too.

Implements bp zfsonlinux-driver
DocImpact
Change-Id: I3ddd3767184e4843037de0ac75ff18dce709b6dc
2016-03-01 13:34:18 +02:00
Diem Tran 7fc9270cdc Add share resize support to Oracle ZFSSA driver
This change adds share shrink and extend features to Oracle ZFSSA
Manila driver.

Change-Id: I09cd9bd3002007bd30e6a2e22bfd3f3f711b2bd9
Implements: blueprint oracle-zfssa-share-shrink-extend
2016-02-29 12:35:07 -05:00
Xing Yang c91f27f4e1 Manage and unmanage snapshot
Add APIs to support manage and unmanage share snapshots.
Also add support in the Generic driver.
This only supports for DHSS=False driver mode.

Add provider_location column to the share_snapshots table
to save data used to identify the snapshot on the backend.

Also need to bump microversion.

APIImpact
DocImpact
Change-Id: I87a066173c85d969607d132accd9f0e9bd49c235
Implements: blueprint manage-unmanage-snapshot
2016-02-18 04:09:05 -05:00
Shaun Edwards 5b6d52487d EMC Isilon Driver Support For CIFS Read-Only Share
Added support for read-only shares to the CIFS protocol in the Isilon
driver.

Change-Id: I0dacb5538071af31cd07a187fead1b34e19db58d
Implements: blueprint emc-isilon-driver-readonly-share
2016-02-23 16:42:58 +00:00
Shaun Edwards 20efd1046d EMC Isilon Driver Support For NFS Read-Only Share
Added support for read-only shares to the NFS protocol in the Isilon
driver. Fixed parameters in the exceptions.

Change-Id: Idf8b8772e30d55667317de9f50117968d34ee877
Implements: blueprint emc-isilon-driver-readonly-share
2016-02-12 07:28:05 -08:00
tpsilva 807fa36eb6 Hitachi HNAS driver share shrink
This patch adds the share shrink feature to Hitachi HNAS driver.

Change-Id: I6d0318228955e0be95c650c9db331d383c2d0a05
Implements: blueprint hitachi-hnas-driver-share-shrink
2016-02-08 11:39:07 -02:00
Jenkins 7ec0d3fd21 Merge "Huawei: Create share from snapshot support in Huawei driver" 2016-02-07 08:37:11 +00:00