This guide shows how to configure and deploy NetApp ONTAP Manila driver in a Red Hat OpenStack Platform (RHOSP) 16 Overcloud, using RHOSP Director. After reading this, you’ll be able to define the proper environment files and deploy single or multiple ONTAP Manila back ends in RHOSP Overcloud Controller nodes.
Note
For more information about RHOSP, please refer to its documentation pages.
Warning
RHOSP16 is based on OpenStack Train release. Features included after Train release are not available in RHOSP16.
In order to deploy NetApp Manila back ends, you should have the following requirements satisfied:
NetApp ONTAP storage controllers deployed and ready to be used as Manila back ends. See ONTAP Prerequisites for more details.
RHOSP Director user credentials to deploy Overcloud.
RHOSP Overcloud Controller nodes where Manila services will be installed.
RHOSP makes use of TripleO Heat Templates (THT), which allows you to define the Overcloud resources by creating environment files.
To configure a single NetApp Manila back end, define an environment file as in the following example:
/home/stack/templates/tripleo-netapp-single-svm.yaml
resource_registry:
OS::TripleO::Services::ManilaApi: /usr/share/openstack-tripleo-heat-templates/deployment/manila/manila-api-container-puppet.yaml
OS::TripleO::Services::ManilaScheduler: /usr/share/openstack-tripleo-heat-templates/deployment/manila/manila-scheduler-container-puppet.yaml
OS::TripleO::Services::ManilaShare: /usr/share/openstack-tripleo-heat-templates/deployment/manila/manila-share-pacemaker-puppet.yaml
OS::TripleO::Services::ManilaBackendNetapp: /usr/share/openstack-tripleo-heat-templates/deployment/manila/manila-backend-netapp.yaml
parameter_defaults:
ManilaNetappBackendName: 'tripleo_netapp_single_svm'
ManilaNetappDriverHandlesShareServers: 'false'
ManilaNetappLogin: 'admin_username'
ManilaNetappPassword: 'admin_password'
ManilaNetappServerHostname: 'hostname'
ManilaNetappTransportType: 'http'
ManilaNetappStorageFamily: 'ontap_cluster'
ManilaNetappServerPort: '80'
ManilaNetappVserver: 'svm_name'
ControllerExtraConfig:
manila::config::manila_config:
tripleo_netapp_single_svm/backend_availability_zone:
value: 'manila-zone-0'
Modify the parameter values according to your NetApp ONTAP back end configuration.
Note
Each THT Configuration Parameter corresponds to a Manila Configuration Option. See Table 7.1, “Manila NetApp THT Configuration Parameters “ for a complete list of the THT Configuration Parameters and their correspondence to Manila Configuration Options.
Note
There are some Manila Configuration Options that have no correspondent THT
Configuration Parameter. If you need to set such options, you can define
Custom Configuration Parameters. For instance, the previous example sets
backend_availability_zone=manila-zone-0
for the back end
tripleo_netapp_single_svm
.
You can define arbitrary Custom Configurations using the following syntax:
parameter_defaults:
ControllerExtraConfig:
manila::config::manila_config:
<backend_name>/<configuration_name>:
value: <value>
See NetApp Unified Driver for ONTAP with Share Server management (Train) and NetApp Unified Driver for ONTAP without Share Server management (Train) for a complete list of the available Manila Configuration Options.
Warning
RHOSP16 is based on OpenStack Train release. Features and Configuration Options included after Train release are not available in RHOSP16.
Each THT Configuration Parameter corresponds to a Manila Configuration Option. The following table maps each THT Configuration Parameter to the corresponding Manila Configuration Option:
THT Parameter Name |
Manila Configuration Option |
Required/Optional |
Description |
---|---|---|---|
|
|
Required |
The name used by Manila to refer to the Manila backend. |
|
|
Required |
Administrative user account name used to access the storage system. |
|
|
Required |
Denotes whether the driver should handle the responsibility of managing share servers. This must be set to |
|
|
Required |
Password for the administrative user account specified in the |
|
|
Required |
The hostname or IP address for the storage system or proxy server. The value of this option should be the IP address of the cluster management LIF. |
|
|
Required |
Transport protocol for communicating with the storage system or proxy server. Valid options include |
|
|
Required |
The storage family type used on the storage system; valid values are |
|
|
Optional |
The TCP port to use for communication with the storage system or proxy server. If not specified, ONTAP drivers will use 80 for HTTP and 443 for HTTPS. |
|
|
Optional |
This option specifies a string replacement template that is applied when naming FlexVol volumes that are created as a result of provisioning requests. |
|
|
Required |
This option specifies the storage virtual machine (previously called a Vserver) name on the storage cluster on which provisioning of shared file systems should occur. This parameter is required if the driver is to operate without managing share servers (that is, be limited to the scope of a single SVM). |
|
|
Optional |
This option specifies a string replacement template that is applied when naming FlexVol volumes that are created as a result of provisioning requests. |
|
|
Optional |
This option specifies a string replacement template that is applied when naming data LIFs that are created as a result of provisioning requests. |
|
|
Optional |
This option specifies a regular expression that is applied against all available aggregates. This filtered list will be reported to the Manila scheduler as valid pools for provisioning new shares. |
|
|
Required |
This option specifies name of the aggregate upon which the root volume should be placed when a new SVM is created to correspond to a Manila share server. |
|
|
Optional |
This option specifies name of the root volume that will be created when a new SVM is created to correspond to a Manila share server. |
|
|
Optional |
This option allows you to specify a regular expression for overriding the selection of network ports on which to create Vserver LIFs. |
|
|
Optional |
This option is a comma-separated list of options (valid values include |
|
|
Optional |
This option specifies the NFS protocol versions that will be enabled on new SVMs created by the driver. Valid values include nfs3, nfs4.0, nfs4.1. |
|
|
Optional |
This option specifies the percentage of share space set aside as reserve for snapshot usage. Valid values range from 0 to 90. |
|
|
Optional |
The maximum time in seconds to wait for existing snapmirror transfers to complete before aborting when promoting a replica. |
|
|
Optional |
The percentage of share space set aside as reserve for snapshot usage; valid values range from 0 to 90. |
Table 7.1. Manila NetApp THT Configuration Parameters
THT has no templates for configuring multiple NetApp Manila back ends. In order to configure multiple NetApp Manila back ends, you need to define the first back end with THT, and the additional back ends with Custom Configurations.
It’s possible to define all the back ends in a single environment file, but for sake of clarity, the following example organizes the back ends in multiple smaller environment files:
/home/stack/templates/tripleo-netapp-multi-svm-1.yaml
This file defines the first Manila share back end
tripleo_netapp_multi_svm_1
and its parameters. The definition of the
first back end is the same for both single and multiple back end
configuration:
resource_registry:
OS::TripleO::Services::ManilaBackendNetapp: /usr/share/openstack-tripleo-heat-templates/deployment/manila/manila-backend-netapp.yaml
OS::TripleO::Services::ManilaApi: /usr/share/openstack-tripleo-heat-templates/deployment/manila/manila-api-container-puppet.yaml
OS::TripleO::Services::ManilaScheduler: /usr/share/openstack-tripleo-heat-templates/deployment/manila/manila-scheduler-container-puppet.yaml
OS::TripleO::Services::ManilaShare: /usr/share/openstack-tripleo-heat-templates/deployment/manila/manila-share-pacemaker-puppet.yaml
OS::TripleO::Services::ManilaBackendNetapp: /usr/share/openstack-tripleo-heat-templates/deployment/manila/manila-backend-netapp.yaml
parameter_defaults:
ManilaNetappBackendName: 'tripleo_netapp_multi_svm_1'
ManilaNetappDriverHandlesShareServers: 'true'
ManilaNetappLogin: 'admin_username'
ManilaNetappPassword: 'admin_password'
ManilaNetappServerHostname: 'hostname'
ManilaNetappTransportType: 'http'
ManilaNetappStorageFamily: 'ontap_cluster'
ManilaNetappServerPort: '80'
ManilaNetappRootVolumeAggr: 'aggr0'
ControllerExtraConfig:
manila::config::manila_config:
tripleo_netapp_multi_svm_1/replication_domain:
value: 'netapp_replication_domain'
tripleo_netapp_multi_svm_1/backend_availability_zone:
value: 'manila-zone-0'
Modify the parameter values according to your NetApp ONTAP back end configuration.
/home/stack/templates/manila-enabled-backends.yaml
This file defines which additional back ends will be enabled. In this
example, one additional back end tripleo_netapp_multi_svm_2
will be
enabled:
parameter_defaults:
ControllerExtraConfig:
manila_user_enabled_backends:
- 'tripleo_netapp_multi_svm_2'
/home/stack/templates/tripleo-netapp-multi-svm-2.yaml
This file defines the second Manila share back end
tripleo_netapp_multi_svm_2
and its parameters:
parameter_defaults:
ControllerExtraConfig:
manila::config::manila_config:
tripleo_netapp_multi_svm_2/share_backend_name:
value: 'tripleo_netapp_multi_svm_2'
tripleo_netapp_multi_svm_2/share_driver:
value: 'manila.share.drivers.netapp.common.NetAppDriver'
tripleo_netapp_multi_svm_2/driver_handles_share_servers:
value: 'True'
tripleo_netapp_multi_svm_2/netapp_login:
value: 'admin_username'
tripleo_netapp_multi_svm_2/netapp_password:
value: 'admin_password'
tripleo_netapp_multi_svm_2/netapp_server_hostname:
value: 'hostname'
tripleo_netapp_multi_svm_2/netapp_storage_family:
value: 'ontap_cluster'
tripleo_netapp_multi_svm_2/netapp_transport_type:
value: 'http'
tripleo_netapp_multi_svm_2/netapp_server_port:
value: '80'
tripleo_netapp_multi_svm_2/netapp_root_volume_aggregate:
value: 'aggr0'
tripleo_netapp_multi_svm_2/replication_domain:
value: 'netapp_replication_domain'
tripleo_netapp_multi_svm_2/backend_availability_zone:
value: 'manila-zone-0'
Modify the parameter values according to your NetApp ONTAP back end configuration.
Now that you have the Manila back end environment files defined, you can run
the command to deploy RHOSP Overcloud. Run the following command as stack
user in the RHOSP Director command line, specifying the YAML file(s) you
defined:
(undercloud) [stack@rhosp16-undercloud ~]$ openstack overcloud deploy \
--templates \
-e /home/stack/containers-prepare-parameter.yaml \
-e /home/stack/templates/tripleo-netapp-single-svm.yaml \
--stack overcloud
Note
Alternatively, you can use --environment-directory
parameter and specify
the whole directory to the deployment command. It will consider all the YAML
files within this directory:
(undercloud) [stack@rhosp16-undercloud ~]$ openstack overcloud deploy \
--templates \
-e /home/stack/containers-prepare-parameter.yaml \
--environment-directory /home/stack/templates \
--stack overcloud
After RHOSP Overcloud is deployed, run the following command to check if the Manila services are up:
[stack@rhosp16-undercloud ~]$ source ~/overcloudrc
(overcloud) [stack@rhosp16-undercloud ~]$ manila service-list
This document is licensed under Apache 2.0 license.