NetApp Unified Driver for ONTAP with Share Server management

NetApp Unified Driver for ONTAP with Share Server management

Overview

The NetApp unified driver for ONTAP with share server management is a driver interface from OpenStack Manila to NetApp ONTAP storage controllers to accomplish provisioning and management of shared file systems across the scope of the entire cluster. This driver will create a new storage virtual machine (SVM) for each share server that is requested by the Manila service. This driver also creates new data logical interfaces (LIFs) that provide access for clients on a specific share network to access shared file systems exported from the share server.

Caution

An account with cluster administrator privileges must be used with the netapp_login option when using Share Server management. Share Server management creates SVMs, thus SVM administrator privileges are insufficient.

Setup

To set up the NetApp ONTAP driver with Share Server management, the following stanza should be added to the Manila configuration file (manila.conf):

[cdotMultipleSVM]
share_backend_name=cdotMultipleSVM
share_driver=manila.share.drivers.netapp.common.NetAppDriver
driver_handles_share_servers=True
netapp_storage_family=ontap_cluster
netapp_server_hostname=hostname
netapp_server_port=80
netapp_login=admin_username
netapp_password=admin_password
netapp_transport_type=https
netapp_root_volume_aggregate=aggr1
netapp_aggregate_name_search_pattern=^((?!aggr0).)*$
  • Be sure that the value of the enabled_share_backends option in the [DEFAULT] stanza includes the name of the stanza you chose for the backend.

  • The value of driver_handles_share_servers MUST be set to True if you want the driver to manage share servers.

Table 6.16, “Configuration options for ONTAP with Share Server management” lists the configuration options available for the unified driver for an ONTAP deployment that manages share servers.

Option

Type

Default Value

Description

share_backend_name

Required

The name used by Manila to refer to the Manila backend

share_driver

Required

manila.share.drivers.generic.GenericShareDriver

Set the value to manila.share.drivers.netapp.common.NetAppDriver

driver_handles_share_servers

Required

Denotes whether the driver should handle the responsibility of managing share servers. This must be set to true if the driver is to manage share servers.

netapp_server_hostname

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.

netapp_server_port

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.

netapp_login

Required

Administrative user account name used to access the storage system.

netapp_password

Required

Password for the administrative user account specified in the netapp_login option.

netapp_transport_type

Required

http

Transport protocol for communicating with the storage system or proxy server. Valid options include http and https.

netapp_storage_family

Required

ontap_cluster

The storage family type used on the storage system; valid values are ontap_cluster for ONTAP.

netapp_root_volume_aggregate

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.

netapp_root_volume_name

Optional

root

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.

netapp_vserver_name_template

Optional

os_%s

This option specifies a string replacement template that is applied when naming SVMs that are created to correspond to a Manila share server.

netapp_lif_name_template

Optional

os_%(net_allocation_id)s

This option specifies a string replacement template that is applied when naming data LIFs that are created as a result of provisioning requests.

netapp_volume_name_template

Optional

share_%(share_id)s

This option specifies a string replacement template that is applied when naming FlexVol volumes that are created as a result of provisioning requests.

netapp_qos_policy_group_name_template

Optional

qos_share_%(share_id)s

This option specifies a string replacement template that is applied when naming QoS policies created for FlexVol volumes created by Manila.

netapp_volume_snapshot_reserve_percent

Optional

5

This option specifies the percentage of share space set aside as reserve for snapshot usage. Valid values range from 0 to 90.

netapp_aggregate_name_search_pattern

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.

netapp_port_name_search_pattern

Optional

(.*)

This option allows you to specify a regular expression for overriding the selection of network ports on which to create Vserver LIFs.

netapp_enabled_share_protocols

Optional

nfs3,nfs4.0

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.

filter_function

Optional

(see description)

This expression is used by the scheduler as a filter in determining share placement. Using this expression, the scheduler is instructed to NOT place volumes on storage controllers that may become overutilized. For FlexVol pools, the default value is “capabilities.utilization < 70”. For FlexGroup pools, the default value is “share.size > min_share”. Where min_share means the minimum size for a FlexGroup share and Capabilities.utilization refers to ONTAP storage node headroom. See “Manila scheduling and resource pool selection” for more information on filters and weighers.

goodness_function

Optional

(see description)

This expression is used by the scheduler to assign weighting in determining share placement. Using this expression, the scheduler places shares on lesser-utilized storage controllers. The default value is “100 - capabilities.utilization”. Capabilities.utilization refers to ONTAP storage node headroom. See “Manila scheduling and resource pool selection” for more information on filters and weighers.

netapp_trace_flags

Optional

