Merge branch 'master' into '8.0'

- Merged last stable state for MOS 8.0

Change-Id: Ic06b75383899ac44e7a1b32e327f53f172d90e58
This commit is contained in:
Andrey Volochay 2016-06-24 20:12:05 +03:00
commit 1ae5ca1e5d
31 changed files with 422 additions and 375 deletions

View File

@ -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 familly 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,48 +18,68 @@ 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 reacheble 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
* The code has been refactored and commented, slightly
* Added small changes to get free allocation of roles
**4.1.1**
* Fixed bug with multi backend when Ceph is used (bug: 1581028)
**4.1.0**
* Rewrited fields in UI
**4.0.0**
* add MOS 8.0 support
* Added MOS 8.0 support
**3.2.0**
* add E-Series storage familly 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 familly support
* Added 7 mode storage family support
**1.0.0**

View File

@ -4,7 +4,7 @@ include nova::params
$cinder_netapp = hiera_hash('cinder_netapp', {})
Nova_config <||> ~> service { "$nova::params::compute_service_name": }
Nova_config <||> ~> Service <||>
if ($cinder_netapp['netapp_storage_protocol']) == 'iscsi' and ($cinder_netapp['use_multipath_for_image_xfer']) {
package { 'multipath-tools': }
@ -23,3 +23,5 @@ if ($cinder_netapp['netapp_storage_protocol']) == 'nfs' {
}
}
}
service { "$nova::params::compute_service_name": }

View File

