Update NetApp volume driver docs to add table on extra specs, leverage

updated config option docs, and general copy-editing.

Change-Id: I05cc3807ecc741c476ffd8883fe2aded95afe580
Partial-Bug: 1255215
This commit is contained in:
Bob Callaway 2013-12-16 14:35:09 -05:00 committed by Andreas Jaeger
parent ef252e20b8
commit 2d2367fa22
10 changed files with 548 additions and 295 deletions

View File

@ -1,98 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for netapp</caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>expiry_thres_minutes=720</td>
<td>(IntOpt) Threshold minutes after which cache file can be cleaned.</td>
</tr>
<tr>
<td>netapp_login=None</td>
<td>(StrOpt) Login user name for the storage 7-Mode controller/clustered Data ONTAP management.</td>
</tr>
<tr>
<td>netapp_password=None</td>
<td>(StrOpt) Login password for the 7-Mode controller/clustered Data ONTAP management.</td>
</tr>
<tr>
<td>netapp_server_hostname=None</td>
<td>(StrOpt) The management IP address for the 7-Mode controller or clustered Data ONTAP.</td>
</tr>
<tr>
<td>netapp_server_port=80</td>
<td>(IntOpt) The 7-Mode controller/Clustered ONTAP data port to use for communication.
As a custom, 80 is used for HTTP and 443 is used for HTTPS communication.
The defaults should be changed if other ports are used for ONTAPI.</td>
</tr>
<tr>
<td>netapp_size_multiplier=1.2</td>
<td>(FloatOpt) When creating volumes, the quantity to be
multiplied to the requested OpenStack volume size to ensure enough space is available on
the 7-Mode Controller/Clustered Data ONTAP Vserver.</td>
</tr>
<tr>
<td>netapp_storage_family=ontap_cluster</td>
<td>(StrOpt) Storage family type. Valid values are ontap_7mode for using a 7-Mode controller
or ontap_cluster for a Clustered Data ONTAP.</td>
</tr>
<tr>
<td>netapp_storage_protocol=None</td>
<td>(StrOpt) The storage protocol to be used. Valid options are nfs or iscsi,
but we recommended that you consult the detailed explanation.
If None is selected, nfs will be used.</td>
</tr>
<tr>
<td>netapp_transport_type=http</td>
<td>(StrOpt) Transport protocol for communicating with the 7-Mode controller or Clustered Data ONTAP.
Supported protocols include http and https.</td>
</tr>
<tr>
<td>netapp_vfiler=None</td>
<td>(StrOpt) The vFiler unit to be use for provisioning OpenStack Volumes. Use this only if using
MultiStore®.</td>
</tr>
<tr>
<td>netapp_volume_list=None</td>
<td>(StrOpt) Comma separated list of NetApp volumes to
be used for provisioning on 7-Mode controller. This
option is used to restrict provisioning to the
specified NetApp controller volumes. In case this
option is not specified all NetApp controller volumes
except the controller root volume are used for
provisioning OpenStack volumes.</td>
</tr>
<tr>
<td>netapp_vserver=None</td>
<td>(StrOpt) The Vserver on the cluster on which
provisioning of OpenStack volumes occurs. If using netapp_storage_protocol=nfs,
it is a mandatory parameter for storage service catalog support.
If specified the exports belonging to the
vserver will only be used for provisioning in future.
OpenStack volumes on exports not belonging to the vserver
will continue to function in a normal manner and recieve
Block Storage operations like snapshot creation etc.</td>
</tr>
<tr>
<td>thres_avl_size_perc_start=20</td>
<td>(IntOpt) Threshold available percent to start cache cleaning.</td>
</tr>
<tr>
<td>thres_avl_size_perc_stop=60</td>
<td>(IntOpt) Threshold available percent to stop cache cleaning.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for netapp_7mode_iscsi</caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>netapp_login=None</td>
<td>(StrOpt) Administrative user account name used to access the storage system.</td>
</tr>
<tr>
<td>netapp_password=None</td>
<td>(StrOpt) Password for the administrative user account specified in the netapp_login option.</td>
</tr>
<tr>
<td>netapp_server_hostname=None</td>
<td>(StrOpt) The hostname (or IP address) for the storage system.</td>
</tr>
<tr>
<td>netapp_server_port=80</td>
<td>(IntOpt) The TCP port to use for communication with ONTAPI on the storage system. Traditionally, port 80 is used for HTTP and port 443 is used for HTTPS; however, this value should be changed if an alternate port has been configured on the storage system.</td>
</tr>
<tr>
<td>netapp_size_multiplier=1.2</td>
<td>(FloatOpt) The quantity to be multiplied by the requested volume size to ensure enough space is available on the virtual storage server (Vserver) to fulfill the volume creation request.</td>
</tr>
<tr>
<td>netapp_storage_family=ontap_cluster</td>
<td>(StrOpt) The storage family type used on the storage system; valid values are ontap_7mode for using Data ONTAP operating in 7-Mode or ontap_cluster for using clustered Data ONTAP.</td>
</tr>
<tr>
<td>netapp_storage_protocol=None</td>
<td>(StrOpt) The storage protocol to be used on the data path with the storage system; valid values are iscsi or nfs.</td>
</tr>
<tr>
<td>netapp_transport_type=http</td>
<td>(StrOpt) The transport protocol used when communicating with ONTAPI on the storage system. Valid values are http or https.</td>
</tr>
<tr>
<td>netapp_vfiler=None</td>
<td>(StrOpt) The vFiler unit on which provisioning of block storage volumes will be done. This option is only used by the driver when connecting to an instance with a storage family of Data ONTAP operating in 7-Mode and the storage protocol selected is iSCSI. Only use this option when utilizing the MultiStore feature on the NetApp storage system.</td>
</tr>
<tr>
<td>netapp_volume_list=None</td>
<td>(StrOpt) This option is only utilized when the storage protocol is configured to use iSCSI. This option is used to restrict provisioning to the specified controller volumes. Specify the value of this option to be a comma separated list of NetApp controller volume names to be used for provisioning.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for netapp_7mode_nfs</caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>expiry_thres_minutes=720</td>
<td>(IntOpt) This option specifies the threshold for last access time for images in the NFS image cache. When a cache cleaning cycle begins, images in the cache that have not been accessed in the last M minutes, where M is the value of this parameter, will be deleted from the cache to create free space on the NFS share.</td>
</tr>
<tr>
<td>netapp_login=None</td>
<td>(StrOpt) Administrative user account name used to access the storage system.</td>
</tr>
<tr>
<td>netapp_password=None</td>
<td>(StrOpt) Password for the administrative user account specified in the netapp_login option.</td>
</tr>
<tr>
<td>netapp_server_hostname=None</td>
<td>(StrOpt) The hostname (or IP address) for the storage system.</td>
</tr>
<tr>
<td>netapp_server_port=80</td>
<td>(IntOpt) The TCP port to use for communication with ONTAPI on the storage system. Traditionally, port 80 is used for HTTP and port 443 is used for HTTPS; however, this value should be changed if an alternate port has been configured on the storage system.</td>
</tr>
<tr>
<td>netapp_storage_family=ontap_cluster</td>
<td>(StrOpt) The storage family type used on the storage system; valid values are ontap_7mode for using Data ONTAP operating in 7-Mode or ontap_cluster for using clustered Data ONTAP.</td>
</tr>
<tr>
<td>netapp_storage_protocol=None</td>
<td>(StrOpt) The storage protocol to be used on the data path with the storage system; valid values are iscsi or nfs.</td>
</tr>
<tr>
<td>netapp_transport_type=http</td>
<td>(StrOpt) The transport protocol used when communicating with ONTAPI on the storage system. Valid values are http or https.</td>
</tr>
<tr>
<td>thres_avl_size_perc_start=20</td>
<td>(IntOpt) 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.</td>
</tr>
<tr>
<td>thres_avl_size_perc_stop=60</td>
<td>(IntOpt) 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 that have not been accessed in the last M minutes, where M is the value of the expiry_thres_minutes configuration option.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of extra specs options for NetApp Unified Driver with Clustered Data ONTAP</caption>
<col width="30%"/>
<col width="15%"/>
<col width="55%"/>
<thead>
<tr>
<td>Extra spec</td>
<td>Type</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td><literal>netapp:raid_type</literal></td>
<td>String</td>
<td>Limit the candidate volume list based on one of the following raid types: <literal>raid4, raid_dp</literal>.</td>
</tr>
<tr>
<td><literal>netapp:disk_type</literal></td>
<td>String</td>
<td>Limit the candidate volume list based on one of the following disk types: <literal>ATA, BSAS, EATA, FCAL, FSAS, LUN, MSATA,
SAS, SATA, SCSI, XATA, XSAS, or SSD.</literal></td>
</tr>
<tr>
<td><literal>netapp:qos_policy_group</literal></td>
<td>String</td>
<td>Limit the candidate volume list based on the name of a QoS policy group, which defines measurable Service Level Objectives
that apply to the storage objects with which the policy group is associated.</td>
</tr>
<tr>
<td><literal>netapp_mirrored</literal><footnote xml:id="netapp-conflict-extra-specs"><para>If both the positive and negative specs for a pair are specified (e.g. <literal>netapp_dedup</literal> and <literal>netapp_nodedup</literal>) and set to the same value within a single <literal>extra_specs</literal> list, then neither spec will be utilized by the driver.</para></footnote></td>
<td>Boolean</td>
<td>Limit the candidate volume list to only the ones that are mirrored on the storage controller.</td>
</tr>
<tr>
<td><literal>netapp_unmirrored</literal><footnoteref linkend="netapp-conflict-extra-specs"/></td>
<td>Boolean</td>
<td>Limit the candidate volume list to only the ones that are not mirrored on the storage controller.</td>
</tr>
<tr>
<td><literal>netapp_dedup</literal><footnoteref linkend="netapp-conflict-extra-specs"/></td>
<td>Boolean</td>
<td>Limit the candidate volume list to only the ones that have deduplication enabled on the storage controller.</td>
</tr>
<tr>
<td><literal>netapp_nodedup</literal><footnoteref linkend="netapp-conflict-extra-specs"/></td>
<td>Boolean</td>
<td>Limit the candidate volume list to only the ones that have deduplication disabled on the storage controller.</td>
</tr>
<tr>
<td><literal>netapp_compression</literal><footnoteref linkend="netapp-conflict-extra-specs"/></td>
<td>Boolean</td>
<td>Limit the candidate volume list to only the ones that have compression enabled on the storage controller.</td>
</tr>
<tr>
<td><literal>netapp_nocompression</literal><footnoteref linkend="netapp-conflict-extra-specs"/></td>
<td>Boolean</td>
<td>Limit the candidate volume list to only the ones that have compression disabled on the storage controller.</td>
</tr>
<tr>
<td><literal>netapp_thin_provisioned</literal><footnoteref linkend="netapp-conflict-extra-specs"/></td>
<td>Boolean</td>
<td>Limit the candidate volume list to only the ones that support thin provisioning on the storage controller.</td>
</tr>
<tr>
<td><literal>netapp_thick_provisioned</literal><footnoteref linkend="netapp-conflict-extra-specs"/></td>
<td>Boolean</td>
<td>Limit the candidate volume list to only the ones that support thick provisioning on the storage controller.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for netapp_cdot_iscsi</caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>netapp_login=None</td>
<td>(StrOpt) Administrative user account name used to access the storage system.</td>
</tr>
<tr>
<td>netapp_password=None</td>
<td>(StrOpt) Password for the administrative user account specified in the netapp_login option.</td>
</tr>
<tr>
<td>netapp_server_hostname=None</td>
<td>(StrOpt) The hostname (or IP address) for the storage system.</td>
</tr>
<tr>
<td>netapp_server_port=80</td>
<td>(IntOpt) The TCP port to use for communication with ONTAPI on the storage system. Traditionally, port 80 is used for HTTP and port 443 is used for HTTPS; however, this value should be changed if an alternate port has been configured on the storage system.</td>
</tr>
<tr>
<td>netapp_size_multiplier=1.2</td>
<td>(FloatOpt) The quantity to be multiplied by the requested volume size to ensure enough space is available on the virtual storage server (Vserver) to fulfill the volume creation request.</td>
</tr>
<tr>
<td>netapp_storage_family=ontap_cluster</td>
<td>(StrOpt) The storage family type used on the storage system; valid values are ontap_7mode for using Data ONTAP operating in 7-Mode or ontap_cluster for using clustered Data ONTAP.</td>
</tr>
<tr>
<td>netapp_storage_protocol=None</td>
<td>(StrOpt) The storage protocol to be used on the data path with the storage system; valid values are iscsi or nfs.</td>
</tr>
<tr>
<td>netapp_transport_type=http</td>
<td>(StrOpt) The transport protocol used when communicating with ONTAPI on the storage system. Valid values are http or https.</td>
</tr>
<tr>
<td>netapp_vserver=None</td>
<td>(StrOpt) This option specifies the virtual storage server (Vserver) name on the storage cluster on which provisioning of block storage volumes should occur. If using the NFS storage protocol, this parameter is mandatory for storage service catalog support (utilized by Cinder volume type extra_specs support). If this option is specified, the exports belonging to the Vserver will only be used for provisioning in the future. Block storage volumes on exports not belonging to the Vserver specified by this option will continue to function normally.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for netapp_cdot_nfs</caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>expiry_thres_minutes=720</td>
<td>(IntOpt) This option specifies the threshold for last access time for images in the NFS image cache. When a cache cleaning cycle begins, images in the cache that have not been accessed in the last M minutes, where M is the value of this parameter, will be deleted from the cache to create free space on the NFS share.</td>
</tr>
<tr>
<td>netapp_login=None</td>
<td>(StrOpt) Administrative user account name used to access the storage system.</td>
</tr>
<tr>
<td>netapp_password=None</td>
<td>(StrOpt) Password for the administrative user account specified in the netapp_login option.</td>
</tr>
<tr>
<td>netapp_server_hostname=None</td>
<td>(StrOpt) The hostname (or IP address) for the storage system.</td>
</tr>
<tr>
<td>netapp_server_port=80</td>
<td>(IntOpt) The TCP port to use for communication with ONTAPI on the storage system. Traditionally, port 80 is used for HTTP and port 443 is used for HTTPS; however, this value should be changed if an alternate port has been configured on the storage system.</td>
</tr>
<tr>
<td>netapp_storage_family=ontap_cluster</td>
<td>(StrOpt) The storage family type used on the storage system; valid values are ontap_7mode for using Data ONTAP operating in 7-Mode or ontap_cluster for using clustered Data ONTAP.</td>
</tr>
<tr>
<td>netapp_storage_protocol=None</td>
<td>(StrOpt) The storage protocol to be used on the data path with the storage system; valid values are iscsi or nfs.</td>
</tr>
<tr>
<td>netapp_transport_type=http</td>
<td>(StrOpt) The transport protocol used when communicating with ONTAPI on the storage system. Valid values are http or https.</td>
</tr>
<tr>
<td>netapp_vserver=None</td>
<td>(StrOpt) This option specifies the virtual storage server (Vserver) name on the storage cluster on which provisioning of block storage volumes should occur. If using the NFS storage protocol, this parameter is mandatory for storage service catalog support (utilized by Cinder volume type extra_specs support). If this option is specified, the exports belonging to the Vserver will only be used for provisioning in the future. Block storage volumes on exports not belonging to the Vserver specified by this option will continue to function normally.</td>
</tr>
<tr>
<td>thres_avl_size_perc_start=20</td>
<td>(IntOpt) 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.</td>
</tr>
<tr>
<td>thres_avl_size_perc_stop=60</td>
<td>(IntOpt) 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 that have not been accessed in the last M minutes, where M is the value of the expiry_thres_minutes configuration option.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for storage_netapp</caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>netapp_login=None</td>
<td>(StrOpt) User name for the storage controller</td>
</tr>
<tr>
<td>netapp_vfiler=None</td>
<td>(StrOpt) Vfiler to use for provisioning</td>
</tr>
</tbody>
</table>
</para>

