openstack-manuals/doc/config-reference/block-storage/drivers/netapp-volume-driver.xml
Gauvain Pocentek 5787ceac62 Move the manually-generated XML table file
cinder-netapp_cdot_extraspecs.xml is not autogenerated and I often end
up deleting it while working on the config-reference. Having it moved to
another directory should make things a little less painful.

Change-Id: I9ca4af5bf8113d2d2240e35bf504a035510cb5f6
2015-04-30 12:25:04 +02:00

624 lines
35 KiB
XML

<section xml:id="netapp-volume-driver"
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>NetApp unified driver</title>
<para>The NetApp unified driver is a block storage driver that
supports multiple storage families and protocols. A storage
family corresponds to storage systems built on different
NetApp technologies such as clustered Data ONTAP, 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. The
NetApp unified driver can be configured to provision and manage
OpenStack volumes on a given storage family using a specified
storage protocol. The OpenStack volumes can then be used for
accessing and storing data using the storage protocol on the
storage family system. The NetApp unified driver is an
extensible interface that can support new storage families and
protocols.</para>
<note>
<para>With the Juno release of OpenStack, OpenStack Block Storage
has introduced the concept of "storage pools", in which a single
OpenStack Block Storage back end may present one or more logical
storage resource pools from which OpenStack Block Storage will
select as a storage location when provisioning volumes.
</para>
<para>In releases prior to Juno, the NetApp unified driver contained some
"scheduling" logic that determined which NetApp storage container
(namely, a FlexVol volume for Data ONTAP, or a dynamic disk pool for
E-Series) that a new OpenStack Block Storage volume would be
placed into.
</para>
<para>With the introduction of pools, all scheduling logic
is performed completely within the OpenStack Block Storage scheduler,
as each NetApp storage container is directly exposed to the OpenStack
Block Storage scheduler as a storage pool; whereas previously, the
NetApp unified driver presented an aggregated view to the scheduler
and made a final placement decision as to which NetApp storage
container the OpenStack Block Storage volume would be provisioned
into.
</para>
</note>
<section xml:id="ontap-cluster-family">
<title>NetApp clustered Data ONTAP storage family</title>
<para>The NetApp clustered Data ONTAP storage family
represents a configuration group which provides OpenStack
compute instances access to clustered Data ONTAP storage
systems. At present it can be configured in OpenStack Block Storage to work
with iSCSI and NFS storage protocols.</para>
<section xml:id="ontap-cluster-iscsi">
<title>NetApp iSCSI configuration for clustered Data
ONTAP</title>
<para>The NetApp iSCSI configuration for clustered Data
ONTAP is an interface from OpenStack to clustered Data
ONTAP storage systems for provisioning and managing
the SAN block storage entity; that is, a NetApp LUN
which can be accessed using the iSCSI protocol.</para>
<para>The iSCSI configuration for clustered Data ONTAP is
a direct interface from OpenStack Block Storage to the clustered Data
ONTAP instance and as such does not require additional
management software to achieve the desired
functionality. It uses NetApp APIs to interact with
the clustered Data ONTAP instance.</para>
<simplesect>
<title>Configuration options for clustered Data ONTAP
family with iSCSI protocol</title>
<para>Configure the volume driver, storage family and
storage protocol to the NetApp unified driver,
clustered Data ONTAP, and iSCSI respectively by
setting the <option>volume_driver</option>,
<option>netapp_storage_family</option> and
<option>netapp_storage_protocol</option>
options in <filename>cinder.conf</filename> as
follows:</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_cluster
netapp_storage_protocol = iscsi
netapp_vserver = <replaceable>openstack-vserver</replaceable>
netapp_server_hostname = <replaceable>myhostname</replaceable>
netapp_server_port = <replaceable>port</replaceable>
netapp_login = <replaceable>username</replaceable>
netapp_password = <replaceable>password</replaceable></programlisting>
<note>
<para>
To use the iSCSI protocol, you must override the
default value of
<option>netapp_storage_protocol</option> with
<literal>iscsi</literal>.
</para>
</note>
<xi:include
href="../../../common/tables/cinder-netapp_cdot_iscsi.xml"/>
<note>
<para>If you specify an account in the
<option>netapp_login</option> that only
has virtual storage server (Vserver)
administration privileges (rather than
cluster-wide administration privileges), some
advanced features of the NetApp unified driver
will not work and you may see warnings in the
OpenStack Block Storage logs.</para>
</note>
<tip>
<para>For more information on these options and
other deployment and operational scenarios,
visit the <link
xlink:href="http://netapp.github.io/openstack-deploy-ops-guide/">
NetApp OpenStack Deployment and Operations Guide</link>.
</para>
</tip>
</simplesect>
</section>
<section xml:id="ontap-cluster-nfs">
<title>NetApp NFS configuration for clustered Data
ONTAP</title>
<para>The NetApp NFS configuration for clustered Data
ONTAP is an interface from OpenStack to a clustered
Data ONTAP system for provisioning and managing
OpenStack volumes on NFS exports provided by the
clustered Data ONTAP system that are accessed using
the NFS protocol.</para>
<para>The NFS configuration for clustered Data ONTAP is a
direct interface from OpenStack Block Storage to the clustered Data
ONTAP instance and as such does not require any
additional management software to achieve the desired
functionality. It uses NetApp APIs to interact with
the clustered Data ONTAP instance.</para>
<simplesect>
<title>Configuration options for the clustered Data
ONTAP family with NFS protocol</title>
<para>Configure the volume driver, storage family, and
storage protocol to NetApp unified driver,
clustered Data ONTAP, and NFS respectively by
setting the <option>volume_driver</option>,
<option>netapp_storage_family</option> and
<option>netapp_storage_protocol</option>
options in <filename>cinder.conf</filename> as
follows:</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_cluster
netapp_storage_protocol = nfs
netapp_vserver = <replaceable>openstack-vserver</replaceable>
netapp_server_hostname = <replaceable>myhostname</replaceable>
netapp_server_port = <replaceable>port</replaceable>
netapp_login = <replaceable>username</replaceable>
netapp_password = <replaceable>password</replaceable>
nfs_shares_config = <replaceable>/etc/cinder/nfs_shares</replaceable></programlisting>
<xi:include
href="../../../common/tables/cinder-netapp_cdot_nfs.xml"/>
<note>
<para>Additional NetApp NFS configuration options are
shared with the generic NFS driver. These options
can be found here:
<xref linkend="config_table_cinder_storage_nfs"/>.
</para>
</note>
<note>
<para>If you specify an account in the
<option>netapp_login</option> that only
has virtual storage server (Vserver)
administration privileges (rather than
cluster-wide administration privileges), some
advanced features of the NetApp unified driver
will not work and you may see warnings in the
OpenStack Block Storage logs.</para>
</note>
</simplesect>
<simplesect>
<title>NetApp NFS Copy Offload client</title>
<para>A feature was added in the Icehouse release of the NetApp unified
driver that enables Image Service images to be efficiently copied to a
destination Block Storage volume. When the Block Storage and Image Service are
configured to use the NetApp NFS Copy Offload client, a controller-side copy
will be attempted before reverting to downloading the image from the
Image Service. This improves image provisioning times while reducing the
consumption of bandwidth and CPU cycles on the host(s) running the Image
and Block Storage services. This is due to the copy operation being performed
completely within the storage cluster.</para>
<para>The NetApp NFS Copy Offload client can be used in either of the following
scenarios:</para>
<itemizedlist>
<listitem>
<para>The Image Service is configured to store images in an NFS share that
is exported from a NetApp FlexVol volume <emphasis>and</emphasis>
the destination for the new Block Storage volume will be on an NFS share
exported from a different FlexVol volume than the one used by
the Image Service. Both FlexVols must be located within the same cluster.</para>
</listitem>
<listitem>
<para>The source image from the Image Service has already been cached in an NFS
image cache within a Block Storage backend. The cached image resides on a
different FlexVol volume than the destination for the new Block Storage
volume. Both FlexVols must be located within the same cluster.</para>
</listitem>
</itemizedlist>
<para>To use this feature, you must configure the
Image Service, as follows:</para>
<itemizedlist>
<listitem>
<para>Set the <option>default_store</option>
configuration option to
<literal>file</literal>.</para>
</listitem>
<listitem>
<para>Set the <option>filesystem_store_datadir</option>
configuration option to the
path to the Image Service NFS export.</para>
</listitem>
<listitem>
<para>Set the <option>show_image_direct_url</option>
configuration option to
<literal>True</literal>.</para>
</listitem>
<listitem>
<para>Set the <option>show_multiple_locations</option>
configuration option to
<literal>True</literal>.</para>
</listitem>
<listitem>
<para>Set the <option>filesystem_store_metadata_file</option>
configuration option to a
metadata file. The metadata file should
contain a JSON object that contains the
correct information about the NFS export
used by the Image Service, similar
to:</para>
<programlisting language="JSON">{
"share_location": "nfs://192.168.0.1/myGlanceExport",
"mount_point": "/var/lib/glance/images",
"type": "nfs"
}</programlisting>
</listitem>
</itemizedlist>
<para>To use this feature, you must configure the
Block Storage service, as follows:</para>
<itemizedlist>
<listitem>
<para>Set the <option>netapp_copyoffload_tool_path</option>
configuration option to
the path to the NetApp Copy Offload binary.</para>
</listitem>
<listitem>
<para>Set the <option>glance_api_version</option>
configuration option to
<literal>2</literal>.</para>
</listitem>
</itemizedlist>
<important>
<para>This feature requires that:</para>
<itemizedlist>
<listitem>
<para>The storage system must have Data
ONTAP v8.2 or greater installed.</para>
</listitem>
<listitem>
<para>The vStorage feature must be enabled
on each storage virtual machine (SVM, also
known as a Vserver) that is permitted to
interact with the copy offload
client.</para>
</listitem>
<listitem>
<para>To configure the copy offload workflow,
enable NFS v4.0 or greater
and export it from the SVM.</para>
</listitem>
</itemizedlist>
</important>
<tip>
<para>To download the NetApp copy offload binary to be utilized
in conjunction with the <option>netapp_copyoffload_tool_path</option>
configuration option, please visit the Utility Toolchest page at
the <link xlink:href="http://mysupport.netapp.com/NOW/download/tools/ntap_openstack_nfs/">
NetApp Support portal</link> (login is required).</para>
</tip>
<tip>
<para>For more information on these options and
other deployment and operational scenarios,
visit the <link
xlink:href="http://netapp.github.io/openstack-deploy-ops-guide/">
NetApp OpenStack Deployment and Operations Guide</link>.
</para>
</tip>
</simplesect>
</section>
<section xml:id="ontap-cluster-extraspecs">
<title>NetApp-supported extra specs for clustered Data
ONTAP</title>
<para>Extra specs enable vendors to specify extra filter
criteria that the Block Storage scheduler uses when it
determines which volume node should fulfill a volume
provisioning request. When you use the NetApp unified
driver with a clustered Data ONTAP storage system, you
can leverage extra specs with OpenStack Block Storage volume types to
ensure that OpenStack Block Storage volumes are created on storage back
ends that have certain properties. For example, when
you configure QoS, mirroring, or compression for a
storage back end.</para>
<para>Extra specs are associated with OpenStack Block Storage volume types,
so that when users request volumes of a particular
volume type, the volumes are created on storage back
ends that meet the list of requirements. For example,
the back ends have the available space or extra specs.
You can use the specs in the following table when you
define OpenStack Block Storage volume types by using the
<command>cinder type-key</command> command.</para>
<xi:include
href="../../../common/tables/manual/cinder-netapp_cdot_extraspecs.xml"/>
</section>
</section>
<section xml:id="ontap-7mode-family">
<title>NetApp Data ONTAP operating in 7-Mode storage
family</title>
<para>The NetApp Data ONTAP operating in 7-Mode storage family
represents a configuration group which provides OpenStack
compute instances access to 7-Mode storage systems. At
present it can be configured in OpenStack Block Storage to work with iSCSI
and NFS storage protocols.</para>
<section xml:id="ontap-7mode-iscsi">
<title>NetApp iSCSI configuration for Data ONTAP operating
in 7-Mode</title>
<para>The NetApp iSCSI configuration for Data ONTAP
operating in 7-Mode is an interface from OpenStack to
Data ONTAP operating in 7-Mode storage systems for
provisioning and managing the SAN block storage
entity, that is, a LUN which can be accessed using
iSCSI protocol.</para>
<para>The iSCSI configuration for Data ONTAP operating in
7-Mode is a direct interface from OpenStack to Data
ONTAP operating in 7-Mode storage system and it does
not require additional management software to achieve
the desired functionality. It uses NetApp ONTAPI to
interact with the Data ONTAP operating in 7-Mode
storage system.</para>
<simplesect>
<title>Configuration options for the Data ONTAP
operating in 7-Mode storage family with iSCSI
protocol</title>
<para>Configure the volume driver, storage family and
storage protocol to the NetApp unified driver,
Data ONTAP operating in 7-Mode, and iSCSI
respectively by setting the
<option>volume_driver</option>,
<option>netapp_storage_family</option> and
<option>netapp_storage_protocol</option>
options in <filename>cinder.conf</filename> as
follows:</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_7mode
netapp_storage_protocol = iscsi
netapp_server_hostname = <replaceable>myhostname</replaceable>
netapp_server_port = <replaceable>80</replaceable>
netapp_login = <replaceable>username</replaceable>
netapp_password = <replaceable>password</replaceable></programlisting>
<note>
<para>
To use the iSCSI protocol, you must override the
default value of
<option>netapp_storage_protocol</option> with
<literal>iscsi</literal>.
</para>
</note>
<xi:include
href="../../../common/tables/cinder-netapp_7mode_iscsi.xml"/>
<tip>
<para>For more information on these options and
other deployment and operational scenarios,
visit the <link
xlink:href="http://netapp.github.io/openstack-deploy-ops-guide/">
NetApp OpenStack Deployment and Operations Guide</link>.
</para>
</tip>
</simplesect>
</section>
<section xml:id="ontap-7mode-nfs">
<title>NetApp NFS configuration for Data ONTAP operating
in 7-Mode</title>
<para>The NetApp NFS configuration for Data ONTAP
operating in 7-Mode is an interface from OpenStack to
Data ONTAP operating in 7-Mode storage system for
provisioning and managing OpenStack volumes on NFS
exports provided by the Data ONTAP operating in 7-Mode
storage system which can then be accessed using NFS
protocol.</para>
<para>The NFS configuration for Data ONTAP operating in
7-Mode is a direct interface from OpenStack Block Storage to the Data
ONTAP operating in 7-Mode instance and as such does
not require any additional management software to
achieve the desired functionality. It uses NetApp
ONTAPI to interact with the Data ONTAP operating in
7-Mode storage system.</para>
<simplesect>
<title>Configuration options for the Data ONTAP
operating in 7-Mode family with NFS
protocol</title>
<para>Configure the volume driver, storage family, and
storage protocol to the NetApp unified driver,
Data ONTAP operating in 7-Mode, and NFS
respectively by setting the
<option>volume_driver</option>,
<option>netapp_storage_family</option> and
<option>netapp_storage_protocol</option>
options in <filename>cinder.conf</filename> as
follows:</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_7mode
netapp_storage_protocol = nfs
netapp_server_hostname = <replaceable>myhostname</replaceable>
netapp_server_port = <replaceable>80</replaceable>
netapp_login = <replaceable>username</replaceable>
netapp_password = <replaceable>password</replaceable>
nfs_shares_config = <replaceable>/etc/cinder/nfs_shares</replaceable></programlisting>
<xi:include
href="../../../common/tables/cinder-netapp_7mode_nfs.xml"/>
<note>
<para>Additional NetApp NFS configuration options
are shared with the generic NFS driver. For a
description of these, see
<xref linkend="config_table_cinder_storage_nfs"/>.
</para>
</note>
<tip>
<para>For more information on these options and
other deployment and operational scenarios,
visit the <link
xlink:href="http://netapp.github.io/openstack-deploy-ops-guide/">
NetApp OpenStack Deployment and Operations Guide</link>.
</para>
</tip>
</simplesect>
</section>
</section>
<section xml:id="eseries-family">
<title>NetApp E-Series storage family</title>
<para>The NetApp E-Series storage family represents a
configuration group which provides OpenStack
compute instances access to E-Series storage systems.
At present it can be configured in OpenStack Block Storage to work
with the iSCSI storage protocol.</para>
<section xml:id="eseries-iscsi">
<title>NetApp iSCSI configuration for E-Series</title>
<para>The NetApp iSCSI configuration for E-Series
is an interface from OpenStack to E-Series storage
systems for provisioning and managing the SAN block
storage entity; that is, a NetApp LUN which can be
accessed using the iSCSI protocol.</para>
<para>The iSCSI configuration for E-Series is an interface
from OpenStack Block Storage to the E-Series proxy instance and as such
requires the deployment of the proxy instance in order to
achieve the desired functionality. The driver uses REST
APIs to interact with the E-Series proxy instance, which in
turn interacts directly with the E-Series controllers.</para>
<para>The use of multipath and DM-MP are required when using the
OpenStack Block Storage driver for E-Series. In order for
OpenStack Block Storage and OpenStack Compute to take advantage
of multiple paths, the following configuration options must be
correctly configured:</para>
<itemizedlist>
<listitem>
<para>The <option>use_multipath_for_image_xfer</option> option
should be set to <literal>True</literal> in the
<filename>cinder.conf</filename> file within the
driver-specific stanza (for example,
<literal>[<replaceable>myDriver</replaceable>]</literal>).</para>
</listitem>
<listitem>
<para>The <option>iscsi_use_multipath</option> option
should be set to <literal>True</literal> in the
<filename>nova.conf</filename> file within the
<literal>[libvirt]</literal> stanza.</para>
</listitem>
</itemizedlist>
<simplesect>
<title>Configuration options for E-Series storage
family with iSCSI protocol</title>
<para>Configure the volume driver, storage family, and
storage protocol to the NetApp unified driver,
E-Series, and iSCSI respectively by setting the
<option>volume_driver</option>,
<option>netapp_storage_family</option> and
<option>netapp_storage_protocol</option>
options in <filename>cinder.conf</filename> as
follows:</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = eseries
netapp_storage_protocol = iscsi
netapp_server_hostname = <replaceable>myhostname</replaceable>
netapp_server_port = <replaceable>80</replaceable>
netapp_login = <replaceable>username</replaceable>
netapp_password = <replaceable>password</replaceable>
netapp_controller_ips = <replaceable>1.2.3.4,5.6.7.8</replaceable>
netapp_sa_password = <replaceable>arrayPassword</replaceable>
netapp_storage_pools = <replaceable>pool1,pool2</replaceable>
use_multipath_for_image_xfer = True</programlisting>
<note>
<para>
To use the E-Series driver, you must override
the default value of
<option>netapp_storage_family</option> with
<literal>eseries</literal>.
</para>
</note>
<note>
<para>
To use the iSCSI protocol, you must override the
default value of
<option>netapp_storage_protocol</option> with
<literal>iscsi</literal>.
</para>
</note>
<xi:include
href="../../../common/tables/cinder-netapp_eseries_iscsi.xml"/>
<tip>
<para>For more information on these options and
other deployment and operational scenarios,
visit the <link
xlink:href="http://netapp.github.io/openstack-deploy-ops-guide/">
NetApp OpenStack Deployment and Operations Guide</link>.
</para>
</tip>
</simplesect>
</section>
</section>
<section xml:id="ontap-unified-upgrade-deprecated">
<title>Upgrading prior NetApp drivers to the NetApp unified
driver</title>
<para>NetApp introduced a new unified block storage driver in
Havana for configuring different storage families and
storage protocols. This requires defining upgrade path for
NetApp drivers which existed in releases prior to Havana.
This section covers the upgrade configuration for NetApp
drivers to the new unified configuration and a list of
deprecated NetApp drivers.</para>
<section xml:id="ontap-unified-upgrade">
<title>Upgraded NetApp drivers</title>
<para>This section describes how to update OpenStack Block Storage
configuration from a pre-Havana release to the
unified driver format.</para>
<simplesect>
<title>Driver upgrade configuration</title>
<orderedlist>
<listitem>
<para>NetApp iSCSI direct driver for Clustered
Data ONTAP in Grizzly (or earlier).</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.iscsi.NetAppDirectCmodeISCSIDriver</programlisting>
<para>NetApp unified driver
configuration.</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_cluster
netapp_storage_protocol = iscsi</programlisting>
</listitem>
<listitem>
<para>NetApp NFS direct driver for Clustered
Data ONTAP in Grizzly (or earlier).</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.nfs.NetAppDirectCmodeNfsDriver</programlisting>
<para>NetApp unified driver
configuration.</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_cluster
netapp_storage_protocol = nfs</programlisting>
</listitem>
<listitem>
<para>NetApp iSCSI direct driver for Data
ONTAP operating in 7-Mode storage
controller in Grizzly (or earlier)</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.iscsi.NetAppDirect7modeISCSIDriver</programlisting>
<para>NetApp unified driver
configuration</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_7mode
netapp_storage_protocol = iscsi</programlisting>
</listitem>
<listitem>
<para>NetApp NFS direct driver for Data ONTAP
operating in 7-Mode storage controller in
Grizzly (or earlier)</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.nfs.NetAppDirect7modeNfsDriver</programlisting>
<para>NetApp unified driver
configuration</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family = ontap_7mode
netapp_storage_protocol = nfs</programlisting>
</listitem>
</orderedlist>
</simplesect>
</section>
<section xml:id="ontap-driver-deprecate">
<title>Deprecated NetApp drivers</title>
<para>This section lists the NetApp drivers in earlier
releases that are deprecated in Havana.</para>
<orderedlist>
<listitem>
<para>NetApp iSCSI driver for clustered Data
ONTAP.</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.iscsi.NetAppCmodeISCSIDriver</programlisting>
</listitem>
<listitem>
<para>NetApp NFS driver for clustered Data
ONTAP.</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.nfs.NetAppCmodeNfsDriver</programlisting>
</listitem>
<listitem>
<para>NetApp iSCSI driver for Data ONTAP operating
in 7-Mode storage controller.</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.iscsi.NetAppISCSIDriver</programlisting>
</listitem>
<listitem>
<para>NetApp NFS driver for Data ONTAP operating
in 7-Mode storage controller.</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.netapp.nfs.NetAppNFSDriver</programlisting>
</listitem>
</orderedlist>
<note>
<para>For support information on deprecated NetApp drivers
in the Havana release, visit the <link
xlink:href="http://netapp.github.io/openstack-deploy-ops-guide/">
NetApp OpenStack Deployment and Operations Guide</link>.
</para>
</note>
</section>
</section>
</section>