Chapter 3. Define the Back End
This section describes the deployment of a single back end. Deploying multiple instances of a NetApp back end requires a custom back end configuration. For more information, see the Custom Block Storage Back End Deployment Guide.
With a director deployment, the easiest way to define the NetApp appliance as a Block Storage back end is through the integrated NetApp environment file. This file is located in the following path of the undercloud node:
/usr/share/openstack-tripleo-heat-templates/environments/cinder-netapp-config.yaml
Copy this file to a local path where you can edit and invoke it later. For example, to copy it to ~/templates/
:
$ cp /usr/share/openstack-tripleo-heat-templates/environments/cinder-netapp-config.yaml ~/templates/
Afterwards, open the copy (~/templates/cinder-netapp-config.yaml
) and edit it as you see fit. The following snippet displays the default contents of this file:
# A heat environment file which can be used to enable a # a Cinder NetApp backend, configured via puppet resource_registry: OS::TripleO::Services::CinderBackendNetApp: ../puppet/services/cinder-backend-netapp.yaml 1 parameter_defaults: 2 CinderEnableNetappBackend: true 3 CinderNetappBackendName: 'tripleo_netapp' CinderNetappLogin: '' CinderNetappPassword: '' CinderNetappServerHostname: '' CinderNetappServerPort: '80' CinderNetappSizeMultiplier: '1.2' CinderNetappStorageFamily: 'ontap_cluster' CinderNetappStorageProtocol: 'nfs' CinderNetappTransportType: 'http' CinderNetappVfiler: '' CinderNetappVolumeList: '' CinderNetappVserver: '' CinderNetappPartnerBackendName: '' CinderNetappNfsShares: '' CinderNetappNfsSharesConfig: '/etc/cinder/shares.conf' CinderNetappNfsMountOptions: '' CinderNetappCopyOffloadToolPath: '' CinderNetappControllerIps: '' CinderNetappSaPassword: '' CinderNetappStoragePools: '' CinderNetappEseriesHostType: 'linux_dm_mp' CinderNetappWebservicePath: '/devmgr/v2'
There are several director heat parameters that control whether an NFS back end or a NetApp NFS Block Storage back end supports a NetApp feature called NAS secure:
- CinderNetappNasSecureFileOperations
- CinderNetappNasSecureFilePermissions
- CinderNasSecureFileOperations
- CinderNasSecureFilePermissions
Red Hat does not recommend that you enable the feature, because it interferes with normal volume operations. Director disables the feature by default, and Red Hat OpenStack Platform does not support it.
- 1
- The OS::TripleO::Services::CinderBackendNetApp parameter in the
resource_registry
section refers to a composable service template namedcinder-backend-netapp.yaml
. This is the template that the Director should use to load the necessary resources for configuring the back end. By default, the parameter specifies the path tocinder-backend-netapp.yaml
relatively. As such, update this parameter with the absolute path to the file:resource_registry: OS::TripleO::Services::CinderBackendNetApp: /usr/share/openstack-tripleo-heat-templates/puppet/services/cinder-backend-netapp.yaml
- 2
- The parameter_defaults section contains your back end definition. Specifically, it contains the parameters that director passes to the resources defined in
cinder-backend-netapp.yaml
. - 3
- The CinderEnableNetappBackend: true line instructs director to use the puppet manifests necessary for the default configuration of a NetApp back end. This includes defining the volume driver that the Block Storage service should use (specifically,
cinder.volume.drivers.netapp.common.NetAppDriver
).
To define your NetApp back end, edit the settings in the parameter_defaults section as you see fit. The following table explains each parameter and lists its corresponding cinder.conf
setting.
For more about variables, see the corresponding reference in NetApp OpenStack Docs for your NetApp appliance.
Parameter | cinder.conf setting | Description |
---|---|---|
CinderNetappBackendName | volume_backend_name |
(Required) An arbitrary name to identify the volume back end. The |
CinderNetappLogin | netapp_login |
(Required) Administrative account name used to access the back end or its proxy server. For this parameter, you can use an account with cluster-level administrative permissions (namely, |
CinderNetappPassword | netapp_password | (Required) The corresponding password of CinderNetappLogin. |
CinderNetappServerHostname | netapp_server_hostname | (Required) The storage system or proxy server (for E-Series). The value of this option should be the IP address or hostname of either the cluster management logical interface (LIF) or Storage Virtual Machine (SVM) LIF. |
CinderNetappServerPort | netapp_server_port |
(Optional) The TCP port that the Block Storage service should use to communicate with the NetApp back end. If not specified, Data ONTAP drivers will use |
CinderNetappSizeMultiplier | netapp_size_multiplier | (Deprecated) During volume creation, the quantity to be multiplied to the requested volume size to ensure that the NetApp back end has enough space. |
CinderNetappStorageFamily | netapp_storage_family |
(Optional) The storage family type used on the back end device. Use
NOTE: Support for |
CinderNetappStorageProtocol | netapp_storage_protocol |
(Required) The storage protocol to be used. Use either |
CinderNetappTransportType | netapp_transport_type |
(Required) Transport protocol to be used for communicating with the back end. Valid options include |
[a]
For more information on cluster-scoped accounts, see ONTAP Configuration (from NetApp OpenStack Docs)
|
The following setting is only valid for clustered Data ONTAP (as in, with CinderNetappStorageFamily set to ontap_cluster
).
Parameter | cinder.conf setting | Description |
---|---|---|
CinderNetappVserver | netapp_vserver | (Required) Specifies which the name of the SVM where volume provisioning should occur. This refers to a single SVM on the storage cluster. |
The following settings are only valid with Data ONTAP operating in 7-Mode (as in, with CinderNetappStorageFamily set to ontap_7mode
).
Parameter | cinder.conf setting | Description |
---|---|---|
CinderNetappVfiler | netapp_vfiler | (Optional) The vFiler unit on which provisioning of volumes will be done. Use this option only when you want to use the MultiStore feature on the NetApp back end. |
CinderNetappVolumeList | netapp_volume_list | (Deprecated) Restricts provisioning to the specified comma-separated list of NetApp controller volumes. Backwards compatibility for this option remains for this release. |
CinderNetappPartnerBackendName [a] | netapp_partner_backend_name |
(Required) This specifies another back end that acts as the second half of a high-availability (HA) pair. Both back ends must refer to each other’s |
[a]
This option is only valid when using the Fibre Channel protocol (as in, with CinderNetappStorageProtocol set to fc ). For more information, see NetApp Unified Driver for Data ONTAP operating in 7-Mode with Fibre Channel (from the NetApp OpenStack Deployment and Operations Guide)
|
The following settings are only valid with the E-Series family of devices (as in, with CinderNetappStorageFamily set to eseries
).
Parameter | cinder.conf setting | Description |
---|---|---|
CinderNetappControllerIps | netapp_controller_ip | (Required) A comma-separated list of controller management IPs/hostnames to which provisioning should be restricted. |
CinderNetappSaPassword | netapp_sa_password | (Optional) Password to the NetApp E-Series storage array. |
CinderNetappStoragePools | netapp_storage_pools | (Removed) A comma-separated list of disk pools to which provisioning should be restricted. Do not edit this parameter, as it now refers to an unavailable driver option. |
CinderNetappEseriesHostType | netapp_eseries_host_type | (Removed) Defines the type of operating system for all initiators that can access a LUN. This information is used when mapping LUNs to individual hosts or groups of hosts. Do not edit this parameter, as it now refers to an unavailable driver option. |
CinderNetappWebservicePath | netapp_webservice_path | (Optional) Specifies the path to the E-Series proxy application on a proxy server. To determine the full URL for connecting to the proxy application, the driver combines the CinderNetappTransportType, CinderNetappServerHostname, and CinderNetappServerPort port values. |
The following settings are only valid when using the NFS protocol (as in, with CinderNetappStorageProtocol set to nfs
). For more information, see NetApp Unified Driver for Clustered Data ONTAP with NFS or NetApp Unified Driver for Data ONTAP operating in 7-Mode with NFS (both from the NetApp OpenStack Deployment and Operations Guide).
Parameter | cinder.conf setting | Description |
---|---|---|
CinderNetappNfsShares | None | (Required) Comma-separated list of Data LIFs exported from the NetApp ONTAP device to be mounted by the Controller nodes. This list gets written to the location defined by CinderNetappNfsSharesConfig. For example:
|
CinderNetappNfsSharesConfig | nfs_shares_config | (Required) Absolute path to the NFS exports file. This file contains a list of available NFS shares to be used as a back end. |
CinderNetappNfsMountOptions | nfs_mount_options | (Optional) Comma-separated list of mount options you want to pass to the NFS client. For more information about valid options, see man mount. |
CinderNetappCopyOffloadToolPath [a] | netapp_copyoffload_tool_path |
(Optional) Specifies the path of the NetApp copy offload tool binary. This binary (available from the NetApp Support portal) must have the |
[a]
This option is only valid with Clustered Data ONTAP (as in, with CinderNetappStorageFamily set to ontap_cluster ). For more information, see NetApp Unified Driver for Clustered Data ONTAP with NFS (from the NetApp OpenStack Deployment and Operations Guide).
|