Theory of Operation: Storage Service Catalog and Manila Share Types

Theory of Operation: Storage Service Catalog and Manila Share Types

The Storage Service Catalog (SSC) is a concept that describes a set of capabilities that enables efficient, repeated, and consistent use and management of storage resources by the definition of policy-based services and the mapping of those services to the backend storage technology. It is meant to abstract away the actual technical implementations of the features at a storage backend into a set of simplified configuration options.

The storage features are organized or combined into groups based on the customer needs to achieve a particular scenario or use case. Based on the catalog of the storage features, intelligent provisioning decisions are made by infrastructure or software enabling the storage service catalog. In OpenStack, this is achieved together by the Manila filter scheduler and the NetApp driver by making use of share type extra-specs support together with the filter scheduler.

When the NetApp unified driver is used with an ONTAP storage system, you can leverage extra specs with Manila share types to ensure that Manila shares are created on storage backends that have certain properties (e.g. thin provisioning, disk type, RAID type, QoS Support) configured.

Extra specs are associated with Manila share types, so that when users request shares of a particular share type, they are created on storage backends that meet the list of requirements (e.g. available space, extra specs, etc). You can use the specs in Table 6.10, “NetApp supported Extra Specs for use with Manila Share Types” when defining Manila share types with the manila type-key command.

Extra spec

Type

Description

netapp_aggregate

String

Limit the candidate aggregate (pool) list to a specific aggregate.

netapp_raid_type

String

Limit the candidate aggregate (pool) list based on one of the following raid types: raid4, raid_dp.

netapp_disk_type

String

Limit the candidate aggregate (pool) list based on one of the following disk types: ATA, BSAS, EATA, FCAL, FSAS, LUN, MSATA, SAS, SATA, SCSI, XATA, XSAS, or SSD.

netapp_hybrid_aggregate

Boolean

Limit the candidate aggregate (pool) list to hybrid aggregates.

netapp:dedup

Boolean

Enable deduplication on the share. Note that this option is deprecated in favor of the standard Manila extra spec ‘dedupe’.

dedupe

String

Enable deduplication on the share. This value should be set to "<is> True" or "<is> False".

netapp:compression

Boolean

Enable compression on the share. When compression is enabled on a share, deduplication is also automatically enabled on that share. Note that this option is deprecated in favor of the standard Manila extra spec ‘compression’.

compression

String

Enable compression on the share. When compression is enabled on a share, deduplication is also automatically enabled on that share. This value should be set to "<is> True" or "<is> False".

netapp:thin_provisioned

Boolean

Enable thin provisioning (a space guarantee of None) on the share. Note that this option is deprecated in favor of the standard Manila extra spec ‘thin_provisioning’.

thin_provisioning

String

Enable thin provisioning (a space guarantee of None) on the share. This value should be set to "<is> True" or "<is> False".

netapp:snapshot_policy

String

Apply the specified snapshot policy to the created FlexVol volume. Note that the snapshots created by applying a policy will not have corresponding Manila snapshot records.

netapp:hide_snapdir

Boolean

Control visibility of the .snapshot directory for each newly created share. By default, each share allows access to its .snapshot directory, which contains files of each snapshot that is taken. To restrict access to the directory, this option should be set to True. For shares that have already been created, refer [2].

netapp:language

String

Apply the specified language to the FlexVol volume that corresponds to the Manila share. The language of the FlexVol volume determines the character set ONTAP uses to display file names and data for that volume. The default value for the language of the volume is the language of the SVM.

netapp:max_files

String

Change the maximum number of files for the FlexVol volume that corresponds to the Manila share. By default, the maximum number of files is proportional to the size of the share. This spec can be used to increase the number of files for very large shares (greater than 1TB), or to place a smaller limit on the number of files on a given share.

netapp:split_clone_on_create

Boolean

Choose whether a FlexVol volume that corresponds to the Manila share is immediately split from its parent when creating a share from a snapshot. By default, the FlexVol is not split so that no additional space is consumed. Setting this value to ‘true’ may be appropriate for shares that are created from a template share and that will encounter high rates of change.

snapshot_support

Boolean

Choose whether to allow the creation of snapshots for a share type.

create_share_from_snapshot_support

Boolean

Enable the creation of a share from a snapshot.

revert_to_snapshot_support

Boolean

Allow a share to be reverted to the most recent snapshot.

netapp_flexvol_encryption

Boolean

Create FlexVol with NVE encryption at rest enabled.

qos

Boolean

Allow scheduling to an aggregate (pool) that supports defining QoS. See how this is determined by the driver in [1]. See the NetApp driver specific QoS extra-specs in Table 6.11, ?~@~NetApp QoS Specs for use with Manila Share Types?~@~].

Table 6.10. NetApp supported Extra Specs for use with Manila Share Types

QoS Extra spec

Type

Description

netapp:maxiops

String

The maximum IOPS allowed.

netapp:maxbps

String

The maximum bytes per second allowed.

netapp:maxiopspergib

String

The maximum IOPS allowed per GiB of the Manila share size.

netapp:maxbpspergib

String

The maximum bytes per second allowed per GiB of the Manila share size.

Table 6.11. NetApp specific QoS Extra Specs for use with Manila Share Types that have qos=True.

Caution

When using the Manila driver without share server management, you can specify a value for the netapp_login option that only has SVM administration privileges (rather than cluster administration privileges); you should note some advanced features of the driver may not work and you may see warnings in the Manila logs, unless appropriate permissions are set. See the section called “Account Permission Considerations” for more details on the required access level permissions for an SVM admin account.

Footnotes