HPE Alletra MP B10000 Share Driver¶
The HPE Alletra MP B10000 Manila driver provides NFS file services to OpenStack using the HPE Alletra MP B10000 file service capabilities.
Supported Operations¶
The following operations are supported with HPE Alletra MP B10000:
Create/delete NFS shares
Allow/deny NFS share access
Extend shares
Manage existing shares
Unmanage shares
Share networks are not supported. Shares are created directly on the HPE Alletra MP B10000 array without the use of a share server or service VM. Network connectivity is set up outside of Manila.
Note
Most operations described in this document can also be performed through the OpenStack Horizon dashboard. This document focuses on CLI commands.
Share Types¶
When creating a share, the share type will be used to determine where and how the share will be created.
Manila requires that the share type includes the driver_handles_share_servers
extra-spec. This ensures that the share is created on a backend that supports
the requested driver_handles_share_servers (share networks) capability. For the
HPE Alletra MP B10000 driver, this option must be set to False.
Creating a Share Type¶
To create a share type for the HPE Alletra MP B10000 backend:
$ openstack share type create alletra_nfs False
$ openstack share type set alletra_nfs --extra-specs share_backend_name=hpealletra1
Share Type Extra Specs¶
The following driver-specific extra specs are supported by Alletra MP B10000:
- hpe_alletra_b10000:reduce
When the value is set to
true(orfalse), shares of this reduce type are created on the backend. The reduce setting is applied at share creation time and cannot be changed for existing shares.The
reduceparameter controls thecompressionanddedupcapabilities of the share:If reduce = true: compression = true, dedup = true
If reduce = false: compression = false, dedup = false
If the reduce key is not provided, its value defaults to
true.Alternatively, you can use the
compressionanddedupeparameters directly instead ofreduce, but you cannot specify bothreduceandcompression/dedupein the same share type.Example using reduce:
$ openstack share type set alletra_nfs --extra-specs hpe_alletra_b10000:reduce=true
Example using compression and dedupe as alternative:
$ openstack share type set alletra_nfs --extra-specs compression=true dedupe=true
- hpe_alletra_b10000:squash_option
The value can be set to
root_squash,all_squash, orno_root_squash. Any access rules added to the Alletra backend will be created with this squash option. If the share type is modified to change the squash option, the next share access rule update will use the new squash option value.If not provided, the squash option defaults to
root_squash.Example:
$ openstack share type set alletra_nfs --extra-specs hpe_alletra_b10000:squash_option=root_squash
The following common extra specs are also supported by Alletra MP B10000:
- compression
Controls whether compression is enabled on the share.
When specifying
compression, you must also specifydedupewith the same value (bothtrueor bothfalse). You cannot usecompressiontogether withhpe_alletra_b10000:reduce.Example:
$ openstack share type set alletra_nfs --extra-specs compression=true dedupe=true
- dedupe
Controls whether data deduplication is enabled on the share.
When specifying
dedupe, you must also specifycompressionwith the same value (bothtrueor bothfalse). You cannot usededupetogether withhpe_alletra_b10000:reduce.Example:
$ openstack share type set alletra_nfs --extra-specs dedupe=true compression=true
- thin_provisioning
Controls whether thin provisioning is enabled on the share.
This extra spec must be set to
trueor not specified at all. Setting it tofalseis not supported by this driver.Example:
$ openstack share type set alletra_nfs --extra-specs thin_provisioning=true
Note
Modifying share type extra specs after shares have been created is not recommended, as it will cause inconsistency between the share type definition and the actual backend share properties. Backend share characteristics like reduce, compression, and dedupe cannot be changed after creation.
Managing Share Access¶
A share must have access rules configured before it can be accessed by clients. IP-based access rules are required for NFS shares.
Note
When no Manila access rules are configured, the driver will block all IP addresses by setting a default access rule of 0.0.0.0 with read-only and root_squash permissions on the backend Alletra B10000 array. You must explicitly create access rules to allow client access.
To allow read-write access:
$ openstack share access create <share> ip <ip-address> --access-level rw
To allow read-only access:
$ openstack share access create <share> ip <ip-address> --access-level ro
To view current access rules:
$ openstack share access list <share>
To remove access:
$ openstack share access delete <share> <access-id>
Extending Shares¶
The driver supports extending shares to increase their size.
$ openstack share resize <share> <new-size>
Note
The share size shown in Manila includes filesystem metadata and other overhead. Client-usable space will be less than the displayed share size.
Managing Existing Shares¶
The driver supports bringing existing shares on the HPE Alletra array into Manila management using the manage operation.
Prerequisites for Manage Operation¶
Before managing an existing share, ensure the following requirements are met:
Share type compatibility: The backend share
reducevalue must match thehpe_alletra_b10000:reducevalue from the share type. If they don’t match, the manage operation will fail. Associate the correct share type. Default reduce value (if share type doesn’t have this key) istrue. Similarly, if the share type usescompressionanddedupeparameters instead ofreduce, those values must also match the backend share’s compression and deduplication settings.No existing access rules: The backend share must have either an empty access rules list or only the default 0.0.0.0 access rule with read-only and root_squash. If other access rules exist, clear them from the backend share before managing:
$ setsharesetting -remove <ipaddr_list> <sharesetting_name>
Filesystem size alignment: The filesystem size of the backend fileshare must be a multiple of 1024 MiB (1 GiB). If not, the manage operation will fail. Manila logs will indicate how much MiB to expand the backend filesystem.
To expand size by a specific amount (e.g., 500 MiB):
$ setfilesystem -size 500 <filesystem_name>
Managing a Share¶
To manage an existing share:
$ openstack share adopt <host>@<backend>#<pool> <protocol> <export-path> --share-type <share-type> --name <share-name>
Unmanaging Shares¶
When a share is unmanaged, it is removed from Manila management but remains intact on the backend array.
$ openstack share abandon <share>
Ensure Shares Operation¶
The driver supports the ensure_shares operation, which validates that shares
exist on the backend and updates their status in Manila. Shares found on
the backend are updated with the latest export locations. Shares not found
on the backend are marked with error state.
The ensure_shares operation for the driver is executed only in case of service restarts after configuration changes in /etc/manila/manila.conf.
If the backend fileshare export path changes due to file port IP change or other reasons, the administrator must manually trigger the ensure shares command in OpenStack to update the latest export paths.
$ openstack share service ensure shares <host>
Driver Capabilities¶
The HPE Alletra MP B10000 driver reports the following capabilities:
Storage protocol: NFS
driver_handles_share_servers: False
Share extend support
Manage/unmanage support
Restrictions and Limitations¶
The HPE Alletra MP B10000 driver has the following restrictions:
Only NFS protocol is supported; CIFS/SMB is not supported
Share networks are not supported (driver_handles_share_servers must be False)
Share shrink is not currently supported
Share migration is not supported
Share replication is not supported
Share groups and consistency groups are not supported
Security services (LDAP, Active Directory, Kerberos) are not supported
Only IP-based access rules are supported for NFS shares
Troubleshooting¶
Common Issues¶
- Share creation fails
Verify the HPE Alletra MP B10000 file service is enabled
Check connectivity to the WSAPI endpoint
Ensure the configured user has sufficient permissions
- Access rules not working
Verify network connectivity between client and array’s file ports
Check that the IP address in the access rule is correct
Ensure the share type’s squash_option is appropriate for your use case
- Manage operation fails
Clear all access rules from the backend share
Verify filesystem size is a multiple of 1 GiB
Ensure share type’s reduce value matches the backend share
Checking Driver Status¶
To verify the driver is running correctly:
$ openstack share service list
To check the backend pool status:
$ openstack share pool list --detail
The manila.share.drivers.hpe.alletra_mp_b10000.hpe_alletra_driver Module¶
- class HPEAlletraMPB10000ShareDriver(*args, **kwargs)
Bases:
ShareDriverDriver for the HPE Alletra MP B10000 File
- MINIMUM_DEVICE_VERSION = '10.5.0'
- VERSION = '1.0.0'
- create_share(context, share, share_server=None)
Create a new manila managed share on backend.
- delete_share(context, share, share_server=None)
Remove a share from manila and backend
- do_setup(context)
Driver initialization
- ensure_shares(context, shares)
Ensure shares exist on backend and return their current state.
Only returns updates for shares that need status changes. Shares that are already available on the backend are not included in the response, preserving their current state.
- extend_share(share, new_size, share_server=None)
Expand share size
- get_backend_info(context)
Return backend configuration info for ensure_shares validation.
- get_network_allocations_number()
Returns number of network allocations for creating VIFs.
Drivers that use Nova for share servers should return zero (0) here same as Generic driver does. Because Nova will handle network resources allocation. Drivers that handle networking itself should calculate it according to their own requirements. It can have 1+ network interfaces.
- manage_existing(share, driver_options)
Bring an existing backend share into manila management
- unmanage(share)
Remove from manila management without deleting backend share
- update_access(context, share, access_rules, add_rules, delete_rules, update_rules, share_server=None)
Modify share access rules
- class HPEAlletraMPB10000ShareDriverHelper(rest_client, **kwargs)
Bases:
objectDriver helper for the HPE Alletra MP B10000 File
- class HPEAlletraPrivateStorageHandler(private_storage)
Bases:
object- delete_share_by_id(fe_share_id)
- get_share_by_id(fe_share_id)
- update_share_by_id(fe_share_id, be_share_id, be_share_name, be_filesystem_name, be_sharesetting_name)
Update private storage with backend share details.