This option is a comma-separated list of options (valid values include method and api) that controls which trace info is written to the Manila logs when the debug level is set to True.

netapp_api_trace_pattern

Optional

(.+)

A regular expression to limit the API tracing. This option is honored only if enabling api tracing with the netapp_trace_flags option. By default, all APIs will be traced.

migration_driver_continue_interval

Optional

60

This option specifies the time interval in seconds at which Manila polls the backend for the progress and health of an ongoing migration.

server_migration_driver_continue_interval

Optional

900

This option specifies the time interval in seconds at which Manila polls the backend for the progress and health of an ongoing share server migration.

netapp_snapmirror_policy_name_svm_template

Optional

snapmirror_policy_%(share_server_id)s

This option specifies a string replacement template that is applied when naming SnapMirror policies created for SVMs when migrating share servers.

netapp_snapmirror_release_timeout

Optional

3600

This option specifies a maximum timeout in seconds at which NetApp driver will wait for SnapMirror to be released before proceeding with share server migrating operation. The SnapMirror release operation is part of the process of promoting a destination SVM as the active share server.

netapp_server_migration_state_change_timeout

Optional

3600

This option specifies a maximum timeout in seconds at which NetApp driver will wait for a SVM to change its internal states before proceeding with share server migrating operation. During the share server migration complete operation, the NetApp driver will wait for the destination SVM to be at “running” state before proceeding with the migration process.

netapp_server_migration_check_capacity

Optional

True

This option specifies if the NetApp driver will make capacity checks while performing a share server migration. If enabled, the driver will validate if the provided destination back end can hold all shares and snapshots capacities from the source SVM.

netapp_fpolicy_default_file_operations

Optional

['create', 'write', 'rename']

This option specifies the default file operations to apply to a FPolicy, when not provided with netapp:fpolicy_file_operations extra-spec.

netapp_fpolicy_policy_name_template

Optional

fpolicy_policy_%(share_id)s

This option specifies a string replacement template that is applied when naming FPolicy policies created by Manila.

netapp_fpolicy_event_name_template

Optional

fpolicy_event_%(protocol)s_%(share_id)s

This option specifies a string replacement template that is applied when naming FPolicy events created by Manila.

max_share_server_size

Optional

-1 (unlimited)

This option defines the limit of gigabytes a share server can have. Snapshots are also accounted. If the limit has been reached in a share server, it won’t be reused and a new share server is going to be created to accommodate the request.

max_shares_per_share_server

Optional

-1 (unlimited)

This option defines the limit of instances a share server can have. Snapshots are also accounted. If the limit has been reached in a share server, it won’t be reused and a new share server is going to be created to accommodate the request.

netapp_enable_flexgroup

Optional

False

Specify if the FlexGroup pool is enabled. When it is enabled, the driver will report a single pool representing all aggregates (ONTAP chooses on which set the share will be allocated). If you want to Manila control the aggregate selection, you can configure its custom FlexGroup pools through netapp_flexgroup_pools option. The FlexGroup placement is done either by ONTAP or Manila, not both.

netapp_flexgroup_pools

Optional

Multi option of dictionary to represent the FlexGroup pools. A FlexGroup pool is configured with its name and its list of aggregates. Specify this option as many times as you have FlexGroup pools. Each entry takes the dict config form: netapp_flexgroup_pools = <pool_name>: <aggr_name1> <aggr_name2> …

netapp_flexgroup_pool_only

Optional

False

Specify if the FlexVol pools must not be reported when the netapp_enable_flexgroup is enabled.

netapp_snapmirror_last_transfer_size_limit

Optional

1024

This option sets the last transfer size limit (in KB) of snapmirror to decide whether replica is in sync or out of sync.

netapp_snapmirror_schedule

Optional

hourly

An interval in either minutes or hours used to update the SnapMirror relationship. Few valid values are: 5min, 10min, 30min, hourly etc. The schedule at the “destination” host will be the one that will be considered when creating a new replica, or promoting a replica.

netapp_use_legacy_client

Optional

True

Select which ONTAP client to use for retrieving and modifying data on the storage. The legacy client relies on ZAPI calls. If set to False, the new REST client is used, which runs REST calls if supported, otherwise falls back to the equivalent ZAPI call.

netapp_rest_operation_timeout

Optional

60

The maximum time in seconds to wait for completing a REST asynchronous operation.

Table 6.16. Configuration options for ONTAP with Share Server management.

Important

The option netapp_use_legacy_client can only be set to False (storage communication through REST API) when using ONTAP storage 9.12.1 or newer. See Deployment Choices: REST Communication Mode for more details.