Deployment Choices: REST Communication Mode

Deployment Choices: REST Communication Mode

From Zed cycle, NetApp drivers NFS, iSCSI and FCP have the option to request ONTAP operations through REST API. By default, the drivers keep working as before using ZAPI communication. If desired, the REST communication can be selected. Consistency group snapshots and the operations in Native REST operations have REST implementations. Operations that do not yet have a REST implementation still fall back to ZAPI.

The NVMe/TCP ONTAP driver has been delivered with Antelope cycle. This driver only runs with REST communication mode and it does not require enabling this mode as other driver does.

Important

The REST mode still relies on ZAPI for some calls, so the ONTAP administrative user account must have access for running ONTAPI application even when using the drivers with REST communication mode.

Important

The drivers can only be configured with REST communication with ONTAP storage 9.11.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 volumes.

Configuration Options

To enable REST client for the NetApp ONTAP drivers (iSCSI, FCP or NFS), the following option should be added to the appropriate NetApp stanza in the Cinder configuration file (cinder.conf).

[myONTAPBackend]
netapp_use_legacy_client =  False

Note

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

Native REST operations

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

  • Canceling an in-progress file copy during error cleanup. The REST client stops the copy job, and the driver then removes the partially copied destination file.

  • Assigning a QoS policy to an existing LUN, including when an existing LUN is brought under Cinder management. One REST field is used for both adaptive and non-adaptive policies.

  • Looking up, renaming, and cleaning up stale snapshots during snapshot housekeeping.

  • Creating crash-consistent snapshots across a group of volumes.

  • Reporting per-file space usage, used when deciding which cached images can be removed.

  • Reporting clone-split progress and deduplication space savings for a volume.

A crash-consistent group snapshot is created by making a short-lived ONTAP consistency group, taking the group snapshot, and then deleting that consistency group. The snapshot on each volume remains available for cloning and is removed after the clones finish. The REST client does not fall back to ZAPI for the consistency group snapshot start and commit steps.

Warning

Volume groups with snapshots using FlexGroup on the NFS driver may not work due to ONTAP’s restriction on adding FlexGroup to consistency groups. The volume group snapshot implementation depends on CG snapshots. FlexGroup cannot be added to a consistency group.

Reporting per-file space usage and deduplication space savings uses the private CLI endpoints /private/cli/volume/file/show-disk-usage and /private/cli/volume/efficiency. Public REST equivalents are not available yet.

HTTPS Transport and TLS Certificate Verification

Beginning with the Hibiscus release, the NetApp ONTAP Cinder driver defaults to HTTPS for ONTAP management communication. The netapp_transport_type option now defaults to https, and certificate verification is enabled by default through netapp_ssl_cert_verify (default True). These settings apply to both REST and legacy ZAPI client paths.

Configuration behavior

netapp_transport_type

netapp_ssl_cert_verify

netapp_ssl_cert_path

Expected behavior

https (default)

not set or true

not set

Backend initializes only if ONTAP presents a certificate trusted by the system CA bundle. Fails with self-signed ONTAP certificates.

https

false

not set

Backend initializes. TLS encryption is used but certificate identity is not verified. Not recommended for production.

https

not set or true

set to ONTAP CA/cert PEM

Backend initializes. Recommended for self-signed or private-CA ONTAP certificates.

http

any

any

Backend initializes over HTTP. No TLS validation applies. A startup warning is logged.

If HTTPS with certificate verification fails, the cinder-volume service cannot start the backend. Operators see DriverNotInitialized and volume provisioning does not complete.