NexentaStor5 Driver

Nexentastor5 can be used as a storage back end for the OpenStack Shared File System service. Shares in the Shared File System service are mapped 1:1 to Nexentastor5 filesystems. Access is provided via NFS protocol and IP-based authentication.

Network approach

L3 connectivity between the storage back end and the host running the Shared File Systems share service should exist.

Supported shared filesystems and operations

The drivers supports NFS shares.

The following operations are supported:

  • Create NFS share

  • Delete share

  • Extend share

  • Shrink share

  • Allow share access

    Note the following limitation:

    • Only IP based access is supported (ro/rw).

  • Deny share access

  • Create snapshot

  • Revert to snapshot

  • Delete snapshot

  • Create share from snapshot

  • Manage share

  • Unmanage share

Requirements

  • NexentaStor 5.x Appliance pre-provisioned and licensed

  • Pool and parent filesystem configured (this filesystem will contain all manila shares)

Restrictions

  • Only IP share access control is allowed for NFS shares.

Configuration

enabled_share_backends = NexentaStor5

Create the new back end configuration section, in this case named NexentaStor5:

[NexentaStor5]

 share_backend_name = NexentaStor5
 driver_handles_share_servers = False
 nexenta_folder = manila
 share_driver = manila.share.drivers.nexenta.ns5.nexenta_nas.NexentaNasDriver
 nexenta_rest_addresses = 10.3.1.1,10.3.1.2
 nexenta_nas_host = 10.3.1.10
 nexenta_rest_port = 8443
 nexenta_pool = pool1
 nexenta_nfs = True
 nexenta_user = admin
 nexenta_password = secret_password
 nexenta_thin_provisioning = True

More information can be found at the Nexenta documentation webpage <https://nexenta.github.io>.

Driver options

The following table contains the configuration options specific to the share driver.

Description of NexentaStor5 configuration options

Configuration option = Default value

Description

[DEFAULT]

nexenta_rest_addresses = None

(List) One or more comma delimited IP addresses for management communication with NexentaStor appliance.

nexenta_rest_port = 8443

(Integer) Port to connect to Nexenta REST API server.

nexenta_use_https = True

(Boolean) Use HTTP secure protocol for NexentaStor management REST API connections.

nexenta_user = admin

(String) User name to connect to Nexenta SA.

nexenta_password = None

(String) Password to connect to Nexenta SA.

nexenta_pool = pool1

(String) Pool name on NexentaStor.

nexenta_nfs = True

(Boolean) Defines whether share over NFS is enabled.

nexenta_ssl_cert_verify = False

(Boolean) Defines whether the driver should check ssl cert.

nexenta_rest_connect_timeout = 30

(Float) Specifies the time limit (in seconds), within which the connection to NexentaStor management REST API server must be established.

nexenta_rest_read_timeout = 300

(Float) Specifies the time limit (in seconds), within which NexentaStor management REST API server must send a response.

nexenta_rest_backoff_factor = 1

(Float) Specifies the backoff factor to apply between connection attempts to NexentaStor management REST API server.

nexenta_rest_retry_count = 5

(Integer) Specifies the number of times to repeat NexentaStor management REST API call in case of connection errors and NexentaStor appliance EBUSY or ENOENT errors.

nexenta_nas_host = None

(Hostname) Data IP address of Nexenta storage appliance.

nexenta_mount_point_base = $state_path/mnt

(String) Base directory that contains NFS share mount points.

nexenta_share_name_prefix = share-

(String) Nexenta share name prefix.

nexenta_folder = folder

(String) Parent folder on NexentaStor.

nexenta_dataset_compression = on

(String) Compression value for new ZFS folders.

nexenta_thin_provisioning = True

(Boolean) If True shares will not be space guaranteed and overprovisioning will be enabled.

nexenta_dataset_record_size = 131072

(Integer) Specifies a suggested block size in for files in a file system. (bytes)