Deployment Choices: REST Communication Mode

Deployment Choices: REST Communication Mode

From Antelope cycle, NetApp driver has the option to request ONTAP operations through REST API. By default, the driver keeps working as before using ZAPI communication. If desired, the REST communication can be selected. Share group snapshots and the operations in Native REST operations have REST implementations on supported ONTAP versions. A method that is not implemented still falls back to ZAPI unless netapp_zapi_fallback_enabled is set to False.

Important

When netapp_zapi_fallback_enabled remains at its default of True, the REST client still uses ZAPI for operations that do not yet have a REST implementation. The ONTAP administrative user account must be allowed to run the ONTAPI application in that case. Set netapp_zapi_fallback_enabled = False only after confirming that the operations you use are implemented in REST. With the fallback disabled, an unimplemented call fails instead of using ZAPI.

Important

The driver can only be configured with REST communication with ONTAP storage 9.12.1 or newer.

Caution

Enabling ONTAP REST client changes the behavior of QoS specs. Earlier, QoS values could be represented in BPS (bytes per second), but now REST client only supports integer values represented in MBPS (Megabytes per second). It means that though the operators specify the QoS value in BPS, it will be converted to MBPS and rounded up. It only affects new shares.

Caution

If running with REST mode, the extra spec configuration netapp:udp_max_xfer_size is not applied.

Native REST operations

Share group snapshots

On ONTAP 9.11.1 or newer, creating and deleting a share group snapshot uses the REST API, including when netapp_use_legacy_client is True. On older ONTAP releases the same operation uses ZAPI. Share group behavior, including an upgrade of an existing share group, is described in Share Group.

Other operations

When the REST client is active, REST implementations exist for the operations below. Presence of an implementation is not validation that every path has been exercised on REST:

  • Checking whether SVM disaster recovery and SVM migrate are supported.

  • Looking up data LIF details for nodes.

  • Reading volume autosize attributes.

  • Listing SVMs.

  • Configuring CIFS options, including the default Active Directory site.

  • Checking whether Kerberos is enabled on LIFs.

  • Resetting volume autosize as part of a volume modify.

Volume autosize reset uses the public REST volume endpoint on supported ONTAP versions. On older versions it uses the private CLI endpoint /private/cli/volume. Listing root aggregates during pool listing uses GET /api/private/cli/aggr. A cluster-scoped role needs storage aggregate readonly for that call. See Account Permission Considerations.

Configuration Options

To enable REST client for the NetApp ONTAP driver, the following options should be added to the appropriate NetApp stanza in the Manila configuration file (manila.conf).

[myONTAPBackend]
netapp_use_legacy_client = False
netapp_zapi_fallback_enabled = True

netapp_zapi_fallback_enabled defaults to True. Leave it at True to keep the previous fallback behavior. Set it to False when the backend must not call ZAPI for a method that the REST client does not implement.

Note

Operations running with REST client may take some time to be finished. The option netapp_rest_operation_timeout configures the time to wait for the completion. Default is 60 seconds.