View File

@ -3,25 +3,26 @@
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"> xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>NetApp unified driver</title> <title>NetApp unified driver</title>
<para>NetApp unified driver is a block storage driver that <para>The NetApp® unified driver is a block storage driver that
supports multiple storage families and storage protocols. The supports multiple storage families and protocols. A storage
storage family corresponds to storage systems built on family corresponds to storage systems built on different
different technologies like 7-Mode and clustered Data ONTAP®. NetApp technologies such as clustered Data ONTAP® and Data
The storage protocol refers to the protocol used to initiate ONTAP operating in 7-Mode. The storage protocol refers to
data storage and access operations on those storage systems the protocol used to initiate data storage and access
like iSCSI and NFS. NetApp unified driver can be configured to operations on those storage systems like iSCSI and NFS. The
provision and manage OpenStack volumes on a given storage NetApp unified driver can be configured to provision and
family for the specified storage protocol. The OpenStack manage OpenStack volumes on a given storage family using a
volumes can then be used for accessing and storing data using specified storage protocol. The OpenStack volumes can then be
the storage protocol on the storage family system. NetApp used for accessing and storing data using the storage
unified driver is an extensible interface that can support new protocol on the storage family system. The NetApp unified
storage families and storage protocols.</para> driver is an extensible interface that can support new
storage families and protocols.</para>
<section xml:id="ontap-cluster-family"> <section xml:id="ontap-cluster-family">
<title>NetApp clustered Data ONTAP storage family</title> <title>NetApp clustered Data ONTAP storage family</title>
<para>The NetApp clustered Data ONTAP storage family <para>The NetApp clustered Data ONTAP storage family
represents a configuration group which provides OpenStack represents a configuration group which provides OpenStack
compute instances access to clustered Data ONTAP storage compute instances access to clustered Data ONTAP storage
systems. At present it can be configured in cinder to work systems. At present it can be configured in Cinder to work
with iSCSI and NFS storage protocols.</para> with iSCSI and NFS storage protocols.</para>
<section xml:id="ontap-cluster-iscsi"> <section xml:id="ontap-cluster-iscsi">
<title>NetApp iSCSI configuration for clustered Data <title>NetApp iSCSI configuration for clustered Data
@ -29,227 +30,289 @@
<para>The NetApp iSCSI configuration for clustered Data <para>The NetApp iSCSI configuration for clustered Data
ONTAP is an interface from OpenStack to clustered Data ONTAP is an interface from OpenStack to clustered Data
ONTAP storage systems for provisioning and managing ONTAP storage systems for provisioning and managing
the SAN block storage entity, that is, NetApp LUN the SAN block storage entity; that is, a NetApp LUN
which can be accessed using iSCSI protocol.</para> which can be accessed using the iSCSI protocol.</para>
<para>The iSCSI configuration for clustered Data ONTAP is <para>The iSCSI configuration for clustered Data ONTAP is
a direct interface from OpenStack to clustered Data a direct interface from Cinder to the clustered Data
ONTAP and it does not require additional management ONTAP instance and as such does not require additional
software to achieve the desired functionality. It uses management software to achieve the desired functionality.
NetApp APIs to interact with the clustered Data It uses NetApp APIs to interact with the clustered Data
ONTAP.</para> ONTAP instance.</para>
<simplesect> <simplesect>
<title>Configuration options for clustered Data ONTAP <title>Configuration options for clustered Data ONTAP
family with iSCSI protocol</title> family with iSCSI protocol</title>
<para>Set the volume driver, storage family and <para>Configure the volume driver, storage family and
storage protocol to NetApp unified driver, storage protocol to the NetApp unified driver,
clustered Data ONTAP and iSCSI respectively by clustered Data ONTAP, and iSCSI respectively by
setting the <literal>volume_driver</literal>, setting the <literal>volume_driver</literal>,
<literal>netapp_storage_family</literal> and <literal>netapp_storage_family</literal> and
<literal>netapp_storage_protocol</literal> <literal>netapp_storage_protocol</literal>
options in <filename>cinder.conf</filename> as options in <filename>cinder.conf</filename> as
follows:</para> follows:</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family=ontap_cluster netapp_storage_family=ontap_cluster
netapp_storage_protocol=iscsi netapp_storage_protocol=iscsi
netapp_vserver=openstack-vserver
netapp_server_hostname=myhostname
netapp_server_port=80
netapp_login=username
netapp_password=password
</programlisting> </programlisting>
<para>See <link <note><para>You must override the default value of
xlink:href="https://communities.netapp.com/groups/openstack" <literal>netapp_storage_protocol</literal> with
>OpenStack NetApp community</link> for <literal>iscsi</literal> in order to utilize the
detailed information on available configuration iSCSI protocol.</para></note>
options.</para> <xi:include href="../../../common/tables/cinder-netapp_cdot_iscsi.xml"/>
<note><para>If you specify an account in the
<literal>netapp_login</literal> that only has virtual
storage server (Vserver) administration priviledges
(rather than cluster-wide administration priviledges),
some advanced features of the NetApp unified driver
will not work and you may see warnings in the Cinder
logs.</para></note>
<tip><para>For more information on these options and
other deployment and operational scenarios, visit the
<link xlink:href="https://communities.netapp.com/groups/openstack">
OpenStack NetApp community.</link></para></tip>
</simplesect> </simplesect>
</section> </section>
<section xml:id="ontap-cluster-nfs"> <section xml:id="ontap-cluster-nfs">
<title>NetApp NFS configuration for clustered Data <title>NetApp NFS configuration for clustered Data
ONTAP</title> ONTAP</title>
<para>The NetApp NFS configuration for clustered Data <para>The NetApp NFS configuration for clustered Data
ONTAP is an interface from OpenStack to clustered Data ONTAP is an interface from OpenStack to a clustered Data
ONTAP system for provisioning and managing OpenStack ONTAP system for provisioning and managing OpenStack
volumes on NFS exports provided by the clustered Data volumes on NFS exports provided by the clustered Data
ONTAP system which can then be accessed using NFS ONTAP system that are accessed using the NFS protocol.</para>
protocol.</para> <para>The NFS configuration for clustered Data ONTAP is a direct
<para>The NFS configuration for clustered Data ONTAP does interface from Cinder to the clustered Data ONTAP instance and
not require any additional management software to as such does not require any additional management software to
achieve the desired functionality. It uses NetApp APIs achieve the desired functionality. It uses NetApp APIs
to interact with the clustered Data ONTAP.</para> to interact with the clustered Data ONTAP instance.</para>
<simplesect> <simplesect>
<title>Configuration options for the clustered Data <title>Configuration options for the clustered Data
ONTAP family with NFS protocol</title> ONTAP family with NFS protocol</title>
<para>Set the volume driver, storage family and <para>Configure the volume driver, storage family and
storage protocol to NetApp unified driver, storage protocol to NetApp unified driver,
clustered Data ONTAP and NFS respectively by clustered Data ONTAP, and NFS respectively by
setting the <literal>volume_driver</literal>, setting the <literal>volume_driver</literal>,
<literal>netapp_storage_family</literal> and <literal>netapp_storage_family</literal> and
<literal>netapp_storage_protocol</literal> <literal>netapp_storage_protocol</literal>
options in <filename>cinder.conf</filename> as options in <filename>cinder.conf</filename> as
follows:</para> follows:</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family=ontap_cluster netapp_storage_family=ontap_cluster
netapp_storage_protocol=nfs netapp_storage_protocol=nfs
netapp_vserver=openstack-vserver
netapp_server_hostname=myhostname
netapp_server_port=80
netapp_login=username
netapp_password=password
</programlisting> </programlisting>
<para>See <link <xi:include href="../../../common/tables/cinder-netapp_cdot_nfs.xml"/>
xlink:href="https://communities.netapp.com/groups/openstack" <note><para>If you specify an account in the
>OpenStack NetApp community</link> for <literal>netapp_login</literal> that only has virtual
detailed information on available configuration storage server (Vserver) administration priviledges
options.</para> (rather than cluster-wide administration priviledges),
some advanced features of the NetApp unified driver
will not work and you may see warnings in the Cinder
logs.</para></note>
<tip><para>For more information on these options and other deployment and operational scenarios, visit the <link xlink:href="https://communities.netapp.com/groups/openstack">OpenStack NetApp community.</link></para></tip>
</simplesect> </simplesect>
</section> </section>
<section xml:id="ontap-cluster-extraspecs">
<title>NetApp-supported extra specs for clustered Data
ONTAP</title>
<para>Extra specs allow individual vendors to specify additional
filter criteria which the Cinder scheduler can use when evaluating
which volume node should fulfill a volume provisioning request.
When using the NetApp unified driver with a clustered Data ONTAP
storage system, you can leverage extra specs with Cinder volume types
to ensure that Cinder volumes are created on storage backends that
have certain properties (e.g. QoS, mirroring, compression) configured.</para>
<para>Extra specs are associated with Cinder volume types, so that when
users request volumes of a particular volume type, they will be
created on storage backends that meet the list of requirements (e.g.
available space, extra specs, etc). You can use the specs in the
table later in this section when defining Cinder volume types using the
<literal>cinder type-key</literal> command.</para>
<xi:include href="../../../common/tables/cinder-netapp_cdot_extraspecs.xml"/>
<note><para>It is recommended to only set the value of extra
specs to <literal>True</literal> when combining multiple
specs to enforce a certain logic set. If you desire to
remove volumes with a certain feature enabled from
consideration from the Cinder volume scheduler, be sure
to use the negated spec name with a value of <literal>
True</literal> rather than setting the positive spec
to a value of <literal>False</literal>.</para></note>
</section>
</section> </section>
<section xml:id="ontap-7mode-family"> <section xml:id="ontap-7mode-family">
<title>NetApp 7-Mode Data ONTAP storage family</title> <title>NetApp Data ONTAP operating in 7-Mode storage family</title>
<para>The NetApp 7-Mode Data ONTAP storage family represents a <para>The NetApp Data ONTAP operating in 7-Mode storage family
configuration group which provides OpenStack compute represents a configuration group which provides OpenStack
instances access to 7-Mode storage systems. At present it compute instances access to 7-Mode storage systems. At present
can be configured in cinder to work with iSCSI and NFS it can be configured in Cinder to work with iSCSI and NFS
storage protocols.</para> storage protocols.</para>
<section xml:id="ontap-7mode-iscsi"> <section xml:id="ontap-7mode-iscsi">
<title>NetApp iSCSI configuration for 7-Mode storage <title>NetApp iSCSI configuration for Data ONTAP operating in
controller</title> 7-Mode</title>
<para>The NetApp iSCSI configuration for 7-Mode Data ONTAP <para>The NetApp iSCSI configuration for Data ONTAP operating
is an interface from OpenStack to 7-Mode storage in 7-Mode is an interface from OpenStack to Data ONTAP
systems for provisioning and managing the SAN block operating in 7-Mode storage systems for provisioning and
storage entity, that is, NetApp LUN which can be managing the SAN block storage entity, that is, a
accessed using iSCSI protocol.</para> LUN which can be accessed using iSCSI protocol.</para>
<para>The iSCSI configuration for 7-Mode Data ONTAP is a <para>The iSCSI configuration for Data ONTAP operating in 7-Mode
direct interface from OpenStack to 7-Mode storage is a direct interface from OpenStack to Data ONTAP operating
system and it does not require additional management in 7-Mode storage system and it does not require additional
software to achieve the desired functionality. It uses management software to achieve the desired functionality. It
NetApp APIs to interact with the 7-Mode storage uses NetApp ONTAPI to interact with the Data ONTAP operating
system.</para> in 7-Mode storage system.</para>
<simplesect> <simplesect>
<title>Configuration options for the 7-Mode Data ONTAP <title>Configuration options for the Data ONTAP operating in
storage family with iSCSI protocol</title> 7-Mode storage family with iSCSI protocol</title>
<para>Set the volume driver, storage family and <para>Configure the volume driver, storage family and
storage protocol to NetApp unified driver, 7-Mode storage protocol to the NetApp unified driver, Data
Data ONTAP and iSCSI respectively by setting the ONTAP operating in 7-Mode, and iSCSI respectively by
setting the
<literal>volume_driver</literal>, <literal>volume_driver</literal>,
<literal>netapp_storage_family</literal> and <literal>netapp_storage_family</literal> and
<literal>netapp_storage_protocol</literal> <literal>netapp_storage_protocol</literal>
options in <filename>cinder.conf</filename> as options in <filename>cinder.conf</filename> as
follows:</para> follows:</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family=ontap_7mode netapp_storage_family=ontap_7mode
netapp_storage_protocol=iscsi netapp_storage_protocol=iscsi
netapp_server_hostname=myhostname
netapp_server_port=80
netapp_login=username
netapp_password=password
</programlisting> </programlisting>
<para>See <link <note><para>You must override the default value of
xlink:href="https://communities.netapp.com/groups/openstack" <literal>netapp_storage_protocol</literal> with
>OpenStack NetApp community</link> for <literal>iscsi</literal> in order to utilize the
detailed information on available configuration iSCSI protocol.</para></note>
options.</para> <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="https://communities.netapp.com/groups/openstack">OpenStack NetApp community.</link></para></tip>
</simplesect> </simplesect>
</section> </section>
<section xml:id="ontap-7mode-nfs"> <section xml:id="ontap-7mode-nfs">
<title>NetApp NFS configuration for 7-Mode Data <title>NetApp NFS configuration for Data ONTAP operating in
ONTAP</title> 7-Mode</title>
<para>The NetApp NFS configuration for 7-Mode Data ONTAP <para>The NetApp NFS configuration for Data ONTAP operating in
is an interface from OpenStack to 7-Mode storage 7-Mode is an interface from OpenStack to Data ONTAP
system for provisioning and managing OpenStack volumes operating in 7-Mode storage system for provisioning and
on NFS exports provided by the 7-Mode storage system managing OpenStack volumes on NFS exports provided by the
which can then be accessed using NFS protocol.</para> Data ONTAP operating in 7-Mode storage system which can
<para>The NFS configuration for 7-Mode Data ONTAP does not then be accessed using NFS protocol.</para>
require any additional management software to achieve <para>The NFS configuration for Data ONTAP operating in 7-Mode
the desired functionality. It uses NetApp APIs to is a direct interface from Cinder to the Data ONTAP
interact with the 7-Mode storage system.</para> 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> <simplesect>
<title>Configuration options for the 7-Mode Data ONTAP <title>Configuration options for the Data ONTAP operating
family with NFS protocol</title> in 7-Mode family with NFS protocol</title>
<para>Set the volume driver, storage family and <para>Configure the volume driver, storage family and
storage protocol to NetApp unified driver, 7-Mode storage protocol to the NetApp unified driver, Data
Data ONTAP and NFS respectively by setting the ONTAP operating in 7-Mode, and NFS respectively by
setting the
<literal>volume_driver</literal>, <literal>volume_driver</literal>,
<literal>netapp_storage_family</literal> and <literal>netapp_storage_family</literal> and
<literal>netapp_storage_protocol</literal> <literal>netapp_storage_protocol</literal>
options in <filename>cinder.conf</filename> as options in <filename>cinder.conf</filename> as
follows:</para> follows:</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family=ontap_7mode netapp_storage_family=ontap_7mode
netapp_storage_protocol=nfs netapp_storage_protocol=nfs
netapp_server_hostname=myhostname
netapp_server_port=80
netapp_login=username
netapp_password=password
</programlisting> </programlisting>
<para>See <link <xi:include href="../../../common/tables/cinder-netapp_7mode_nfs.xml"/>
xlink:href="https://communities.netapp.com/groups/openstack" <tip><para>For more information on these options and other deployment and operational scenarios, visit the <link xlink:href="https://communities.netapp.com/groups/openstack">OpenStack NetApp community.</link></para></tip>
>OpenStack NetApp community</link> for
detailed information on available configuration
options.</para>
</simplesect> </simplesect>
</section> </section>
</section> </section>
<section xml:id="netapp-list-of-config-options">
<title>Driver options</title>
<xi:include href="../../../common/tables/cinder-netapp.xml"/>
</section>
<section xml:id="ontap-unified-upgrade-deprecated"> <section xml:id="ontap-unified-upgrade-deprecated">
<title>Upgrading NetApp drivers to Havana</title> <title>Upgrading prior NetApp drivers to the NetApp unified driver</title>
<para>NetApp has introduced a new unified driver in Havana for <para>NetApp introduced a new unified block storage driver in
configuring different storage families and storage Havana for configuring different storage families and storage
protocols. This requires defining upgrade path for NetApp protocols. This requires defining upgrade path for NetApp
drivers which existed in a previous release like Grizzly. drivers which existed in releases prior to Havana.
This section covers the upgrade configuration for NetApp This section covers the upgrade configuration for NetApp
drivers and lists deprecated NetApp drivers.</para> drivers to the new unified configuration and a list of
deprecated NetApp drivers.</para>
<section xml:id="ontap-unified-upgrade"> <section xml:id="ontap-unified-upgrade">
<title>Upgraded NetApp drivers</title> <title>Upgraded NetApp drivers</title>
<para>This section shows upgrade configuration in Havana <para>This section describes how to update Cinder
for NetApp drivers in Grizzly.</para> configuration from a pre-Havana release to the new unified
driver format.</para>
<simplesect> <simplesect>
<title>Driver upgrade configuration</title> <title>Driver upgrade configuration</title>
<orderedlist> <orderedlist>
<listitem> <listitem>
<para>NetApp iSCSI direct driver for clustered <para>NetApp iSCSI direct driver for Clustered
Data ONTAP in Grizzly</para> Data ONTAP in Grizzly (or earlier)</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.iscsi.NetAppDirectCmodeISCSIDriver volume_driver=cinder.volume.drivers.netapp.iscsi.NetAppDirectCmodeISCSIDriver
</programlisting> </programlisting>
<para>NetApp Unified Driver <para>NetApp Unified Driver
configuration</para> configuration</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family=ontap_cluster netapp_storage_family=ontap_cluster
netapp_storage_protocol=iscsi netapp_storage_protocol=iscsi
</programlisting> </programlisting>
</listitem> </listitem>
<listitem> <listitem>
<para>NetApp NFS direct driver for clustered <para>NetApp NFS direct driver for Clustered
Data ONTAP in Grizzly</para> Data ONTAP in Grizzly (or earlier)</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.nfs.NetAppDirectCmodeNfsDriver volume_driver=cinder.volume.drivers.netapp.nfs.NetAppDirectCmodeNfsDriver
</programlisting> </programlisting>
<para>NetApp Unified Driver <para>NetApp Unified Driver
configuration</para> configuration</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family=ontap_cluster netapp_storage_family=ontap_cluster
netapp_storage_protocol=nfs netapp_storage_protocol=nfs
</programlisting> </programlisting>
</listitem> </listitem>
<listitem> <listitem>
<para>NetApp iSCSI direct driver for 7-Mode <para>NetApp iSCSI direct driver for Data ONTAP
storage controller in Grizzly</para> operating in 7-Mode storage controller in
<programlisting> Grizzly (or earlier)</para>
volume_driver=cinder.volume.drivers.netapp.iscsi.NetAppDirect7modeISCSIDriver <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.iscsi.NetAppDirect7modeISCSIDriver
</programlisting> </programlisting>
<para>NetApp Unified Driver <para>NetApp Unified Driver
configuration</para> configuration</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family=ontap_7mode netapp_storage_family=ontap_7mode
netapp_storage_protocol=iscsi netapp_storage_protocol=iscsi
</programlisting> </programlisting>
</listitem> </listitem>
<listitem> <listitem>
<para>NetApp NFS direct driver for 7-Mode <para>NetApp NFS direct driver for Data ONTAP
storage controller in Grizzly</para> operating in 7-Mode storage controller in
<programlisting> Grizzly (or earlier)</para>
volume_driver=cinder.volume.drivers.netapp.nfs.NetAppDirect7modeNfsDriver <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.nfs.NetAppDirect7modeNfsDriver
</programlisting> </programlisting>
<para>NetApp Unified Driver <para>NetApp Unified Driver
configuration</para> configuration</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_storage_family=ontap_7mode netapp_storage_family=ontap_7mode
netapp_storage_protocol=nfs netapp_storage_protocol=nfs
</programlisting> </programlisting>
</listitem> </listitem>
</orderedlist> </orderedlist>
@ -258,44 +321,44 @@
</section> </section>
<section xml:id="ontap-driver-deprecate"> <section xml:id="ontap-driver-deprecate">
<title>Deprecated NetApp drivers</title> <title>Deprecated NetApp drivers</title>
<para>This section lists the NetApp drivers in Grizzly <para>This section lists the NetApp drivers in previous releases
that are deprecated in Havana.</para> that are deprecated in Havana.</para>
<orderedlist> <orderedlist>
<listitem> <listitem>
<para>NetApp iSCSI driver for clustered Data <para>NetApp iSCSI driver for clustered Data
ONTAP.</para> ONTAP.</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.iscsi.NetAppCmodeISCSIDriver volume_driver=cinder.volume.drivers.netapp.iscsi.NetAppCmodeISCSIDriver
</programlisting> </programlisting>
</listitem> </listitem>
<listitem> <listitem>
<para>NetApp NFS driver for clustered Data <para>NetApp NFS driver for clustered Data
ONTAP.</para> ONTAP.</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.nfs.NetAppCmodeNfsDriver volume_driver=cinder.volume.drivers.netapp.nfs.NetAppCmodeNfsDriver
</programlisting> </programlisting>
</listitem> </listitem>
<listitem> <listitem>
<para>NetApp iSCSI driver for 7-Mode storage <para>NetApp iSCSI driver for Data ONTAP operating in
controller.</para> 7-Mode storage controller.</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.iscsi.NetAppISCSIDriver volume_driver=cinder.volume.drivers.netapp.iscsi.NetAppISCSIDriver
</programlisting> </programlisting>
</listitem> </listitem>
<listitem> <listitem>
<para>NetApp NFS driver for 7-Mode storage <para>NetApp NFS driver for Data ONTAP operating in
controller.</para> 7-Mode storage controller.</para>
<programlisting> <programlisting language="ini">
volume_driver=cinder.volume.drivers.netapp.nfs.NetAppNFSDriver volume_driver=cinder.volume.drivers.netapp.nfs.NetAppNFSDriver
</programlisting> </programlisting>
</listitem> </listitem>
</orderedlist> </orderedlist>
<note> <note>
<para>See <link <para>See the <link
xlink:href="https://communities.netapp.com/groups/openstack" xlink:href="https://communities.netapp.com/groups/openstack"
>OpenStack NetApp community</link> for >OpenStack NetApp community</link> for
information on supporting deprecated NetApp support information on deprecated NetApp
drivers in Havana.</para> drivers in the Havana release.</para>
</note> </note>
</section> </section>
</section> </section>

