Fix docs to accordance with actual version

Change-Id: Ib35eccbf4012df37353c901f2e25be43379b7fca
This commit is contained in:
Andrey Volochay 2016-03-17 20:00:59 +03:00
parent e29fccef3e
commit 1e6fcf4aae
28 changed files with 594 additions and 371 deletions

316
README.md
View File

@ -1,9 +1,6 @@
Cinder NetApp plugin for Fuel
=============================
cinder-netapp plugin
--------------------
Overview
--------
@ -11,326 +8,29 @@ NetApp plugin can replace the Cinder LVM backend by Cinder Netapp Backend or wor
LVM is the default volume backend that uses local volumes managed by LVM.
The plugin support following storage familly mode:
- 7 Mode
- Cluster Mode
- ONTAP 7-Mode
- ONTAP Cluster Mode
- E-Series
This repo contains all necessary files to build Cinder NetApp Fuel plugin.
Requirements
------------
| Requirement | Version/Comment |
|------------------------------------------------------------------------------------------|---------------------------------------------------------|
| Mirantis Openstack compatibility | 7.0 |
| Netapp filer or appliance is reacheble via one of the Mirantis OPenstack networks | Cluster mode or 7 mode storage familly with nfs4 enabled|
| 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 |
Recommendations
---------------
None.
Limitations
-----------
Since only one netapp backend can be setup, Cinder node will shared the same backend
Installation Guide
==================
CMODE appliance
---------------
Pre setup
~~~~~~~~~
1. Using VMware ESX or VMware player, create 2 networks called VM Network and Cluster Network.
2. Untar the vsim and add it to your VMware ESX inventory/VMware Player inventory.
NOTE: The VM will have 4 NICs. The first 2 e0a and e0b are connected to Cluster
Network and the second 2 (e0c and e0d) are connected to the VM Network. The VM
Network should be the regular VMware vSwitch that is bridged onto the lab network.
The Cluster Network is a vSwitch that's connected to nothing. The purpose of the
Cluster Network is the following: when you have multiple vsims you want to cluster
together, they use this private network to talk to each other. The point is not in
clustering vsims (this will not be done), so this network will be unused, but you should
still create it. You should only take into consideration that e0a and e0b are connected to
a fake network so you should not use them; use e0c and e0d exclusively.
OS setup
OS setup
~~~~~~~~
1. Start up the VM with the console open.
2. Press Ctrl­C when the message about the boot menu appears (you only get about 15 seconds to do this so do not miss it).
3. Select option 4 (Clean configuration and initialize all disks).
4. Answer Yes to the next 2 questions.
5. The VM will reboot and do some work.
Cluster setup
~~~~~~~~~~~~~
1. When it asks if you want to join or create a cluster, select Create.
2. Answer Yes when it asks about a single node cluster.
3. Enter the cluster name: <cluster_name>­cluster.
4. Enter cluster base license key. Do not enter any more license keys.
5. Enter the admin password twice.
6. Cluster management interface.
Port: e0c
IP address: 192.168.4.10
Netmask: 255.255.255.128
Default gateway 192.168.4.1
DNS domain name: <name>.netapp.com
Nameserver IP: 192.18.4.1
Location: <location_name>
7. Node management interface.
Port: e0c
IP address: 192.168.4.12
Netmask: 255.255.255.128
Default gateway 192.168.4.1
8. Press enter to acknowledge the autosupport notification
Cluster configuration
~~~~~~~~~~~~~~~~~~~~~
1. You can either continue through the VMware console, or switch to SSH at this point. If you SSH, connect to the cluster management interface (in our case, that is 192.168.4.10).
2. Login at the prompt using <admin_name> and <password>.
3. Add the unassigned disks to the node by entering the following command: storage disk assign -all true -node <cluster_name>-cluster-01
4. Create an aggregate using 10 disks: storage aggregate create -aggregate aggr1 -diskcount 10
5. Create a vserver:
``vserver create -vserver <server_name>-vserver -rootvolume vol1 -aggregate aggr1 -ns-switch file -rootvolume-security-style unix``
6. Create a data LIF:
``network interface create -vserver bswartz-vserver -lif bswartz-data -role data -home-node <cluster_name>-cluster-01 -home-port e0d -address <192.168.4.15>-netmask <255.255.255.128>``
7. Add a rule to the default export policy:
``vserver export-policy rule create -vserver <server_name>-vserver -policyname default -clientmatch 0.0.0.0/0 -rorule any -rwrule any -superuser any -anon 0``
8. Enable NFS on the vServer:
``vserver nfs create -vserver <server_name>-vserver -access true``
9. Create a volume with some free space:
``volume create -vserver <server_name>-vserver -volume vol<volume_number> -aggregate aggr1 -size 5g -junction-path /vol<volume_number>``
7Mode appliance
---------------
Pre setup
~~~~~~~~~
1. Using VMware ESX or VMware player, create 2 networks called VM Network and Cluster Network.
2. Untar the vsim and add it to your VMware ESX inventory/VMware Player inventory.
NOTE: The VM will have 4 NICs. The first 2 (e0a and e0b) are connected to Cluster
Network and the second 2 (e0c and e0d) are connected to the VM Network. The VM
Network should be the regular VMware vSwitch that is bridged onto the lab network.
The Cluster Network is a vSwitch that's connected to nothing. The purpose of the
Cluster Network is the following: when you have multiple vsims you want to cluster
together, they use this private network to talk to each other. The point is not in
clustering vsims (this will not be done), so this network will be unused, but you should
still create it. You should only take into consideration that e0a and e0b are connected to
a fake network so you should not use them; use e0c and e0d exclusively.
OS setup
OS setup
~~~~~~~~
1. Start up the VM with the console open.
2. Press Ctrl­C when the message about the boot menu appears (you only get about ­15 seconds to do this so do not miss it).
3. Select option 4 (Clean configuration and initialize all disks).
4. Answer Yes to the next 2 questions.
5. The VM will reboot and do some work.
7Mode setup
~~~~~~~~~~~
1. enter the hostname.
2. when ask to enable ipv6 select no.
3. when ask to configure interface groups select no.
4. configure the 4 nic.
IP address: 192.168.4.10
Netmask: 255.255.255.128
5. configure the default gateway ipv4.
6. When ask to enter the name or ip address of the administration host, leave empty and press enter.
7. select your time zonetime zone.
8. enter the root directory for HTTP files [ /home/http]
9. when ask if you you want to run DNS resolver, NIS Client or configure SAS shelves answer no.
10. configure password for admin user.
Storage configuration
~~~~~~~~~~~~~~~~~~~~~
1. You can either continue through the VMware console, or switch to SSH at this point. If you SSH, connect to the cluster management interface (in our case, that is <192.168.4.10>).
2. Login at the prompt using <admin_name> and <password>.
3. Add the unassigned disks to the node:
``disk assign all``
4. Create an aggregate using 10 disks:
``aggr create aggr<aggregate_number> 10``
5. Create a volume with some free space:
``vol create vol<volume_number> aggr<aggregate_number> 5g``
6. add license for nfs :
``license add <xxx>``
7. enable nfs:
``nfs on setup``
8. Unexport the volume (which gets automatically exported):
``exportfs -z /vol/vol<volume_number>``
9. export /vol/vol<volume_number> for NFS readwrite and roor access for server on the Mirantis openstack network:
``exportfs -p rw=<192.168.168.0/24>,root=<192.168.168.0/24>,rw=<10.194.167.0/24>,root=<10.194.167.0/24> /vol/vol1``
10. enable httpd (needed to manage your appliance using the OnCommand System Manager):
``options httpd.admin.enable true``
``options httpd.admin.ssl.enable true``
cinder-netapp plugin installation
---------------------------------
1. Clone the fuel-plugin repo from: https://github.com/openstack/fuel-plugin-cinder-netapp.git
``git clone``
2. Install the Fuel Plugin Builder:
``pip install fuel-plugin-builder``
3. Build nova-nfs Fuel plugin:
``fpb --build fuel-plugin-cinder-netapp/``
4. The cinder_netapp-<x.x.x>.rpm file will be created in the plugin folder (fuel-plugin-cinder-netapp)
5. Move this file to the Fuel Master node with secure copy (scp):
``scp cinder_netapp-<x.x.x>.rpm root@:<the_Fuel_Master_node_IP address>:/tmp``
``cd /tmp``
6. Install the cinder_netapp plugin:
``fuel plugins --install cinder_netapp-<x.x.x>.rpm``
7. Verify that the plugin is installed correctly:
``fuel plugins --list``
8. Plugin is ready to use and can be enabled on the Settings tab of the Fuel web UI.
User Guide
==========
Cinder-netapp plugin configuration
----------------------------------
1) Enable the plug-in on the settings tab of the Fuel web UI
2) Enter Netapp Credentails int the Cinder and Netapp integration. NetApp parameters vary depending the storage familly mode and storage protocole selected
a) Cluster Mode and nfs
Here is a screenshot of the fields
![Cinder-netapp Cluster Mode nfs fields](./figures/cinder-netapp-cmode-nfs-plugin.png "Cinder-netapp Cluster Mode nfs fields")
b) Cluster Mode and iscsi
Here is a screenshot of the fields
![Cinder-netapp Cluster Mode iscsi fields](./figures/cinder-netapp-cmode-iscsi-plugin.png "Cinder-netapp Cluster Mode iscsi fields")
c) 7 Mode and nfs
Here is a screenshot of the fields
![Cinder-netapp 7 Mode nfs fields](./figures/cinder-netapp-7mode-nfs-plugin.png "Cinder-netapp 7 Mode nfs fields")
d) 7 Mode and iscsi
Here is a screenshot of the fields
![Cinder-netapp 7 Mode iscsi fields](./figures/cinder-netapp-7mode-iscsi-plugin.png "Cinder-netapp 7 Mode iscsi fields")
e) E-Series and iscsi
Here is a screenshot of the fields
![Cinder-netapp E-Series iscsi fields](./figures/cinder-netapp-eseries-iscsi-plugin.png "Cinder-netapp E-Series iscsi fields")
3) Assign Cinder role to one of the nodes
4) For more information on NetApp integration into Cinder, configuration and API issues, see [the Official Netapp Guide for Openstack](http://docs.openstack.org/juno/config-reference/content/netapp-volume-driver.html).
Deployment details
------------------
Create nfs_share config file
Edit cinder config file to use netapp common driver
Restart cinder services
Known issues
------------
None.
Release Notes
-------------
**4.0.0**
* add MOS 8.0 support
**3.2.0**
* add E-Series storage familly support

216
doc/Makefile Normal file
View File

@ -0,0 +1,216 @@
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
.PHONY: help
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " applehelp to make an Apple Help Book"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " coverage to run coverage check of the documentation (if enabled)"
.PHONY: clean
clean:
rm -rf $(BUILDDIR)/*
.PHONY: html
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
.PHONY: dirhtml
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
.PHONY: singlehtml
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
.PHONY: pickle
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
.PHONY: json
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
.PHONY: htmlhelp
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
.PHONY: qthelp
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/DetachRabbitMQpluginforFuel.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/DetachRabbitMQpluginforFuel.qhc"
.PHONY: applehelp
applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@echo
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
@echo "N.B. You won't be able to view it unless you put it in" \
"~/Library/Documentation/Help or install it in your application" \
"bundle."
.PHONY: devhelp
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/DetachRabbitMQpluginforFuel"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/DetachRabbitMQpluginforFuel"
@echo "# devhelp"
.PHONY: epub
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
.PHONY: latex
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
.PHONY: latexpdf
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: latexpdfja
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
.PHONY: text
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
.PHONY: man
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
.PHONY: texinfo
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
.PHONY: info
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
.PHONY: gettext
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
.PHONY: changes
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
.PHONY: linkcheck
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
.PHONY: doctest
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
.PHONY: coverage
coverage:
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
@echo "Testing of coverage in the sources finished, look at the " \
"results in $(BUILDDIR)/coverage/python.txt."
.PHONY: xml
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
.PHONY: pseudoxml
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."

View File

@ -1,7 +0,0 @@
Licenses
========
The plugin does not include any third-party
components and is published under Apache 2.0 license.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

View File

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

251
doc/source/conf.py Normal file
View File

@ -0,0 +1,251 @@
# -*- coding: utf-8 -*-
#
# NetApp plugin for Fuel documentation build configuration file, created by
# sphinx-quickstart on Wed Feb 17 20:38:48 2016.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys
import os
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = []
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = 'NetApp plugin for Fuel'
copyright = u'2016, Mirantis Inc.'
author = u'Mirantis Inc.'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '4.0-4.0.0-1'
# The full version, including alpha/beta/rc tags.
release = '4.0-4.0.0-1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = []
# The reST default role (used for this markup: `text`) to use for all
# documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'alabaster'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# If false, no module index is generated.
#html_domain_indices = True
# If false, no index is generated.
#html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None
# Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages:
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
#html_search_language = 'en'
# A dictionary with options for the search language support, empty by default.
# Now only 'ja' uses this config value
#html_search_options = {'type': 'default'}
# The name of a javascript file (relative to the configuration directory) that
# implements a search results scorer. If empty, the default will be used.
#html_search_scorer = 'scorer.js'
# Output file base name for HTML help builder.
htmlhelp_basename = 'NetApppluginforFueldoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
# Latex figure (float) alignment
#'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'NetApppluginforFuel.tex', 'NetApp plugin for Fuel Documentation',
u'Mirantis Inc.', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#latex_use_parts = False
# If true, show page references after internal links.
#latex_show_pagerefs = False
# If true, show URL addresses after external links.
#latex_show_urls = False
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# If false, no module index is generated.
#latex_domain_indices = True

View File

@ -16,22 +16,27 @@ the storage protocol on the storage family system.
The NetApp unified driver is an extensible interface that can support new
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
Requirements
------------
======================= =================================
Requirement Version/Comment
======================= =================================
Fuel 7.0
Fuel 8.0
ONTAP or E-Series All storage family is supported.
======================= =================================
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>`_.
@ -40,3 +45,17 @@ Prerequisites
* 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>`_.
Release Nodes
-------------
* 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
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
* open-iscsi
* multipath-tools

View File

@ -1,21 +1,20 @@
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.
Configuring NetApp plugin
-------------------------
#. 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-7.0/user-guide.html#create-a-new-openstack-environment>`_.
`the instructions <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#create-a-new-openstack-environment>`_.
#. Once the environment is created, open the **Settings** tab of the Fuel Web UI
and scroll down the page. Select the **Cinder and NetApp integration**
and then **Storage**. Scroll down the page. Select the **Cinder and NetApp integration**
checkbox:
.. image:: images/select-checkbox.png
@ -82,7 +81,7 @@ Configuring NetApp plugin
.. image:: images/7mode_iscsi.png
:width: 100%
- If you plan to use E-series, click **E-Series**
radiobutton and select the only available *iscsi* option in **Netapp storage protocol**.
You should also choose NetApp transport type (http or https).
@ -93,16 +92,25 @@ Configuring NetApp plugin
- Netapp server hostname
- Netapp controller IPs
- Netapp SA password
- Storage pools
.. image:: images/eseries.png
:width: 100%
#. Using *Nodes* tab,
`add nodes and assign roles to them <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#add-nodes-to-the-environment>`_.
`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.
#. Press `Deploy button <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#deploy-changes>`_
#. 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.
.. code-block:: ruby
packages: &packages
- "nfs-common
- "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.
#. When the deployment is done, you may perform functional testing.

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

24
doc/source/index.rst Normal file
View File

@ -0,0 +1,24 @@
.. 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
============================================
This document will guide you through the steps to install,
configure and use Cinder NetApp plugin for Fuel.
Contents:
.. toctree::
:maxdepth: 2
description
installation
guide
utilization
licenses
appendix

View File

@ -1,29 +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-7.0/quickstart-guide.html#installing-mirantis-openstack-manually>`_)::
Mirantis OpenStack documentation <https://docs.mirantis.com/openstack/fuel/fuel-8.0/quickstart-guide.html#installing-mirantis-openstack-manually>`_)::
[root@home ~]# scp cinder_netapp-3.2-3.2.0-1.noarch.rpm root@fuel-master:/tmp
[root@home ~]# scp cinder_netapp-4.0-4.0.0-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-7.0/user-guide.html#using-fuel-cli>`_::
`Fuel CLI <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#using-fuel-cli>`_::
[root@fuel-master ~]# fuel plugins --install cinder_netapp-3.2-3.2.0-1.noarch.rpm
[root@fuel-master ~]# fuel plugins --install cinder_netapp-4.0-4.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 | 3.2.0 | 3.0.0
1 | cinder_netapp | 4.0.0 | 4.0.0
.. _Fuel Plugins Catalog: https://www.mirantis.com/products/openstack-drivers-and-plugins/fuel-plugins/

4
doc/source/licenses.rst Normal file
View File

@ -0,0 +1,4 @@
Licenses
========
The plugin does not include any third-party components and is published under Apache 2.0 license.

View File

@ -0,0 +1,25 @@
Utilization
===========
Using
-----
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:
* Create a volume via Cinder and set type as ``netapp``
* Attach the volume to any available instance
* 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
* Enable ``debug`` for Cinder when information in log files is not enough
* When NFS is used, check that nfs shares are mounted and ``cinder`` user has ability to write into
* When iSCSI is used, check network connectivity between iscsi ports on NetApp and Cinder\Compute nodes

View File

@ -1,12 +0,0 @@
============================================
Guide to the Cinder NetApp plugin ver. 3.2.0
============================================
This document will guide you through the steps to install,
configure and use Cinder NetApp plugin for Fuel.
.. include:: content/description.rst
.. include:: content/installation.rst
.. include:: content/guide.rst
.. include:: content/licenses.rst
.. include:: content/appendix.rst

View File

@ -18,7 +18,7 @@ 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 7.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 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
@ -27,7 +27,7 @@ The plugin support following storage famillies:
User Story 1: ONTAP devices with all modes
---------------------------------------------------
TThis case will provide availability to configure OpenStack compute instances to access 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:
ONTAP with Cluster Mode via NFS:
@ -45,16 +45,12 @@ ONTAP with Cluster Mode via NFS:
netapp_storage_protocol = nfs
nfs_shares_config = /etc/cinder/shares.conf
netapp_vserver = VSERVER
netapp_copyoffload_tool_path = COPYOFFLOAD_TOOL_PATH
expiry_thres_minutes = EXPIRY_THRES_MINUTES
thres_avl_size_perc_stop = THRES_AVL_SIZE_PERC_STOP
thres_avl_size_perc_start = THRES_AVL_SIZE_PERC_START
Where ``netapp_login``, ``netapp_password``, ``$netapp_server_hostname``, ``netapp_transport_type``, ``netapp_storage_family``, ``netapp_storage_protocol``, ``netapp_vserver``, ``netapp_copyoffload_tool_path``, ``expiry_thres_minutes``, ``thres_avl_size_perc_stop``, ``thres_avl_size_perc_start`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab.
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:
- ``nfs-utils`` for Red-Hat like system or ``nfs-common`` for Debian like systems should be installed.
- ``nfs-common`` should be installed
- Ensure that ``nfs`` service is enabled and running in the system
ONTAP with Cluster Mode via iSCSI:
@ -71,10 +67,13 @@ ONTAP with Cluster Mode via iSCSI:
netapp_transport_type = TRANSPORT_TYPE
netapp_storage_family = ontap_cluster
netapp_storage_protocol = iscsi
netapp_size_multiplier = SIZE_MULTIPLER
netapp_vserver = VSERVER
Where ``netapp_login``, ``netapp_password``, ``$netapp_server_hostname``, ``netapp_transport_type``, ``netapp_storage_family``, ``netapp_storage_protocol``, ``netapp_size_multiplier``, ``netapp_vserver`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab.
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:
- ``open-iscsi`` and ``multipath-tools`` should be installed
ONTAP with 7 Mode via NFS:
@ -92,15 +91,12 @@ ONTAP with 7 Mode via NFS:
netapp_storage_protocol = nfs
nfs_shares_config = /etc/cinder/shares.conf
netapp_vfiler = VFILTER
expiry_thres_minutes = EXPIRY_THRES_MINUTES
thres_avl_size_perc_stop = THRES_AVL_SIZE_PERC_STOP
thres_avl_size_perc_start = THRES_AVL_SIZE_PERC_START
Where ``netapp_login``, ``netapp_password``, ``$netapp_server_hostname``, ``netapp_transport_type``, ``netapp_storage_family``, ``netapp_storage_protocol``, ``netapp_vfilter``, ``expiry_thres_minutes``, ``thres_avl_size_perc_stop``, ``thres_avl_size_perc_start`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab.
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:
- ``nfs-utils`` for Red-Hat like system or ``nfs-common`` for Debian like systems should be installed.
- ``nfs-common`` should be installed.
- Ensure that ``nfs`` service is enabled and running in the system
ONTAP with 7 Mode via iSCSI:
@ -117,12 +113,13 @@ ONTAP with 7 Mode via iSCSI:
netapp_transport_type = TRANSPORT_TYPE
netapp_storage_family = ontap_7mode
netapp_storage_protocol = iscsi
netapp_size_multiplier = SIZE_MULTIPLER
netapp_vfiler = VFILTER
netapp_volume_list = VOLUME_LIST
Where ``netapp_login``, ``netapp_password``, ``$netapp_server_hostname``, ``netapp_transport_type``, ``netapp_storage_family``, ``netapp_storage_protocol``, ``netapp_vfiler``, ``netapp_volume_list`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab.
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:
- ``open-iscsi`` and ``multipath-tools`` should be installed
User Story 2: E-series devices
-------------------------------------------------------------
@ -141,14 +138,16 @@ This case will provide availability to configure OpenStack compute instances to
netapp_transport_type = TRANSPORT_TYPE
netapp_storage_family = eseries
netapp_storage_protocol = iscsi
netapp_eseries_host_type = linux_dm_mp
netapp_host_type = linux_dm_mp
netapp_controller_ips = CONTROLLER_IPS
netapp_sa_password = SA_PASSWORD
netapp_storage_pools = STORAGE_POOLS
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``, ``netapp_storage_pools`` should be configured through the Fuel Web UI in Cinder and NetApp integration section of the **Settings** tab.
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:
- ``open-iscsi`` and ``multipath-tools`` should be installed
Alternatives
---------------