diff --git a/README.md b/README.md index 0420d3b..d281a9a 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The plugin configures NetApp backend for Cinder using multibackend feature. The plugin support following storage families: - Clustered Data ONTAP/ONTAP 9 - - Data ONTAP 7-Mode + - SolidFire - E-Series/EF-Series This repo contains all necessary files to build Cinder NetApp Fuel plugin. @@ -18,15 +18,23 @@ This repo contains all necessary files to build Cinder NetApp Fuel plugin. Requirements ------------ -| Requirement | Version/Comment | -|------------------------------------------------------------------------------------------|------------------------------------------------------------------------| -| Mirantis Openstack compatibility | 9.0 | -| Netapp filer or appliance is reachable via one of the Mirantis OpenStack networks | Data ONTAP or E-Series/EF-Series storage family with NFS\iSCSI enabled | +| Requirement | Version/Comment | +|------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------| +| Mirantis Openstack compatibility | 9.0, 9.1 | +| Netapp filer or appliance is reachable via one of the Mirantis OpenStack networks | Clustered Data ONTAP, SolidFire or E-Series/EF-Series storage family with NFS\iSCSI enabled | Release Notes ------------- +**6.0.0** + +* The number of simultaneously supported devices has been increased up to 3 NetApp devices + +* Added SolidFire suport + +* ONTAP 7-Mode support has been disabled + **5.0.0** * Added MOS 9.0 support diff --git a/doc/source/appendix.rst b/doc/source/appendix.rst index 80b4d8b..8ba14ec 100644 --- a/doc/source/appendix.rst +++ b/doc/source/appendix.rst @@ -3,6 +3,10 @@ Appendix ======== #. `Cinder NetApp driver configuration `_ +#. `Cinder SolidFire driver configuration `_ + #. `Data ONTAP documentation `_ #. `E-Series/EF-Series documentation `_ + +#. `SolidFire documentation `_ diff --git a/doc/source/conf.py b/doc/source/conf.py index 40d48e8..81d087a 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -54,9 +54,9 @@ author = u'Mirantis Inc.' # built documents. # # The short X.Y version. -version = '5.0' +version = '6.0' # The full version, including alpha/beta/rc tags. -release = '5.0-5.0.0-1' +release = '6.0-6.0.0-1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/source/description.rst b/doc/source/description.rst index 148d6b0..0e35f6b 100644 --- a/doc/source/description.rst +++ b/doc/source/description.rst @@ -2,12 +2,12 @@ NetApp plugin ============= -The plugin provides support of ``Clustered Data ONTAP/ONTAP 9``, ``Data ONTAP 7-Mode`` and ``E-series`` storage clusters to Cinder. -The plugin uses NetApp unified driver, the latter is a +The plugin provides support of ``Clustered Data ONTAP/ONTAP 9``, ``SolidFire`` and ``E/EF-series`` storage clusters to Cinder. +The plugin uses NetApp unified and/or SolidFire drivers. The NetApp unified driver is a block storage driver that supports multiple storage families and protocols. A storage family corresponds to storage systems built on different NetApp technologies -such as Clustered Data ONTAP/ONTAP 9, Data ONTAP operating in 7-Mode, -and E-Series. +such as Clustered Data ONTAP/ONTAP 9, SolidFire, +and E/EF-Series. The storage protocol refers to the protocol used to initiate data storage and access operations on those storage systems like iSCSI and NFS. The NetApp unified driver can be configured to provision and manage OpenStack volumes @@ -19,8 +19,8 @@ storage families and protocols. Features -------- +* Support for using up to 3 devices simultaneously * Clustered Data ONTAP/ONTAP 9 as a backend for Cinder with NFS or iSCSI data-transfer protocols -* Data ONTAP 7-Mode as a backend for Cinder with NFS or iSCSI data-transfer protocols * E-Series or EF-Series as a backend for Cinder with iSCSI data-transfer protocol * Supports Cinder multibackend * Supports all configuration options of NetApp Cinder driver for Mitaka @@ -31,10 +31,10 @@ Requirements ======================= ================================= Requirement Version/Comment ======================= ================================= -Fuel 9.0 +Fuel 9.0, 9.1 NetApp Storage System Clustered Data ONTAP/ONTAP 9 - Data ONTAP 7-Mode + SolidFire E-Series or EF-Series ======================= ================================= @@ -42,22 +42,25 @@ NetApp Storage System Clustered Data ONTAP/ONTAP 9 Prerequisites ------------- -* If you plan to use the plugin with **Data ONTAP 7-Mode** or **Clustered Data ONTAP/ONTAP 9**, please make sure +* If you plan to use the plugin with **Clustered Data ONTAP/ONTAP 9**, please make sure that it is configured, up and running. For instructions, see `the official NetApp ONTAP documentation`_. * If you plan to use the plugin with **E-Series** or **EF-Series**, please make sure that it is configured, up and running. For instructions, see `the official NetApp E-Series documentation`_. +* If you plan to use the plugin with **SolidFire**, please make sure that it + is configured, up and running. For instructions, see `the official NetApp SolidFire documentation`_. + + Release Notes ------------- -* Added MOS 9.0 support -* Removed code related to MOS backends -* Added MOS LCM support (Experimental) +* The number of simultaneously supported devices has been increased up to 3 NetApp devices +* Added SolidFire support +* Data ONTAP 7-Mode support has been disabled Limitations ----------- -* Only one NetApp backend can be configured to work with Cinder * Before creating Ubuntu repository's mirrors in Fuel, you have to manually add to /usr/share/fuel-mirror/ubuntu.yaml following packages: * nfs-common @@ -65,6 +68,8 @@ Limitations * multipath-tools * MOS LCM support is in experimental mode +* Data ONTAP 7-Mode is disabled. .. _the official NetApp ONTAP documentation: http://mysupport.netapp.com/documentation/productlibrary/index.html?productID=30092 .. _the official NetApp E-Series documentation: https://mysupport.netapp.com/info/web/ECMP1658252.html +.. _the official NetApp SolidFire documentation: http://www.solidfire.com/resources diff --git a/doc/source/guide.rst b/doc/source/guide.rst index c75d95b..afbbbbe 100644 --- a/doc/source/guide.rst +++ b/doc/source/guide.rst @@ -7,7 +7,8 @@ Once the Fuel Cinder NetApp plugin has been installed, you can create OpenStack #. Create an OpenStack environment using the Fuel UI wizard: .. image:: images/create_env.png - :width: 90% + :scale: 100% + :align: center #. Finish environment creation following `the instructions`_. @@ -16,7 +17,14 @@ Once the Fuel Cinder NetApp plugin has been installed, you can create OpenStack checkbox: .. image:: images/select-checkbox.png - :width: 40% + :scale: 100% + :align: center + +#. Choose the number of NetApp backends to use: + + .. image:: images/netapp_backends_number.png + :scale: 100% + :align: center #. Choose storage family and storage protocol. Several options are available. For details consult `Cinder NetApp driver configuration`_. @@ -34,7 +42,8 @@ Once the Fuel Cinder NetApp plugin has been installed, you can create OpenStack - Storage Virtual Machine .. image:: images/cmode_nfs.png - :width: 100% + :width: 70% + :align: center - If you plan to use Clustered Data mode through iSCSI, click **Clustered Data ONTAP/ONTAP 9** radiobutton and select *iSCSI* option in **NetApp Storage Protocol**. @@ -48,34 +57,8 @@ Once the Fuel Cinder NetApp plugin has been installed, you can create OpenStack - Storage Virtual Machine .. image:: images/cmode_iscsi.png - :width: 100% - - - If you plan to use 7-Mode through NFS, click **Data ONTAP 7-Mode** - radiobutton and select *NFS* option in **NetApp Storage Protocol**. - You should also choose NetApp transport type (http or https). - - Specify the following parameters in the text fields: - - - Username - - Password - - NetApp Storage Hostname/IP - - CDOT Data LIF IP address - - CDOT FlexVol volume junction path - - .. image:: images/7mode_nfs.png - :width: 100% - - - If you plan to use 7-Mode through iSCSI, click **Data ONTAP 7-Mode** - radiobutton and select *iSCSI* option in **NetApp Storage Protocol**. - You should also choose NetApp transport type (http or https). - Specify the following parameters in the text fields: - - - Username - - Password - - NetApp Storage Hostname/IP - - .. image:: images/7mode_iscsi.png - :width: 100% + :width: 70% + :align: center - If you plan to use E-Series or EF-Series, click **E-Series/EF-Series** radiobutton and select the only available *iSCSI* option in **NetApp Storage Protocol**. @@ -89,7 +72,34 @@ Once the Fuel Cinder NetApp plugin has been installed, you can create OpenStack - Storage Array Password .. image:: images/eseries.png - :width: 100% + :width: 70% + :align: center + + - If you plan to use SolidFire, click **SolidFire** + radiobutton and select the only available *iSCSI* option in **NetApp Storage Protocol**. + Specify the following parameters in the text fields: + + - Login for Cluster Admin account + - Password for Cluster Admin account + - Cluster MVIP + + .. image:: images/solidfire.png + :width: 70% + :align: center + +#. When you use Clustered Data ONTAP or E-Series, you can configure additional options. These options are global, and will affect all the devices. + + Global Options are Hidden: + + .. image:: images/global_opts_hidden.png + :scale: 100% + :align: center + + Global Options are Shown: + + .. image:: images/global_opts_shown.png + :scale: 100% + :align: center #. Using *Nodes* tab, `add nodes and assign roles to them`_. diff --git a/doc/source/images/7mode_iscsi.png b/doc/source/images/7mode_iscsi.png deleted file mode 100644 index df77049..0000000 Binary files a/doc/source/images/7mode_iscsi.png and /dev/null differ diff --git a/doc/source/images/7mode_nfs.png b/doc/source/images/7mode_nfs.png deleted file mode 100644 index b404980..0000000 Binary files a/doc/source/images/7mode_nfs.png and /dev/null differ diff --git a/doc/source/images/cmode_iscsi.png b/doc/source/images/cmode_iscsi.png index 95eda01..a3d7da6 100644 Binary files a/doc/source/images/cmode_iscsi.png and b/doc/source/images/cmode_iscsi.png differ diff --git a/doc/source/images/cmode_nfs.png b/doc/source/images/cmode_nfs.png index 969e097..ed7f614 100644 Binary files a/doc/source/images/cmode_nfs.png and b/doc/source/images/cmode_nfs.png differ diff --git a/doc/source/images/eseries.png b/doc/source/images/eseries.png index 43d67ea..6ca32ff 100644 Binary files a/doc/source/images/eseries.png and b/doc/source/images/eseries.png differ diff --git a/doc/source/images/global_opts_hidden.png b/doc/source/images/global_opts_hidden.png new file mode 100644 index 0000000..ec5822b Binary files /dev/null and b/doc/source/images/global_opts_hidden.png differ diff --git a/doc/source/images/global_opts_shown.png b/doc/source/images/global_opts_shown.png new file mode 100644 index 0000000..cb0e3f0 Binary files /dev/null and b/doc/source/images/global_opts_shown.png differ diff --git a/doc/source/images/netapp_backends_number.png b/doc/source/images/netapp_backends_number.png new file mode 100644 index 0000000..ae42d95 Binary files /dev/null and b/doc/source/images/netapp_backends_number.png differ diff --git a/doc/source/images/solidfire.png b/doc/source/images/solidfire.png new file mode 100644 index 0000000..5e4ce29 Binary files /dev/null and b/doc/source/images/solidfire.png differ diff --git a/doc/source/index.rst b/doc/source/index.rst index 167ad77..bc16289 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -1,5 +1,5 @@ ============================================ -Guide to the Cinder NetApp plugin ver. 5.0.0 +Guide to the Cinder NetApp plugin ver. 6.0.0 ============================================ This document will guide you through the steps to install, diff --git a/doc/source/installation.rst b/doc/source/installation.rst index fb31f7f..eb81f63 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -10,18 +10,18 @@ To install the Cinder Netapp plugin, follow these steps: have the Fuel Master node, please see `the official Mirantis OpenStack documentation`_:: - [root@home ~]# scp cinder_netapp-5.0-5.0.0-1.noarch.rpm root@fuel-master:/tmp + [root@home ~]# scp cinder_netapp-6.0-6.0.0-1.noarch.rpm root@fuel-master:/tmp #. Log into Fuel Master node and install the plugin using the `Fuel CLI`_:: - [root@fuel-master ~]# fuel plugins --install cinder_netapp-5.0-5.0.0-1.noarch.rpm + [root@fuel-master ~]# fuel plugins --install cinder_netapp-6.0-6.0.0-1.noarch.rpm #. Verify that the plugin is installed correctly:: [root@fuel-master ~]# fuel plugins id | name | version | package_version ---|---------------|---------|---------------- - 1 | cinder_netapp | 5.0.0 | 4.0.0 + 1 | cinder_netapp | 6.0.0 | 4.0.0 .. _Fuel Plugins Catalog: https://www.mirantis.com/products/openstack-drivers-and-plugins/fuel-plugins/ .. _the official Mirantis OpenStack documentation: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html diff --git a/doc/source/utilization.rst b/doc/source/utilization.rst index 7dc3010..5562ebc 100644 --- a/doc/source/utilization.rst +++ b/doc/source/utilization.rst @@ -4,13 +4,63 @@ Utilization Usage ----- -Since the plugin set up Cinder backend, to operate with plugin functionality you should use Cinder and set type ``netapp`` for volumes. +As the plugin sets up Cinder backend, to operate with plugin functionality you should use Cinder and set one of types ``NetApp_Backend_1``, ``NetApp_Backend_2``, ``NetApp_Backend_3`` for volumes. + +To make the types clearer to identify, you can rename them. See the example below, where ``NetApp_Backend_1`` is E-Series storage and ``NetApp_Backend_2`` is SolidFire storage:: + + root@node-1:~# cinder type-list + +--------------------------------------+------------------+-------------+-----------+ + | ID | Name | Description | Is_Public | + +--------------------------------------+------------------+-------------+-----------+ + | 33c04153-9117-4a00-9531-76eaa768795d | NetApp_Backend_2 | - | True | + | 5deec096-0c2d-4d16-bfeb-6c462da1d9d7 | NetApp_Backend_1 | - | True | + | 6955d739-b62b-4d60-a79c-93a1ba125e2b | volumes_lvm | - | True | + +--------------------------------------+------------------+-------------+-----------+ + root@node-1:~# cinder type-update --name SolidFire --is-public true 33c04153-9117-4a00-9531-76eaa768795d + +--------------------------------------+-----------+-------------+-----------+ + | ID | Name | Description | Is_Public | + +--------------------------------------+-----------+-------------+-----------+ + | 33c04153-9117-4a00-9531-76eaa768795d | SolidFire | - | True | + +--------------------------------------+-----------+-------------+-----------+ + root@node-1:~# cinder type-update --name E-Series --is-public true 5deec096-0c2d-4d16-bfeb-6c462da1d9d7 + +--------------------------------------+----------+-------------+-----------+ + | ID | Name | Description | Is_Public | + +--------------------------------------+----------+-------------+-----------+ + | 5deec096-0c2d-4d16-bfeb-6c462da1d9d7 | E-Series | - | True | + +--------------------------------------+----------+-------------+-----------+ + root@node-1:~# cinder type-list + +--------------------------------------+-------------+-------------+-----------+ + | ID | Name | Description | Is_Public | + +--------------------------------------+-------------+-------------+-----------+ + | 33c04153-9117-4a00-9531-76eaa768795d | SolidFire | - | True | + | 5deec096-0c2d-4d16-bfeb-6c462da1d9d7 | E-Series | - | True | + | 6955d739-b62b-4d60-a79c-93a1ba125e2b | volumes_lvm | - | True | + +--------------------------------------+-------------+-------------+-----------+ + +When you don't need default backend, you can just delete corresponding type. See the example below, where the default backend is volumes_lvm:: + + root@node-1:~# cinder type-list + +--------------------------------------+-------------+-------------+-----------+ + | ID | Name | Description | Is_Public | + +--------------------------------------+-------------+-------------+-----------+ + | 33c04153-9117-4a00-9531-76eaa768795d | SolidFire | - | True | + | 5deec096-0c2d-4d16-bfeb-6c462da1d9d7 | E-Series | - | True | + | 6955d739-b62b-4d60-a79c-93a1ba125e2b | volumes_lvm | - | True | + +--------------------------------------+-------------+-------------+-----------+ + root@node-1:~# cinder type-delete 6955d739-b62b-4d60-a79c-93a1ba125e2b + root@node-1:~# cinder type-list + +--------------------------------------+-----------+-------------+-----------+ + | ID | Name | Description | Is_Public | + +--------------------------------------+-----------+-------------+-----------+ + | 33c04153-9117-4a00-9531-76eaa768795d | SolidFire | - | True | + | 5deec096-0c2d-4d16-bfeb-6c462da1d9d7 | E-Series | - | True | + +--------------------------------------+-----------+-------------+-----------+ Verification ------------ To perform functional testing you should: -* Create a volume via Cinder and set type as ``netapp`` +* Create a volume via Cinder and set any available NetApp type * Attach the volume to any available instance * Create a snapshot of this volume * Create a volume using the snapshot diff --git a/specs/fuel-plugin-cinder-netapp-spec.rst b/specs/fuel-plugin-cinder-netapp-spec.rst index ce86a09..b3428e2 100644 --- a/specs/fuel-plugin-cinder-netapp-spec.rst +++ b/specs/fuel-plugin-cinder-netapp-spec.rst @@ -10,18 +10,19 @@ Fuel Cinder NetApp plugin specification Overview -------- -The plugin can replace Cinder default backend in MOS by Cinder NetApp backend or work in parallel. ``LVM over iSCSI`` and ``Ceph`` are two choices, which can be used as a default backend for Cinder. The plugin does not overwrite ``enabled_backends`` option that allows to use it with other plugins for Cinder backends. +The plugin doesn't replace Cinder default backend in MOS but work in parallel. ``LVM over iSCSI`` and ``Ceph`` are two choices, which can be used as a default backend for Cinder. The plugin does not overwrite ``enabled_backends`` option that allows to use it with other plugins for Cinder backends. The plugin supports using up to 3 NetApp devices simultaneously. 7-Mode ONTAP Data support is disabled by default. This repo contains all necessary files to build Cinder NetApp Fuel plugin. Problem description ------------------- -This integration should be supported with the upstream version of Fuel product. Mirantis Openstack 8.0 release has Pluggable Architecture feature, that prevents developers from bringing any changes to the core product. Instead, the NetApp integration functionality can be implemented as a plugin for Fuel. +This integration should be supported with the upstream version of Fuel product. Mirantis Openstack 9.1 release has Pluggable Architecture feature, that prevents developers from bringing any changes to the core product. Instead, the NetApp integration functionality can be implemented as a plugin for Fuel. The plugin support following storage families: - Clustered Data ONTAP - - Data ONTAP 7-Mode + - SolidFire - E-Series/EF-Series + - 7-Mode ONTAP Data (disabled by default) User Story 1: Clustered Data ONTAP devices with NFS and iSCSI modes ------------------------------------------------------------------- @@ -124,7 +125,38 @@ Data ONTAP 7-Mode via iSCSI: - ``open-iscsi`` and ``multipath-tools`` should be installed -User Story 3: E-Series/EF-Series devices with iSCSI mode + +User Story 3: SolidFire devices with iSCSI mode +-------------------------------------------------------- +This case will provide availability to configure OpenStack compute instances to access SolidFire storage systems. To enable this functionality, the following changes should be added: + +SolidFire via iSCSI: +============================= + * All cinder hosts should have following configuration in **:: + + + [cinder_netapp] + sf_api_port = CLUSTER_ENDPOINT_PORT + sf_svip = + sf_volume_prefix = SF_VOLUME_PREFIX + sf_enable_vag = False + sf_account_prefix = + sf_allow_template_caching = TEMPLATE_CACHING + san_login = LOGIN + sf_template_account_name = TEMPLATE_ACCOUNT + san_password = PASSWORD + sf_emulate_512 = True + volume_driver = cinder.volume.drivers.solidfire.SolidFireDriver + backend_host = str:netapp + san_ip = CLUSTER_MVIP + sf_enable_volume_mapping = True + volume_backend_name = cinder_netapp_backend_2 + sf_allow_tenant_qos = False + + Where ``san_ip``, ``san_password``, ``san_login`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab. + + +User Story 4: E-Series/EF-Series devices with iSCSI mode -------------------------------------------------------- This case will provide availability to configure OpenStack compute instances to access E-Series/EF-Series storage systems. To enable this functionality following changes should be added: