From c997a3bad44f8c69bef6456cc642b7aa4318cf6c Mon Sep 17 00:00:00 2001 From: Andrey Volochay Date: Fri, 10 Jun 2016 20:16:12 +0300 Subject: [PATCH] Update and fix the documentation - Documentation has been updated and corrected to correspond latest version of the code Change-Id: I9f51cc17b72b1efa6765add17d92cfbb7126f35f --- README.md | 48 +++-- doc/source/appendix.rst | 6 +- doc/source/conf.py | 4 +- doc/source/description.rst | 47 ++-- doc/source/guide.rst | 106 +++++----- doc/source/images/default_backend.png | Bin 0 -> 9102 bytes doc/source/images/multibackend.png | Bin 18953 -> 0 bytes doc/source/index.rst | 2 +- doc/source/installation.rst | 16 +- doc/source/utilization.rst | 6 +- metadata.yaml | 2 +- specs/fuel-plugin-cinder-netapp-spec.rst | 259 +++++++++++------------ 12 files changed, 252 insertions(+), 244 deletions(-) create mode 100644 doc/source/images/default_backend.png delete mode 100644 doc/source/images/multibackend.png diff --git a/README.md b/README.md index 3c7265b..fa29d3f 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,13 @@ Cinder NetApp plugin for Fuel Overview -------- -NetApp plugin can replace the Cinder LVM backend by Cinder Netapp Backend or work in parallel when deployed with multi-backend enabled. -LVM is the default volume backend that uses local volumes managed by LVM. +The plugin can replace Cinder default backend 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 support following storage family mode: - - ONTAP 7-Mode - - ONTAP Cluster Mode - - E-Series + +The plugin support following storage families: + - Clustered Data ONTAP + - Data ONTAP 7-Mode + - E-Series/EF-Series This repo contains all necessary files to build Cinder NetApp Fuel plugin. @@ -18,15 +18,19 @@ This repo contains all necessary files to build Cinder NetApp Fuel plugin. Requirements ------------ -| Requirement | Version/Comment | -|------------------------------------------------------------------------------------------|---------------------------------------------------------| -| Mirantis Openstack compatibility | 8.0 | -| Netapp filer or appliance is reachable via one of the Mirantis OpenStack networks | ONTAP or E-Series storage family with NTF\iSCSI enabled | +| Requirement | Version/Comment | +|------------------------------------------------------------------------------------------|------------------------------------------------------------------------| +| Mirantis Openstack compatibility | 8.0 | +| Netapp filer or appliance is reachable via one of the Mirantis OpenStack networks | Data ONTAP or E-Series/EF-Series storage family with NTS\iSCSI enabled | Release Notes ------------- +**4.2.1** + +* Documentation has been updated and fixed + **4.2.0** * Added full support of multi backends @@ -37,45 +41,45 @@ Release Notes **4.1.1** -* Fix bug with multibackend when Ceph is used (bug: 1581028) +* Fixed bug with multi backend when Ceph is used (bug: 1581028) **4.1.0** -* Rewrite fields in UI +* Rewrited fields in UI **4.0.0** -* add MOS 8.0 support +* Added MOS 8.0 support **3.2.0** -* add E-Series storage family support +* Added E-Series storage family support -* fix the plugin UI +* Fixed the plugin UI **3.1.0** -* add high availability of operations with Volumes +* Added high availability of operations with Volumes **3.0.0** -* migrate the plugin from 2.0.0 to 3.0.0 package version +* The plugin was migrated from 2.0.0 to 3.0.0 package version **2.0.0** -* migrate plugins from 1.0.0 to 2.0.0 package version +* The plugin was migrated from 1.0.0 to 2.0.0 package version **1.2.0** -* add multi backend support +* Added multi backend support -* add missing dependencies on compute node +* Added missing dependencies on compute node -* add capacity to deploy cinder role on a non controller node +* Added capacity to deploy cinder role on a non controller node **1.1.0** -* add 7 mode storage family support +* Added 7 mode storage family support **1.0.0** diff --git a/doc/source/appendix.rst b/doc/source/appendix.rst index 5f67681..6290eca 100644 --- a/doc/source/appendix.rst +++ b/doc/source/appendix.rst @@ -1,6 +1,6 @@ +======== Appendix ======== +#. `Data ONTAP documentation `_ -#. `ONTAP documentation `_ - -#. `E-Series documentation `_ +#. `E-Series/EF-Series documentation `_ diff --git a/doc/source/conf.py b/doc/source/conf.py index 1c06508..e226107 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 = '4.1-4.1.1-1' +version = '4.2-4.2.1-1' # The full version, including alpha/beta/rc tags. -release = '4.1-4.1.1-1' +release = '4.2-4.2.1-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 dde863f..f2caa37 100644 --- a/doc/source/description.rst +++ b/doc/source/description.rst @@ -1,11 +1,12 @@ +============= NetApp plugin ============= -NetApp plugin provides support of ONTAP and E-series storage clusters to Cinder. -NetApp plugin uses NetApp unified driver; the latter is a +The plugin provides support of ``Clustered Data ONTAP``, ``Data ONTAP 7-Mode`` and ``E-series`` storage clusters to Cinder. +The plugin uses NetApp unified driver, the latter 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, Data ONTAP operating in 7-Mode, +such as Clustered Data ONTAP, Data ONTAP operating in 7-Mode, and E-Series. The storage protocol refers to the protocol used to initiate data storage and access operations on those storage systems like iSCSI and NFS. @@ -18,11 +19,13 @@ storage families and protocols. Features -------- -* ONTAP Clustered Mode as a backend for Cinder with NFS or iSCSI data-transfer protocols -* ONTAP 7 Mode as a backend for Cinder with NFS or iSCSI data-transfer protocols -* E-Series as a backend for Cinder with iSCSI data-transfer protocol -* Multibackend: A supported NetApp storage with any default Cinder backend, either LVM over iSCSI or Ceph -* Supports all NetApp driver options to be configured +* Clustered Data ONTAP 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 multi backend feature. The plugin does not overwrite ``enabled_backends`` option + thereby allowing use other plugins for Cinder. +* Allows using NetApp as a backend for Cinder along with MOS default backends - ``LVM over iSCSI`` or ``Ceph`` +* Supports all configuration options of NetApp Cinder driver for Liberty Requirements @@ -31,26 +34,29 @@ Requirements Requirement Version/Comment ======================= ================================= Fuel 8.0 -ONTAP or E-Series All storage family is supported. +NetApp Storage System Clustered ONTAP Data + + Data ONTAP 7-Mode + + E-Series or EF-Series ======================= ================================= Prerequisites ------------- -* If you plan to use the plugin with **ONTAP**, 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 **Data ONTAP 7-Mode** or **Clustered ONTAP Data**, 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**, 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 **E-Series** or **EF-Series**, please make sure that it + is configured, up and running. For instructions, see `the official NetApp E-Series documentation`_. -Release Nodes +Release Notes ------------- -* The plugin has been totally refactored to accordance with changes in OpenStack Liberty and MOS 8.0 -* All documented features of NetApp Cinder Driver are configurable -* Plugin can change Cinder settings after deployment with wrong parameters. It requires manual actions +* Added true support of multi backends +* Legacy of CentOS support for iSCSI was removed +* Added comments to source code +* Documentation is updated\fixed Limitations ----------- @@ -60,3 +66,6 @@ Limitations * nfs-common * open-iscsi * multipath-tools + +.. _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 diff --git a/doc/source/guide.rst b/doc/source/guide.rst index 379e5e5..2726aba 100644 --- a/doc/source/guide.rst +++ b/doc/source/guide.rst @@ -1,17 +1,15 @@ +========================= Configuring NetApp plugin ========================= -Once the Fuel Cinder NetApp plugin has been installed, you can -create OpenStack environments that use NetApp storage as a Cinder backend. - +Once the Fuel Cinder NetApp plugin has been installed, you can create OpenStack environments that use NetApp storage as a Cinder backend. #. Create an OpenStack environment using the Fuel UI wizard: .. image:: images/create_env.png :width: 90% -#. Finish environment creation following - `the instructions `_. +#. Finish environment creation following `the instructions`_. #. Once the environment is created, open the **Settings** tab of the Fuel Web UI and then **Storage**. Scroll down the page. Select the **Cinder and NetApp integration** @@ -20,84 +18,86 @@ create OpenStack environments that use NetApp storage as a Cinder backend. .. image:: images/select-checkbox.png :width: 40% -#. Configure the plugin.Select **Multibackend enabled** checkbox - if you would like NetApp driver to be used as the Cinder Multibackend feature: +#. Configure the plugin.Select **MOS Backend Enabled** checkbox + if you would like Cinder NetApp driver to be used along with default beckend for MOS Cinder: - .. image:: images/multibackend.png - :width: 50% + .. image:: images/default_backend.png + :width: 50% #. Choose storage family and storage protocol. Several options are available. - - If you plan to use ONTAP cluster mode through NFS, click **Ontap Cluster** - radio button and select *nfs* option in **Netapp storage protocol**. + - If you plan to use Clustered Data mode through NFS, click **Clustered Data ONTAP** + radio button 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: - - Netapp username - - Netapp password - - Netapp server hostname - - NFS server - - NFS share(s) - - Netapp Vserver + - Username + - Password + - NetApp Storage Hostname/IP + - CDOT Data LIF IP address + - CDOT FlexVol volume junction path + - Storage Virtual Machine .. image:: images/cmode_nfs.png :width: 100% - - If you plan to use ONTAP cluster mode through iSCSI, click **Ontap Cluster** - radiobutton and select *iscsi* option in **Netapp storage protocol**. + - If you plan to use Clustered Data mode through iSCSI, click **Clustered Data ONTAP** + 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: - - Netapp username - - Netapp password - - Netapp server hostname - - Netapp Vserver + - Username + - Password + - NetApp Storage Hostname/IP + - Storage Virtual Machine .. image:: images/cmode_iscsi.png :width: 100% - - If you plan to use ONTAP 7 mode through NFS, click **Ontap 7mode** - radiobutton and select *nfs* option in **Netapp storage protocol**. + - 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: - - Netapp username - - Netapp password - - Netapp server hostname - - NFS server - - NFS share(s) + - 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 ONTAP 7 mode through iSCSI, click **Ontap 7mode** - 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: + - 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: - - Netapp username - - Netapp password - - Netapp server hostname + - Username + - Password + - NetApp Storage Hostname/IP .. image:: images/7mode_iscsi.png - :width: 100% + :width: 100% - - If you plan to use E-series, click **E-Series** - radiobutton and select the only available *iscsi* option in **Netapp storage protocol**. + - 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**. You should also choose NetApp transport type (http or https). - Specify the following parameters in the text fields: please specify the following parameters: + Specify the following parameters in the text fields: - - Netapp username - - Netapp password - - Netapp server hostname - - Netapp controller IPs - - Netapp SA password + - Username + - Password + - NetApp Storage Hostname/IP + - Controller IPs + - Storage Array Password .. image:: images/eseries.png :width: 100% -#. Using *Nodes* tab, - `add nodes and assign roles to them `_. +#. Using *Nodes* tab, `add nodes and assign roles to them`_. Please, note that all controller nodes **MUST** be configured with Cinder role as well. #. This step is needed only when local fuel mirrors are used @@ -110,8 +110,12 @@ create OpenStack environments that use NetApp storage as a Cinder backend. - "open-iscsi" - "multipath-tools" -#. Press `Deploy button `_ - once you are done with environment configuration. +#. Press `Deploy button`_ once you are done with environment configuration. #. When the deployment is done, you may perform functional testing. - You can find instructions in `NetApp Mirantis Unlocked Reference Architecture `_, paragraph 8.3. + You can find instructions in `NetApp Mirantis Unlocked Reference Architecture`_, paragraph 8.3. + +.. _the instructions: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/create-environment/start-create-env.html +.. _add nodes and assign roles to them: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/configure-environment/add-nodes.html +.. _Deploy button: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/deploy-environment/deploy-changes.html +.. _NetApp Mirantis Unlocked Reference Architecture: http://content.mirantis.com/Mirantis-NetApp-Reference-Architecture-Landing-Page.html diff --git a/doc/source/images/default_backend.png b/doc/source/images/default_backend.png new file mode 100644 index 0000000000000000000000000000000000000000..a26290be38b00dff165352f522eb3de6f961256c GIT binary patch literal 9102 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%0A51`~w9R@wgvAgFch8XBTV4nUCFto4OeBR`-58?P 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 RMRwEx8Y;TVP{r3#{|Dt#drklV literal 0 HcmV?d00001 diff --git a/doc/source/images/multibackend.png b/doc/source/images/multibackend.png deleted file mode 100644 index 66dc70c03f02e7ada86f2b2b9bab6e123d1d209d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18953 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:: + Mirantis OpenStack documentation`_:: - [root@home ~]# scp cinder_netapp-4.1-4.1.1-1.noarch.rpm root@fuel-master:/tmp + [root@home ~]# scp cinder_netapp-4.2-4.2.1-1.noarch.rpm root@fuel-master:/tmp -#. Log into Fuel Master node and install the plugin using the - `Fuel CLI `_:: +#. Log into Fuel Master node and install the plugin using the `Fuel CLI`_:: - [root@fuel-master ~]# fuel plugins --install cinder_netapp-4.1-4.1.1-1.noarch.rpm + [root@fuel-master ~]# fuel plugins --install cinder_netapp-4.2-4.2.1-1.noarch.rpm #. Verify that the plugin is installed correctly:: [root@fuel-master ~]# fuel plugins id | name | version | package_version ---|---------------|---------|---------------- - 1 | cinder_netapp | 4.1.1 | 4.0.0 - + 1 | cinder_netapp | 4.2.1 | 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 +.. _Fuel CLI: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/cli.html diff --git a/doc/source/utilization.rst b/doc/source/utilization.rst index 95ff37c..7dc3010 100644 --- a/doc/source/utilization.rst +++ b/doc/source/utilization.rst @@ -1,12 +1,11 @@ +=========== Utilization =========== - -Using +Usage ----- Since the plugin set up Cinder backend, to operate with plugin functionality you should use Cinder and set type ``netapp`` for volumes. - Verification ------------ To perform functional testing you should: @@ -16,7 +15,6 @@ To perform functional testing you should: * Create a snapshot of this volume * Create a volume using the snapshot - Troubleshooting --------------- * If anything is not working, first check ``cinder-volume.log`` file on Cinder node. It provides most information you need for troubleshooting diff --git a/metadata.yaml b/metadata.yaml index 347f2c1..abe6c6a 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -3,7 +3,7 @@ name: cinder_netapp # Human-readable name for your plugin title: Cinder and NetApp integration # Plugin version -version: '4.2.0' +version: '4.2.1' # Description description: Enables using NetApp as a Cinder backend # Required fuel version diff --git a/specs/fuel-plugin-cinder-netapp-spec.rst b/specs/fuel-plugin-cinder-netapp-spec.rst index 3593931..ce86a09 100644 --- a/specs/fuel-plugin-cinder-netapp-spec.rst +++ b/specs/fuel-plugin-cinder-netapp-spec.rst @@ -10,218 +10,211 @@ Fuel Cinder NetApp plugin specification Overview -------- - -NetApp plugin can replace the Cinder LVM backend by Cinder Netapp Backend or work in parallel when deployed with multi-backend enabled. LVM is the default volume backend that uses local volumes managed by LVM. +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. 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. The plugin support following storage families: - - ONTAP with Cluster Mode and 7 Mode - - E-series + - Clustered Data ONTAP + - Data ONTAP 7-Mode + - E-Series/EF-Series -User Story 1: ONTAP devices with all modes ---------------------------------------------------- +User Story 1: Clustered Data ONTAP devices with NFS and iSCSI modes +------------------------------------------------------------------- +This case will provide availability to configure OpenStack compute instances to access Clustered Data ONTAP storage systems. +To enable this functionality following changes should be added. -This case will provide availability to configure OpenStack compute instances to access Data ONTAP storage systems. To enable this functionality following changes should be added: +Clustered Data ONTAP via NFS: +============================= + * All cinder hosts should have following configuration in **:: -ONTAP with Cluster Mode via NFS: - -* All cinder hosts should have following configuration in **:: - - [cinder_netapp] - volume_backend_name = cinder_netapp - volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver - netapp_login = LOGIN - netapp_password = PASSWORD - netapp_server_hostname = SERVER_HOSTNAME - netapp_server_port = - netapp_transport_type = TRANSPORT_TYPE - netapp_storage_family = ontap_cluster - netapp_storage_protocol = nfs - nfs_shares_config = /etc/cinder/shares.conf - netapp_vserver = VSERVER + [cinder_netapp] + volume_backend_name = cinder_netapp + volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver + netapp_login = LOGIN + netapp_password = PASSWORD + netapp_server_hostname = SERVER_HOSTNAME + netapp_server_port = + netapp_transport_type = TRANSPORT_TYPE + netapp_storage_family = ontap_cluster + netapp_storage_protocol = nfs + nfs_shares_config = /etc/cinder/shares.conf + netapp_vserver = VSERVER Where ``netapp_login``, ``netapp_password``, ``$netapp_server_hostname``, ``netapp_transport_type``, ``netapp_storage_family``, ``netapp_storage_protocol``, ``netapp_vserver`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab. -* All compute hosts should satisfy following requirements: + * All compute hosts should satisfy following requirements: - - ``nfs-common`` should be installed - - Ensure that ``nfs`` service is enabled and running in the system + - ``nfs-common`` should be installed + - Ensure that ``nfs`` service is enabled and running in the system -ONTAP with Cluster Mode via iSCSI: +Clustered Data ONTAP via iSCSI: +=============================== + * All cinder hosts should have following configuration in **:: -* All cinder hosts should have following configuration in **:: - - [cinder_netapp] - volume_backend_name = cinder_netapp - volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver - netapp_login = LOGIN - netapp_password = PASSWORD - netapp_server_hostname = SERVER_HOSTNAME - netapp_server_port = - netapp_transport_type = TRANSPORT_TYPE - netapp_storage_family = ontap_cluster - netapp_storage_protocol = iscsi - netapp_vserver = VSERVER + [cinder_netapp] + volume_backend_name = cinder_netapp + volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver + netapp_login = LOGIN + netapp_password = PASSWORD + netapp_server_hostname = SERVER_HOSTNAME + netapp_server_port = + netapp_transport_type = TRANSPORT_TYPE + netapp_storage_family = ontap_cluster + netapp_storage_protocol = iscsi + netapp_vserver = VSERVER Where ``netapp_login``, ``netapp_password``, ``$netapp_server_hostname``, ``netapp_transport_type``, ``netapp_storage_family``, ``netapp_storage_protocol``, ``netapp_vserver`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab. -* All compute hosts should satisfy following requirements: + * All compute hosts should satisfy following requirements: - - ``open-iscsi`` and ``multipath-tools`` should be installed + - ``open-iscsi`` and ``multipath-tools`` should be installed -ONTAP with 7 Mode via NFS: +User Story 2: Data ONTAP 7-Mode devices with NFS and iSCSI modes +---------------------------------------------------------------- +This case will provide availability to configure OpenStack compute instances to access Data ONTAP 7-Mode storage systems. To enable this functionality following changes should be added: -* All cinder hosts should have following configuration in **:: +Data ONTAP 7-Mode via NFS: +========================== + * All cinder hosts should have following configuration in **:: - [cinder_netapp] - volume_backend_name = cinder_netapp - volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver - netapp_login = LOGIN - netapp_password = PASSWORD - netapp_server_hostname = SERVER_HOSTNAME - netapp_server_port = - netapp_transport_type = TRANSPORT_TYPE - netapp_storage_family = ontap_7mode - netapp_storage_protocol = nfs - nfs_shares_config = /etc/cinder/shares.conf - netapp_vfiler = VFILTER + [cinder_netapp] + volume_backend_name = cinder_netapp + volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver + netapp_login = LOGIN + netapp_password = PASSWORD + netapp_server_hostname = SERVER_HOSTNAME + netapp_server_port = + netapp_transport_type = TRANSPORT_TYPE + netapp_storage_family = ontap_7mode + netapp_storage_protocol = nfs + nfs_shares_config = /etc/cinder/shares.conf + netapp_vfiler = VFILTER Where ``netapp_login``, ``netapp_password``, ``$netapp_server_hostname``, ``netapp_transport_type``, ``netapp_storage_family``, ``netapp_storage_protocol``, ``netapp_vfilter`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab. -* All compute hosts should satisfy following requirements: + * All compute hosts should satisfy following requirements: - - ``nfs-common`` should be installed. - - Ensure that ``nfs`` service is enabled and running in the system + - ``nfs-common`` should be installed. + - Ensure that ``nfs`` service is enabled and running in the system -ONTAP with 7 Mode via iSCSI: +Data ONTAP 7-Mode via iSCSI: +============================ + * All cinder hosts should have following configuration in **:: -* All cinder hosts should have following configuration in **:: - - [cinder_netapp] - volume_backend_name = cinder_netapp - volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver - netapp_login = LOGIN - netapp_password = PASSWORD - netapp_server_hostname = SERVER_HOSTNAME - netapp_server_port = - netapp_transport_type = TRANSPORT_TYPE - netapp_storage_family = ontap_7mode - netapp_storage_protocol = iscsi - netapp_vfiler = VFILTER + [cinder_netapp] + volume_backend_name = cinder_netapp + volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver + netapp_login = LOGIN + netapp_password = PASSWORD + netapp_server_hostname = SERVER_HOSTNAME + netapp_server_port = + netapp_transport_type = TRANSPORT_TYPE + netapp_storage_family = ontap_7mode + netapp_storage_protocol = iscsi + netapp_vfiler = VFILTER Where ``netapp_login``, ``netapp_password``, ``$netapp_server_hostname``, ``netapp_transport_type``, ``netapp_storage_family``, ``netapp_storage_protocol``, ``netapp_vfiler`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab. -* All compute hosts should satisfy following requirements: + * All compute hosts should satisfy following requirements: - - ``open-iscsi`` and ``multipath-tools`` should be installed + - ``open-iscsi`` and ``multipath-tools`` should be installed -User Story 2: E-series devices -------------------------------------------------------------- +User Story 3: 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: -This case will provide availability to configure OpenStack compute instances to access E-series storage systems. To enable this functionality following changes should be added: +E-Series/EF-Series via iSCSI: +============================= + * All cinder hosts should have following configuration in **:: -* All cinder hosts should have following configuration in **:: - - [cinder_netapp] - volume_backend_name = cinder_netapp - volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver - netapp_login = LOGIN - netapp_password = PASSWORD - netapp_server_hostname = SERVER_HOSTNAME - netapp_server_port = - netapp_transport_type = TRANSPORT_TYPE - netapp_storage_family = eseries - netapp_storage_protocol = iscsi - netapp_host_type = linux_dm_mp - netapp_controller_ips = CONTROLLER_IPS - netapp_sa_password = SA_PASSWORD - netapp_webservice_path= /devmgr/v2 + [cinder_netapp] + volume_backend_name = cinder_netapp + volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver + netapp_login = LOGIN + netapp_password = PASSWORD + netapp_server_hostname = SERVER_HOSTNAME + netapp_server_port = + netapp_transport_type = TRANSPORT_TYPE + netapp_storage_family = eseries + netapp_storage_protocol = iscsi + netapp_host_type = linux_dm_mp + netapp_controller_ips = CONTROLLER_IPS + netapp_sa_password = SA_PASSWORD + netapp_webservice_path= /devmgr/v2 Where ``netapp_login``, ``netapp_password``, ``$netapp_server_hostname``, ``netapp_transport_type``, ``netapp_storage_family``, ``netapp_storage_protocol``, ``netapp_controller_ips``, ``netapp_sa_password`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab. -* All compute hosts should satisfy following requirements: + * All compute hosts should satisfy following requirements: - - ``open-iscsi`` and ``multipath-tools`` should be installed + - ``open-iscsi`` and ``multipath-tools`` should be installed -Alternatives ---------------- -There are no known alternatives for this plugin, although all steps can be performed manually. +Affects +------- REST API impact ---------------- - +=============== None. Upgrade impact --------------- - -Upgrading should be tested explicitly with this plugin installed and NetApp storage cluster enabled. +============== +Upgrading should be tested explicitly with this plugin installed and NetApp storage enabled. Security impact ---------------- - -This plugin uses credentials that were used during NetApp cluster setup. No impact on OpenStack services. +=============== +This plugin uses credentials that were used during NetApp storage setup. No impact on OpenStack services. Notifications impact --------------------- - +==================== None. Other end user impact ---------------------- - +===================== None. Plugin impact -------------- - +============= This plugin should not impact other plugins until they do not modify the same settings for Cinder configuration. Other deployer impact ---------------------- +===================== Developer impact ----------------- +================ +Documentation Impact +==================== +Reference to this plugin should be added to main Fuel documentation. Implementation -============== +-------------- Work Items ----------- - +========== * Create fuel-plugin-cinder-netapp plugin - * Develop the Fuel Web UI part of the plugin - * Add puppet support for all configuration cases - * Write documentation (User Guide) Dependencies ============ - * Ubuntu 14.04 support in MOS Testing -======== +------- +Plugin should pass functional tests executed manually. -Plugin should pass tempest framework tests. - -Documentation Impact -==================== - -Reference to this plugin should be added to main Fuel documentation. +Alternatives +--------------- +There are no known alternatives for this plugin, although all steps can be performed manually. References -========== +---------- +[1] http://netapp.github.io/openstack-deploy-ops-guide/liberty/content/section_cinder-configuration.html -[1] http://docs.openstack.org/icehouse/config-reference/content/netapp-volume-driver.html [2] https://blueprints.launchpad.net/fuel/+spec/support-ubuntu-trusty