NexentaStor 4.x

Supported operations are:

  • Create NFS share.
  • Delete NFS share.
  • Extend NFS share
  • Allow NFS share access.
  • Only IP access type is supported for NFS.
  • RW and RO access is supported.
  • Deny NFS share access
  • Create snapshot
  • Delete snapshot
  • Create share from snapshot
  • Thin/thick provisioning

Requirements

  • NexentaStor Appliance pre-provisioned and licensed, etc
  • OpenStack Preprovisioned with Manila Plugin

Deployment

Create DevStack user:

root# useradd -s /bin/bash -d /opt/stack -m stack
root# echo "stack ALL=(ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/stack
root# passwd stack

Deploy DevStack environment:

stack$ git clone https://git.openstack.org/openstack-dev/devstack
stack$ cd devstack
stack$ cat local.conf <<'EOF'
[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
USE_SCREEN=True
RECLONE=True
enable_plugin manila https://github.com/openstack/manila
EOF

stack$ ./stack.sh

manila.conf driver section examples:

NStor4:

[DEFAULT]
enabled_share_backends = ns4_nfs
enabled_share_protocols = NFS

[ns4_nfs]
service_instance_user = manila
service_image_name = manila-service-image
path_to_private_key = /home/ubuntu/.ssh/id_rsa
path_to_public_key = /home/ubuntu/.ssh/id_rsa.pub
share_backend_name = <backend name to be used in share_types>
driver_handles_share_servers = False
share_driver = manila.share.drivers.nexenta.nexenta_nas.NexentaNasDriver
nexenta_host = <Nexenta appliance IP>
nexenta_volume = <volume name on appliance>
nexenta_nfs_share = <nfs_share_name>
nexenta_user = <NexentaStor username>
nexenta_password = <NexentaStor password>
nexenta_thin_provisioning = False/True

NStor5:

[DEFAULT]
enabled_share_backends = ns5_nfs
enabled_share_protocols = NFS

[ns5_nfs]
service_instance_user = manila
service_image_name = manila-service-image
path_to_private_key = /home/ubuntu/.ssh/id_rsa
path_to_public_key = /home/ubuntu/.ssh/id_rsa.pub
share_backend_name = <backend name to be used in share_types>
driver_handles_share_servers = False
share_driver = manila.share.drivers.nexenta.nexenta_nas.NexentaNasDriver
nexenta_host = <Nexenta appliance IP>
nexenta_rest_port = 8443
nexenta_volume = <pool name on appliance>
nexenta_share = <dataset name within the pool>
nexenta_user = <NexentaStor username>
nexenta_password = <NexentaStor password>
nexenta_thin_provisioning = False/True

List of all available options:

Parameter nameDefaultChoicesDescription
nexenta_hostIP address of Nexenta storage appliance.
nexenta_rest_port8457Port to connect to Nexenta REST API server.
nexenta_retry_count6Number of retries for unsuccessful API calls.
nexenta_rest_protocolauto[http, https, auto]Use http or https for REST connection .
nexenta_useradminUser name to connect to Nexenta SA.
nexenta_passwordPassword to connect to Nexenta SA.
nexenta_volumevolume1Volume name on NexentaStor4
nexenta_poolpool1Pool name on NexentaStor5.
nexenta_mount_point_base$state_path/mntBase directory that contains NFS share mount points.
nexenta_nfs_sharenfs_shareParent folder on NexentaStor that will contain all manila folders.
nexenta_dataset_compressionon[on, off, gzip, gzip-1, gzip-2, gzip-3, gzip-4, gzip-5, gzip-6, gzip-7, gzip-8,gzip-9, lzjb, zle, lz4]Compression value for new ZFS folders.
nexenta_dataset_dedupeoff[on, off, sha256, verify]Deduplication value for new ZFS folders.
nexenta_thin_provisioningTrueBooleanIf True shares will not be space guaranteed and overprovisioning will be enabled.’