View File

@ -63,7 +63,7 @@
<listitem> <listitem>
<para><emphasis role="bold">Back-end:</emphasis> A <para><emphasis role="bold">Back-end:</emphasis> A
term for a particular storage back-end. This term for a particular storage back-end. This
could be iSCSI, NFS, Netapp etc.</para> could be iSCSI, NFS, NetApp etc.</para>
</listitem> </listitem>
<listitem> <listitem>
<para><emphasis role="bold" <para><emphasis role="bold"

View File

@ -69,7 +69,7 @@ eqlx_cli_timeout eqlx
eqlx_group_name eqlx eqlx_group_name eqlx
eqlx_pool eqlx eqlx_pool eqlx
eqlx_use_chap eqlx eqlx_use_chap eqlx
expiry_thres_minutes netapp expiry_thres_minutes netapp_7mode_nfs netapp_cdot_nfs
fake_rabbit rpc fake_rabbit rpc
fatal_deprecations common fatal_deprecations common
fatal_exception_format_errors common fatal_exception_format_errors common
@ -82,6 +82,7 @@ glance_host images
glance_num_retries images glance_num_retries images
glance_port images glance_port images
glance_request_timeout images glance_request_timeout images
glusterfs_disk_util storage_glusterfs
glusterfs_mount_point_base storage_glusterfs glusterfs_mount_point_base storage_glusterfs
glusterfs_qcow2_volumes storage_glusterfs glusterfs_qcow2_volumes storage_glusterfs
glusterfs_shares_config storage_glusterfs glusterfs_shares_config storage_glusterfs
@ -151,17 +152,17 @@ min_pool_size storage
monkey_patch common monkey_patch common
monkey_patch_modules common monkey_patch_modules common
my_ip common my_ip common
netapp_login netapp netapp_login netapp_7mode_iscsi netapp_7mode_nfs netapp_cdot_iscsi netapp_cdot_nfs
netapp_password netapp netapp_password netapp_7mode_iscsi netapp_7mode_nfs netapp_cdot_iscsi netapp_cdot_nfs
netapp_server_hostname netapp netapp_server_hostname netapp_7mode_iscsi netapp_7mode_nfs netapp_cdot_iscsi netapp_cdot_nfs
netapp_server_port netapp netapp_server_port netapp_7mode_iscsi netapp_7mode_nfs netapp_cdot_iscsi netapp_cdot_nfs
netapp_size_multiplier netapp netapp_size_multiplier netapp_7mode_iscsi netapp_cdot_iscsi
netapp_storage_family netapp netapp_storage_family netapp_7mode_iscsi netapp_7mode_nfs netapp_cdot_iscsi netapp_cdot_nfs
netapp_storage_protocol netapp netapp_storage_protocol netapp_7mode_iscsi netapp_7mode_nfs netapp_cdot_iscsi netapp_cdot_nfs
netapp_transport_type netapp netapp_transport_type netapp_7mode_iscsi netapp_7mode_nfs netapp_cdot_iscsi netapp_cdot_nfs
netapp_vfiler netapp netapp_vfiler netapp_7mode_iscsi
netapp_volume_list netapp netapp_volume_list netapp_7mode_iscsi
netapp_vserver netapp netapp_vserver netapp_cdot_iscsi netapp_cdot_nfs
nexenta_blocksize nexenta_iscsi nexenta_blocksize nexenta_iscsi
nexenta_host nexenta_iscsi nexenta_host nexenta_iscsi
nexenta_iscsi_target_portal_port nexenta_iscsi nexenta_iscsi_target_portal_port nexenta_iscsi
@ -313,8 +314,8 @@ storwize_svc_vol_rsize storwize
storwize_svc_vol_warning storwize storwize_svc_vol_warning storwize
syslog_log_facility common syslog_log_facility common
tcp_keepidle common tcp_keepidle common
thres_avl_size_perc_start netapp thres_avl_size_perc_start netapp_7mode_nfs netapp_cdot_nfs
thres_avl_size_perc_stop netapp thres_avl_size_perc_stop netapp_7mode_nfs netapp_cdot_nfs
topics common topics common
transfer_api_class api transfer_api_class api
until_refresh common until_refresh common