@ -1,28 +1,19 @@
# Since Fuel 8.0 has its own task to set Cinder volume-types. We add our modifications before this task is executed.
notice('MODULAR: netapp-hiera-override')
$cinder_netapp = hiera_hash('cinder_netapp', {})
$multibackend = $cinder_netapp['multibackend']
$cinder_netapp = hiera_hash('cinder_netapp', {})
$default_backend = $cinder_netapp['default_backend']
$hiera_dir = '/etc/hiera/plugins'
$plugin_yaml = 'cinder_netapp.yaml'
$plugin_name = 'cinder_netapp'
$content = inline_template('
storage_hash:
volume_backend_names:
netapp: cinder_netapp
<% if ! @multibackend -%>
volumes_lvm: false
volumes_ceph: false
<% end -%>
')
file { $hiera_dir:
ensure => directory,
}
file { "${hiera_dir}/${plugin_yaml}":
ensure => file,
content => $content,
content => template('plugin_cinder_netapp/cinder_netapp.yaml.erb'),
}

View File

@ -1,3 +1,6 @@
notice('MODULAR: fuel-plugin-cinder-netapp')
class { 'plugin_cinder_netapp': }
# The manifest is executed on nodes with cinder role or on nodes with controller role when Ceph is used.
if ('cinder' in hiera('roles')) or (!empty(filter_nodes(hiera('nodes'), 'role', 'ceph-osd'))) {
class { 'plugin_cinder_netapp': }
}

View File

@ -0,0 +1,16 @@
define plugin_cinder_netapp::backend::enable_backend (
$config_file = $plugin_cinder_netapp::params::config_file
) {
include plugin_cinder_netapp::params
ini_subsetting {"enable_${name}_backend":
ensure => present,
section => 'DEFAULT',
key_val_separator => '=',
path => $config_file,
setting => 'enabled_backends',
subsetting => $name,
subsetting_separator => ',',
}
}

View File

@ -1,20 +1,25 @@
class plugin_cinder_netapp::backend::iscsi (
$volume_group = 'cinder',
$iscsi_helper = $cinder::params::iscsi_helper,
$iscsi_helper = 'tgtadm',
$backend_type,
) inherits cinder::params {
$backend_name,
) {
# Get IP address in storage subnet
$network_scheme = hiera_hash('network_scheme', {})
prepare_network_config($network_scheme)
$storage_address = get_network_role_property('cinder/iscsi', 'ipaddr')
# Creates separate section for <LVM over iSCSI> backend
cinder_config {
'cinder_iscsi/volume_backend_name': value => $backend_type;
'cinder_iscsi/volume_driver': value => 'cinder.volume.drivers.lvm.LVMVolumeDriver';
'cinder_iscsi/iscsi_helper': value => $iscsi_helper;
'cinder_iscsi/volume_group': value => $volume_group;
'cinder_iscsi/iscsi_ip_address': value => $storage_address;
'cinder_iscsi/backend_host': value => $storage_address;
"$backend_name/volume_backend_name": value => $backend_type;
"$backend_name/volume_driver": value => 'cinder.volume.drivers.lvm.LVMVolumeDriver';
"$backend_name/iscsi_helper": value => $iscsi_helper;
"$backend_name/volume_group": value => $volume_group;
"$backend_name/iscsi_ip_address": value => $storage_address;
"$backend_name/backend_host": value => $storage_address;
}
# Adds the backend in <enabled_backends> parameter
plugin_cinder_netapp::backend::enable_backend { $backend_name: }
}

View File

@ -1,34 +1,30 @@
# Defined type form upstream puppet cinder module is not used because is outdated and doesn't support last changes in Cinder NetApp driver.
define plugin_cinder_netapp::backend::netapp (
$netapp_backend_name = $name,
$cinder_netapp = $plugin_cinder_netapp::params::cinder_netapp,
$backend_name = undef,
$nfs_shares_config = '/etc/cinder/shares.conf',
class plugin_cinder_netapp::backend::netapp (
$netapp_backend_name = 'cinder_netapp',
$cinder_netapp = $plugin_cinder_netapp::params::cinder_netapp,
$nfs_shares_config = '/etc/cinder/shares.conf',
$netapp_webservice_path = '/devmgr/v2',
) {
include plugin_cinder_netapp::params
include cinder::params
if ($cinder_netapp['multibackend']) {
$enabled_backends = "$backend_name,$netapp_backend_name"
} else {
$enabled_backends = $netapp_backend_name
}
# Sets correct parameter for <host_type> depending on storage family
if ($cinder_netapp['netapp_storage_family']) == 'eseries' {
$host_type = $cinder_netapp['netapp_eseries_host_type']
} else {
$host_type = $cinder_netapp['netapp_host_type']
}
# NetApp driver does not understand boolean types for <lun_space_reservation> parameter
if ($cinder_netapp['netapp_lun_space_reservation']) {
$lun_space_reservation = 'enabled'
} else {
$lun_space_reservation = 'disabled'
}
# To set up NFS shares
# Sets up NFS shares
if ($cinder_netapp['netapp_storage_protocol']) == 'nfs' {
package { 'nfs-common': }
@ -40,7 +36,7 @@ define plugin_cinder_netapp::backend::netapp (
}
}
# To have an ability to create a root volume during an instance spawning
# We need following packages to create a root volume during an instance spawning
if ($cinder_netapp['netapp_storage_protocol']) == 'iscsi' {
package { 'open-iscsi': }
@ -49,14 +45,13 @@ define plugin_cinder_netapp::backend::netapp (
}
}
# Ensure that $ symbol is correctly escaped in netapp password
# To be ensure that $ symbol is correctly escaped in netapp password
$netapp_password = regsubst($cinder_netapp['netapp_password'],'\$','$$','G')
Cinder_config <||> ~> service { "$cinder::params::scheduler_service": } ~> service { "$cinder::params::volume_service": }
Cinder_config <||> -> Plugin_cinder_netapp::Backend::Enable_backend[$netapp_backend_name] ~> Service <||>
cinder_config {
'DEFAULT/enabled_backends': value => $enabled_backends;
'DEFAULT/scheduler_driver': value => 'cinder.scheduler.filter_scheduler.FilterScheduler';
"$netapp_backend_name/volume_backend_name": value => 'cinder_netapp';
"$netapp_backend_name/volume_driver": value => 'cinder.volume.drivers.netapp.common.NetAppDriver';
"$netapp_backend_name/netapp_login": value => $cinder_netapp['netapp_login'];
@ -70,7 +65,7 @@ define plugin_cinder_netapp::backend::netapp (
"$netapp_backend_name/netapp_vfiler": value => $cinder_netapp['netapp_vfiler'];
"$netapp_backend_name/netapp_controller_ips": value => $cinder_netapp['netapp_controller_ips'];
"$netapp_backend_name/netapp_sa_password": value => $cinder_netapp['netapp_sa_password'];
"$netapp_backend_name/netapp_webservice_path": value => '/devmgr/v2';
"$netapp_backend_name/netapp_webservice_path": value => $netapp_webservice_path;
"$netapp_backend_name/nfs_shares_config": value => $nfs_shares_config;
"$netapp_backend_name/thres_avl_size_perc_start": value => $cinder_netapp['thres_avl_size_perc_start'];
"$netapp_backend_name/thres_avl_size_perc_stop": value => $cinder_netapp['thres_avl_size_perc_stop'];
@ -88,4 +83,8 @@ define plugin_cinder_netapp::backend::netapp (
"$netapp_backend_name/backend_host": value => 'str:netapp'; # for NetApp HA
}
# Adds the backend in <enabled_backends> parameter
plugin_cinder_netapp::backend::enable_backend { $netapp_backend_name: }
service { $cinder::params::volume_service: }
}

View File

@ -8,17 +8,21 @@ class plugin_cinder_netapp::backend::rbd (
$rbd_max_clone_depth = '5',
$glance_api_version = undef,
$backend_type,
$backend_name,
) {
# Creates separate section for Ceph backend
cinder_config {
'cinder_rbd/volume_backend_name': value => $backend_type;
'cinder_rbd/volume_driver': value => 'cinder.volume.drivers.rbd.RBDDriver';
'cinder_rbd/rbd_ceph_conf': value => $rbd_ceph_conf;
'cinder_rbd/rbd_user': value => $rbd_user;
'cinder_rbd/rbd_pool': value => $rbd_pool;
'cinder_rbd/rbd_max_clone_depth': value => $rbd_max_clone_depth;
'cinder_rbd/rbd_flatten_volume_from_snapshot': value => $rbd_flatten_volume_from_snapshot;
'cinder_rbd/backend_host': value => "rbd:${rbd_pool}";
"$backend_name/volume_backend_name": value => $backend_type;
"$backend_name/volume_driver": value => 'cinder.volume.drivers.rbd.RBDDriver';
"$backend_name/rbd_ceph_conf": value => $rbd_ceph_conf;
"$backend_name/rbd_user": value => $rbd_user;
"$backend_name/rbd_pool": value => $rbd_pool;
"$backend_name/rbd_max_clone_depth": value => $rbd_max_clone_depth;
"$backend_name/rbd_flatten_volume_from_snapshot": value => $rbd_flatten_volume_from_snapshot;
"$backend_name/backend_host": value => "rbd:${rbd_pool}";
}
# Adds the backend in <enabled_backends> parameter
plugin_cinder_netapp::backend::enable_backend { $backend_name: }
}

View File

@ -1,11 +1,20 @@
class plugin_cinder_netapp (
$cinder_netapp = $plugin_cinder_netapp::params::cinder_netapp,
$cinder_netapp = $plugin_cinder_netapp::params::cinder_netapp,
$backend_name = $plugin_cinder_netapp::params::backend_name,
$backend_type = $plugin_cinder_netapp::params::backend_type,
$backend_class = $plugin_cinder_netapp::params::backend_class,
$netapp_backend_class = $plugin_cinder_netapp::params::netapp_backend_class,
) inherits plugin_cinder_netapp::params {
if ($cinder_netapp['multibackend']) {
class { 'plugin_cinder_netapp::multibackend': }
} else {
plugin_cinder_netapp::backend::netapp { 'cinder_netapp': }
if ($cinder_netapp['default_backend']) {
Class[$backend_class] -> Class[$netapp_backend_class]
class { $backend_class:
backend_type => $backend_type,
backend_name => $backend_name,
}
}
class { $netapp_backend_class: }
}

View File

@ -1,14 +0,0 @@
class plugin_cinder_netapp::multibackend (
$backend_name = $plugin_cinder_netapp::params::backend_name,
$backend_type = $plugin_cinder_netapp::params::backend_type,
$backend_class = $plugin_cinder_netapp::params::backend_class,
) inherits plugin_cinder_netapp::params {
class { $backend_class:
backend_type => $backend_type,
} ->
plugin_cinder_netapp::backend::netapp { 'cinder_netapp':
backend_name => $backend_name,
}
}

View File

@ -1,6 +1,8 @@
class plugin_cinder_netapp::params (
) {
$config_file = '/etc/cinder/cinder.conf'
$cinder_netapp = hiera_hash('cinder_netapp', {})
$storage_hash = hiera_hash('storage_hash', {})
@ -16,4 +18,5 @@ class plugin_cinder_netapp::params (
$backend_class = 'plugin_cinder_netapp::backend::rbd'
}
$netapp_backend_class = 'plugin_cinder_netapp::backend::netapp'
}

View File

@ -0,0 +1,7 @@
storage_hash:
volume_backend_names:
netapp: cinder_netapp
<% if ! @default_backend -%>
volumes_lvm: false
volumes_ceph: false
<% end -%>

View File

@ -1,20 +1,23 @@
# The task modifies hiera data to have right set cinder-types
- id: netapp_hiera_override
type: puppet
version: 2.0.0
groups: [primary-controller, controller]
requires: [openstack-cinder, deploy_start]
required_for: [create-cinder-types, deploy_end]
groups: [primary-controller, controller, cinder]
requires: [hiera]
required_for: [create-cinder-types]
parameters:
puppet_manifest: puppet/manifests/hiera_override.pp
puppet_modules: /etc/puppet/modules
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 360
# The task is executed on controller nodes only in particular cases
# See site.pp for more details
- id: netapp_cinder
type: puppet
version: 2.0.0
groups: [cinder]
requires: [top-role-cinder, deploy_start]
required_for: [deploy_end]
role: [primary-controller, controller, cinder]
requires: [post_deployment_start]
required_for: [post_deployment_end]
parameters:
puppet_manifest: puppet/manifests/site.pp
puppet_modules: puppet/modules:/etc/puppet/modules
@ -24,11 +27,11 @@
type: puppet
version: 2.0.0
groups: [compute]
requires: [top-role-compute, deploy_start]
requires: [top-role-compute]
required_for: [deploy_end]
parameters:
puppet_manifest: puppet/manifests/compute.pp
puppet_modules: /etc/puppet/modules
puppet_modules: puppet/modules:/etc/puppet/modules
timeout: 360
- id: deleting_old_cinder_volume_services

View File

@ -1,6 +1,6 @@
========
Appendix
========
#. `Data ONTAP documentation <http://mysupport.netapp.com/documentation/productlibrary/index.html?productID=30092>`_
#. `ONTAP documentation <http://mysupport.netapp.com/documentation/productlibrary/index.html?productID=30092>`_
#. `E-Series documentation <https://mysupport.netapp.com/info/web/ECMP1658252.html>`_
#. `E-Series/EF-Series documentation <https://mysupport.netapp.com/info/web/ECMP1658252.html>`_

View File

@ -54,9 +54,9 @@ author = u'Mirantis Inc.'
# built documents.
#
# The short X.Y version.
version = '4.0-4.0.0-1'
version = '4.2-4.2.1-1'
# The full version, including alpha/beta/rc tags.
release = '4.0-4.0.0-1'
release = '4.2-4.2.1-1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -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,31 +34,38 @@ 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 <http://mysupport.netapp.com/documentation/productlibrary/index.html?productID=30092>`_.
* 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 <https://mysupport.netapp.com/info/web/ECMP1658252.html>`_.
* 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
-----------
* Deployment fails if ``cinder`` role is not assigned to ``controller`` nodes
* 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
* 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

View File

@ -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 <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#create-a-new-openstack-environment>`_.
#. 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,85 +18,87 @@ 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**
radiobutton 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 <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#add-nodes-to-the-environment>`_.
Please, note that all controller nodes should be configured with Cinder role.
#. 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
Following packages ``nfs-common``, ``open-iscsi``, ``multipath-tools`` aren't included by default when local mirror is created. To have these packages available during deploy you have to add them into ``/usr/share/fuel-mirror/ubuntu.yaml`` file in ``packages: &packages`` section.
@ -110,8 +110,12 @@ create OpenStack environments that use NetApp storage as a Cinder backend.
- "open-iscsi"
- "multipath-tools"
#. Press `Deploy button <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#deploy-changes>`_
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 <http://content.mirantis.com/Mirantis-NetApp-Reference-Architecture-Landing-Page.html>`_, 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,11 +1,5 @@
.. NetApp plugin for Fuel documentation master file, created by
sphinx-quickstart on Wed Feb 17 20:38:48 2016.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
============================================
Guide to the Cinder NetApp plugin ver. 4.0.0
Guide to the Cinder NetApp plugin ver. 4.2.1
============================================
This document will guide you through the steps to install,

View File

@ -1,28 +1,28 @@
========================
Installing NetApp plugin
========================
To install the Cinder Netapp plugin, follow these steps:
#. Download it from the `Fuel Plugins Catalog`_.
#. Copy the plugin's RPM to the Fuel Master node (if you don't
have the Fuel Master node, please see `the official
Mirantis OpenStack documentation <https://docs.mirantis.com/openstack/fuel/fuel-8.0/quickstart-guide.html#installing-mirantis-openstack-manually>`_)::
Mirantis OpenStack documentation`_::
[root@home ~]# scp cinder_netapp-4.0-4.0.0-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 <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#using-fuel-cli>`_::
#. Log into Fuel Master node and install the plugin using the `Fuel CLI`_::
[root@fuel-master ~]# fuel plugins --install cinder_netapp-4.0-4.0.0-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.0.0 | 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

View File

@ -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

View File

@ -1,10 +1,10 @@
attributes:
metadata:
group: 'storage'
multibackend:
default_backend:
value: false
label: 'Multibackend Enabled'
description: 'NetApp driver will be used as a Cinder Multibackend feature'
label: 'MOS Backend Enabled'
description: 'If the option is checked, MOS default backend (LVM over iSCSI\Ceph) will be used along with NetApp'
weight: 10
type: 'checkbox'
@ -13,15 +13,15 @@ attributes:
value: 'ontap_cluster'
values:
- data: 'ontap_cluster'
label: 'Ontap Cluster'
description: 'Data ONTAP operating in Clustered storage family'
label: 'Clustered Data ONTAP'
description: ''
- data: 'ontap_7mode'
label: 'Ontap 7-Mode'
description: 'Data ONTAP operating in 7-Mode storage family'
label: 'Data ONTAP 7-Mode'
description: ''
- data: 'eseries'
label: 'E-Series'
description: 'E-Series storage family'
label: 'Netapp Storage Family'
label: 'E-Series/EF-Series'
description: ''
label: 'NetApp Storage Family'
weight: 11
type: 'radio'
netapp_storage_protocol:
@ -36,7 +36,7 @@ attributes:
restrictions:
- condition: "settings:cinder_netapp.netapp_storage_family.value == 'eseries'"
action: 'hide'
label: 'Netapp Storage Protocol'
label: 'NetApp Storage Protocol'
description: 'The storage protocol to be used on the data path with the storage system'
weight: 12
type: 'radio'
@ -58,13 +58,13 @@ attributes:
# Connection
netapp_server_hostname:
value: ''
label: 'NetApp Hostname'
label: 'NetApp Storage Hostname/IP'
description: 'The hostname or IP address for the storage system or proxy server'
weight: 31
type: 'text'
netapp_server_port:
value: ''
label: 'NetApp Server Port'
label: 'NetApp Storage Port'
description: 'The TCP port to use for communication with the storage system or proxy server. If not specified, Data ONTAP drivers will use 80 for HTTP and 443 for HTTPS; E-Series will use 8080 for HTTP and 8443 for HTTPS'
weight: 32
type: 'text'
@ -77,7 +77,7 @@ attributes:
- data: 'https'
label: 'https'
description: ''
label: 'Netapp Transport Type'
label: 'Transport Type'
description: 'The transport protocol used for communication with the storage system or proxy server'
weight: 33
type: 'radio'
@ -85,8 +85,8 @@ attributes:
# NFS Shares
nfs_server_ip:
value: ''
label: 'NetApp NFS server'
description: 'The hostname or IP address for NFS server started on NetApp apliance'
label: 'CDOT Data LIF IP address'
description: 'The Data LIF IP address is part of the NFS export location (e.g. If the export is 10.10.10.10:/cinder_flexvol, this value will be 10.10.10.10)'
weight: 41
type: 'text'
restrictions:
@ -112,8 +112,8 @@ attributes:
action: 'hide'
nfs_server_share1:
value: ''
label: 'NFS share'
description: 'The NFS share path (e.g. /vol1)'
label: 'CDOT FlexVol volume junction path'
description: 'The junction path is part of the NFS export location and specifies the path for the FlexVol volume in which Cinder volumes should be placed (e.g. If the export is 10.10.10.10:/cinder_flexvol, this value will be /cinder_flexvol)'
weight: 43
type: 'text'
restrictions:
@ -121,8 +121,8 @@ attributes:
action: 'hide'
nfs_server_share2:
value: ''
label: 'NFS share 2'
description: 'The NFS share path (e.g. /vol2)'
label: 'CDOT FlexVol volume junction path 2'
description: 'The junction path is part of the NFS export location and specifies the path for the FlexVol volume in which Cinder volumes should be placed (e.g. If the export is 10.10.10.10:/cinder_flexvol_2, this value will be /cinder_flexvol_2)'
weight: 44
type: 'text'
restrictions:
@ -130,8 +130,8 @@ attributes:
action: 'hide'
nfs_server_share3:
value: ''
label: 'NFS share 3'
description: 'The NFS share path (e.g. /vol3)'
label: 'CDOT FlexVol volume junction path 3'
description: 'The junction path is part of the NFS export location and specifies the path for the FlexVol volume in which Cinder volumes should be placed (e.g. If the export is 10.10.10.10:/cinder_flexvol_3, this value will be /cinder_flexvol_3)'
weight: 45
type: 'text'
restrictions:
@ -139,8 +139,8 @@ attributes:
action: "hide"
nfs_server_share4:
value: ''
label: 'NFS share 4'
description: 'The NFS share path (e.g. /vol4)'
label: 'CDOT FlexVol volume junction path 4'
description: 'The junction path is part of the NFS export location and specifies the path for the FlexVol volume in which Cinder volumes should be placed (e.g. If the export is 10.10.10.10:/cinder_flexvol_4, this value will be /cinder_flexvol_4)'
weight: 46
type: 'text'
restrictions:
@ -150,8 +150,8 @@ attributes:
# Ontap Cluster
netapp_vserver:
value: ''
label: 'Vserver'
description: 'This option specifies the virtual storage server (Vserver) name on the storage cluster on which provisioning of block storage volumes should occur'
label: 'Storage Virtual Machine'
description: 'This option specifies the storage virtual machine (vserver) name in which provisioning of block storage volumes should occur'
weight: 51
type: 'text'
restrictions:
@ -162,7 +162,7 @@ attributes:
netapp_vfiler:
value: ''
label: 'vFiler'
description: '(Optionnal) The vFiler unit on which provisioning of block storage volumes will be done'
description: '(Optional) The vFiler unit on which provisioning of block storage volumes will be done'
weight: 51
type: 'text'
restrictions:
@ -191,7 +191,7 @@ attributes:
netapp_eseries_host_type:
value: 'linux_dm_mp'
label: 'Host Type'
description: '(Optionnal) This option defines the type of operating system for all initiators that can access a LUN'
description: '(Optional) This option defines the type of operating system for all initiators that can access a LUN'
weight: 62
type: 'text'
restrictions:
@ -200,7 +200,7 @@ attributes:
netapp_enable_multiattach:
value: false
label: 'Multiattach'
description: '(Optionnal) This option specifies whether the driver should allow operations that require multiple attachments to a volume'
description: '(Optional) This option specifies whether the driver should allow operations that require multiple attachments to a volume'
weight: 63
type: 'checkbox'
restrictions:
@ -211,7 +211,7 @@ attributes:
nfs_mount_options:
value: ''
label: 'NFS Mount Options'
description: '(Optional) Will be used when mouning shares on the Storage and Compute nodes'
description: '(Optional) This option will be used when mounting shares on the Storage and Compute nodes'
weight: 61
type: 'text'
restrictions:
@ -219,8 +219,8 @@ attributes:
action: 'hide'
thres_avl_size_perc_start:
value: '20'
label: 'Thres Avl Size Perc Start'
description: '(Optionnal) If the percentage of available space for an NFS share has dropped below the value specified by this option, the NFS image cache will be cleaned'
label: 'Threshold Available Size (% Start)'
description: '(Optional) If the percentage of available space for an NFS share has dropped below the value specified by this option, the NFS image cache will be cleaned'
weight: 62
type: 'text'
restrictions:
@ -228,8 +228,8 @@ attributes:
action: "hide"
thres_avl_size_perc_stop:
value: '60'
label: 'Thres Avl Size Perc Stop'
description: '(Optionnal) When the percentage of available space on an NFS share has reached the percentage specified by this option, the driver will stop clearing files from the NFS image cache'
label: 'Threshold Available Size (% Stop)'
description: '(Optional) When the percentage of available space on an NFS share has reached the percentage specified by this option, the driver will stop clearing files from the NFS image cache'
weight: 63
type: 'text'
restrictions:
@ -237,8 +237,8 @@ attributes:
action: 'hide'
expiry_thres_minutes:
value: '720'
label: 'Expiry Thres Minutes'
description: '(Optionnal) This option specifies the threshold for last access time for images in the NFS image cache'
label: 'Expiry Threshold (Minutes)'
description: '(Optional) This option specifies the threshold for last access time for images in the NFS image cache'
weight: 64
type: 'text'
restrictions:
@ -248,8 +248,8 @@ attributes:
# Ontap Cluster with NFS
netapp_copyoffload_tool_path:
value: ''
label: 'Copyoffload Tool Path'
description: '(Optionnal) This option specifies the path of the NetApp copy offload tool binary'
label: 'Copy Offload Tool Path'
description: '(Optional) This option specifies the path of the NetApp copy offload tool binary'
weight: 65
type: 'text'
restrictions:
@ -260,7 +260,7 @@ attributes:
netapp_pool_name_search_pattern:
value: '(.+)'
label: 'Pool Search Pattern'
description: '(Optionnal) It is used to restrict provisioning to the specified volume groups or disk pools. Specify the value of this option as a regular expression which will be applied to the names of volume groups or disk pools from the storage backend which represent pools in Cinder'
description: '(Optional) This option is used to restrict provisioning to the specified volume groups or disk pools. Specify the value of this option as a regular expression which will be applied to the names of volume groups or disk pools from the storage backend which represent pools in Cinder'
weight: 61
type: 'text'
restrictions:
@ -268,8 +268,8 @@ attributes:
action: "hide"
use_multipath_for_image_xfer:
value: true
label: 'Multipath for Image Xfer'
description: '(Optionnal) Using this option will permit Cinder to use multiple paths for increased bandwidth. It affects Nova settings'
label: 'Multipath for Image Transfer'
description: '(Optional) If multipath has been enabled on your OpenStack hosts, then setting this option will permit Cinder to use multiple paths for increased bandwidth'
weight: 65
type: 'checkbox'
restrictions:
@ -280,7 +280,7 @@ attributes:
netapp_host_type:
value: 'linux'
label: 'Host Type'
description: '(Optionnal) This option defines the type of operating system for all initiators that can access a LUN'
description: '(Optional) This option defines the type of operating system for all initiators that can access a LUN'
weight: 62
type: 'text'
restrictions:
@ -289,7 +289,7 @@ attributes:
netapp_lun_ostype:
value: 'linux'
label: 'LUN OS type'
description: '(Optionnal) This option defines the type of operating system that will access a LUN exported from Data ONTAP'
description: '(Optional) This option defines the type of operating system that will access a LUN exported from Data ONTAP'
weight: 63
type: 'text'
restrictions:
@ -298,7 +298,7 @@ attributes:
netapp_lun_space_reservation:
value: true
label: 'LUN Space Reservation'
description: '(Optionnal) This option specifies whether space will be reserved when creating Cinder volumes on NetApp backends using the iSCSI protocol'
description: '(Optional) This option specifies whether space will be reserved when creating Cinder volumes on NetApp backends using the iSCSI protocol'
weight: 64
type: 'checkbox'
restrictions:
@ -309,12 +309,12 @@ attributes:
reserved_percentage:
value: '0'
label: 'Reserved Percentage'
description: '(Optionnal) This option represents the amount of total capacity of a storage pool that will be reserved and cannot be utilized for provisioning Cinder volumes'
description: '(Optional) This option represents the amount of total capacity of a storage pool that will be reserved and cannot be utilized for provisioning Cinder volumes'
weight: 71
type: 'text'
max_oversubscription_ratio:
value: '1.0'
label: 'Oversubscription Ratio'
description: '(Optionnal) This option is defined as a float, and specifies the amount of over-provisioning to allow when thin provisioning is being used in the storage pool. A value of 1.0 will mean that the provisioned capacity will not be able to exceed the total capacity, while larger values will result in increased levels of allowed over-provisioning'
description: '(Optional) This option specifies the amount of over-provisioning to allow when thin provisioning is used in the storage pool. A value of 1.0 will mean that the provisioned capacity will not be able to exceed the total capacity, while larger values will result in increased levels of over-provisioning'
weight: 72
type: 'text'

View File

@ -3,7 +3,7 @@ name: cinder_netapp
# Human-readable name for your plugin
title: Cinder and NetApp integration
# Plugin version
version: '4.0.0'
version: '4.2.1'
# Description
description: Enables using NetApp as a Cinder backend
# Required fuel version

View File

@ -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 famillies:
- ONTAP with Cluster Mode and 7 Mode
- E-series
The plugin support following storage families:
- 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 *<cinder.conf>*::
ONTAP with Cluster Mode via NFS:
* All cinder hosts should have following configuration in *<cinder.conf>*::
[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 *<cinder.conf>*::
* All cinder hosts should have following configuration in *<cinder.conf>*::
[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 *<cinder.conf>*::
Data ONTAP 7-Mode via NFS:
==========================
* All cinder hosts should have following configuration in *<cinder.conf>*::
[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 *<cinder.conf>*::
* All cinder hosts should have following configuration in *<cinder.conf>*::
[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 *<cinder.conf>*::
* All cinder hosts should have following configuration in *<cinder.conf>*::
[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 inpact 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