diff --git a/doc/config-reference/source/figures/hsp_network.png b/doc/config-reference/source/figures/hsp_network.png new file mode 100644 index 0000000000..024ddd8c9e Binary files /dev/null and b/doc/config-reference/source/figures/hsp_network.png differ diff --git a/doc/config-reference/source/shared-file-systems/drivers.rst b/doc/config-reference/source/shared-file-systems/drivers.rst index 8575ab1258..9d796a8a40 100644 --- a/doc/config-reference/source/shared-file-systems/drivers.rst +++ b/doc/config-reference/source/shared-file-systems/drivers.rst @@ -18,6 +18,7 @@ Share drivers drivers/emc-vnx-driver.rst drivers/emc-unity-driver.rst drivers/hitachi-hnas-driver.rst + drivers/hitachi-hsp-driver.rst drivers/hpe-3par-share-driver.rst drivers/huawei-nas-driver.rst drivers/ibm-gpfs-driver.rst diff --git a/doc/config-reference/source/shared-file-systems/drivers/hitachi-hsp-driver.rst b/doc/config-reference/source/shared-file-systems/drivers/hitachi-hsp-driver.rst new file mode 100644 index 0000000000..4025f49b99 --- /dev/null +++ b/doc/config-reference/source/shared-file-systems/drivers/hitachi-hsp-driver.rst @@ -0,0 +1,212 @@ +=================================================================== +Hitachi Hyper Scale-Out Platform File Services Driver for OpenStack +=================================================================== + + +The Hitachi Hyper Scale-Out Platform File Services Driver for OpenStack +provides the management of file shares, supporting NFS shares with IP based +rules to control access. It has a layer that handles the complexity of the +protocol used to communicate to Hitachi Hyper Scale-Out Platform via a +RESTful API, formatting and sending requests to the backend. + + +Requirements +~~~~~~~~~~~~ + +- Hitachi Hyper Scale-Out Platform (HSP) version 1.1. + +- HSP user with ``file-system-full-access`` role. + +- Established network connection between the HSP interface and OpenStack + nodes. + +Supported shared filesystems and operations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The driver supports NFS shares. + +The following operations are supported: + +- Create a share. + +- Delete a share. + +- Extend a share. + +- Shrink a share. + +- Allow share access. + +- Deny share access. + +- Manage a share. + +- Unmanage a share. + +.. note:: + + - Only ``IP`` access type is supported + - Both ``RW`` and ``RO`` access levels supported + + +Known restrictions +~~~~~~~~~~~~~~~~~~ + +- The Hitachi HSP allows only 1024 virtual file systems per cluster. This + determines the limit of shares the driver can provide. + +- The Hitachi HSP file systems must have at least 128 GB. This means that + all shares created by Shared File Systems service should have 128 GB or + more. + + .. note:: + The driver has an internal filter function that accepts only requests for + shares size greater than or equal to 128 GB, otherwise the request will + fail or be redirected to another available storage backend. + + +Driver options +~~~~~~~~~~~~~~ + +The following table contains the configuration options specific to the share +driver. + +.. include:: ../../tables/manila-hds_hsp.rst + +Network approach +~~~~~~~~~~~~~~~~ + +.. note:: + + In the driver mode used by HSP Driver (DHSS = ``False``), the driver does + not handle network configuration, it is up to the administrator to + configure it. + +* Configure the network of the manila-share, Compute and Networking nodes to + reach HSP interface. For this, your provider network should be capable of + reaching HSP Cluster-Virtual-IP. These connections are mandatory so nova + instances are capable of accessing shares provided by the backend. + +* The following image represents a valid scenario: + +.. image:: ../../figures/hsp_network.png + :width: 60% + +.. note:: + + To HSP, the Virtual IP is the address through which clients access shares + and the Shared File Systems service sends commands to the management + interface. + This IP can be checked in HSP using its CLI: + + .. code-block:: console + + $ hspadm ip-address list + +Back end configuration +~~~~~~~~~~~~~~~~~~~~~~ + +#. Configure HSP driver according to your environment. This example + shows a valid HSP driver configuration: + + .. code-block:: ini + + [DEFAULT] + ... + enabled_share_backends = hsp1 + enabled_share_protocols = NFS + ... + + [hsp1] + share_backend_name = HITACHI1 + share_driver = manila.share.drivers.hitachi.hsp.driver.HitachiHSPDriver + driver_handles_share_servers = False + hitachi_hsp_host = 172.24.47.190 + hitachi_hsp_username = admin + hitachi_hsp_password = admin_password + +#. Configure HSP share type. + + .. note:: + + Shared File Systems service requires that the share type includes the + ``driver_handles_share_servers`` extra-spec. This ensures that the + share will be created on a backend that supports the requested + ``driver_handles_share_servers`` capability. Also, + ``snapshot_support`` extra-spec should be provided if its value + differs from the default value (``True``), as this driver version + that currently does not support snapshot operations. For this + driver both extra-specs must be set to ``False``. + + .. code-block:: console + + $ manila type-create --snapshot_support False hsp False + +#. Restart all Shared File Systems services (``manila-share``, + ``manila-scheduler`` and ``manila-api``). + + +Manage and unmanage shares +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Shared File Systems service has the ability to manage and unmanage shares. +If there is a share in the storage and it is not in OpenStack, you can manage +that share and use it as a Shared File Systems share. Previous access rules +are not imported by manila. The unmanage operation only unlinks the share from +OpenStack, preserving all data in the share. + +In order to manage a HSP share, it must adhere to the following rules: + +- File system and share name must not contain spaces. + +- Share name must not contain backslashes (`\\`). + +To **manage** a share use: + +.. code-block:: console + + $ manila manage [--name ] [--description ] + [--share_type ] [--driver_options [ + [ ...]]] + +Where: + ++--------------------+------------------------------------------------------+ +| **Parameter** | **Description** | ++====================+======================================================+ +| | Manila host, backend and share name. For example, | +| ``service_host`` | ``ubuntu@hitachi1#hsp1``. The available hosts can | +| | be listed with the command: ``manila pool-list`` | +| | (admin only). | ++--------------------+---------------------+--------------------------------+ +| ``protocol`` | Must be **NFS**, the only supported protocol in this | +| | driver version. | ++--------------------+------------------------------------------------------+ +| ``export_path`` | The Hitachi Hyper Scale-Out Platform export path of | +| | the share, for example: | +| | ``172.24.47.190:/some_share_name`` | ++--------------------+------------------------------------------------------+ + +| To **unmanage** a share use: + +.. code-block:: console + + $ manila unmanage + +Where: + ++------------------+---------------------------------------------------------+ +| **Parameter** | **Description** | ++==================+=========================================================+ +| ``share`` | ID or name of the share to be unmanaged. This list can | +| | be fetched with: ``manila list``. | ++------------------+---------------------+-----------------------------------+ + + +Additional notes +~~~~~~~~~~~~~~~~ + +- Shares are thin provisioned. It is reported to manila only the + real used space in HSP. +- Administrators should manage the tenant’s quota (``manila quota-update``) + to control the backend usage. diff --git a/doc/config-reference/source/tables/manila-hds_hsp.rst b/doc/config-reference/source/tables/manila-hds_hsp.rst new file mode 100644 index 0000000000..eeac9d82e0 --- /dev/null +++ b/doc/config-reference/source/tables/manila-hds_hsp.rst @@ -0,0 +1,30 @@ +.. + Warning: Do not edit this file. It is automatically generated from the + software project's code and your changes will be overwritten. + + The tool to generate this file lives in openstack-doc-tools repository. + + Please make any changes needed in the code, then run the + autogenerate-config-doc tool from the openstack-doc-tools repository, or + ask for help on the documentation mailing list, IRC channel or meeting. + +.. _manila-hds_hsp: + +.. list-table:: Description of HDS HSP Share Driver configuration options + :header-rows: 1 + :class: config-ref-table + + * - Configuration option = Default value + - Description + * - **[hsp1]** + - + * - ``hitachi_hsp_host`` = ``None`` + - (String) HSP management host for communication between Manila controller and HSP. + * - ``hitachi_hsp_username`` = ``None`` + - (String) HSP username to perform tasks such as create filesystems and shares. + * - ``hitachi_hsp_password`` = ``None`` + - (String) HSP password for the username provided. + * - ``share_backend_name`` = ``None`` + - (String) The backend name for a given driver implementation. + * - ``share_driver`` = ``manila.share.drivers.generic.GenericShareDriver`` + - (String) Driver to use for share creation. diff --git a/tools/autogenerate-config-flagmappings/manila.flagmappings b/tools/autogenerate-config-flagmappings/manila.flagmappings index d18f7b21bc..47866bbb5b 100644 --- a/tools/autogenerate-config-flagmappings/manila.flagmappings +++ b/tools/autogenerate-config-flagmappings/manila.flagmappings @@ -225,7 +225,6 @@ reserved_share_percentage common root_helper share rootwrap_config common rpc_backend disable -rpc_cast_timeout disable rpc_conn_pool_size disable rpc_poll_timeout disable rpc_response_timeout disable @@ -398,6 +397,11 @@ database/sqlite_synchronous disable database/use_db_reconnect disable hnas1/share_backend_name hds_hnas hnas1/share_driver hds_hnas +hsp1/hitachi_hsp_host hds_hsp +hsp1/hitachi_hsp_username hds_hsp +hsp1/hitachi_hsp_password hds_hsp +hsp1/share_backend_name hds_hsp +hsp1/share_driver hds_hsp keystone_authtoken/admin_password disable keystone_authtoken/admin_tenant_name disable keystone_authtoken/admin_token disable @@ -554,7 +558,6 @@ oslo_messaging_rabbit/socket_timeout disable oslo_messaging_rabbit/ssl disable oslo_messaging_rabbit/ssl_options disable oslo_messaging_rabbit/tcp_user_timeout disable -oslo_messaging_zmq/rpc_cast_timeout disable oslo_messaging_zmq/rpc_poll_timeout disable oslo_messaging_zmq/rpc_zmq_bind_address disable oslo_messaging_zmq/rpc_zmq_bind_port_retries disable diff --git a/tools/autogenerate-config-flagmappings/manila.headers b/tools/autogenerate-config-flagmappings/manila.headers index 3cf0a2c226..b3d0dd2443 100644 --- a/tools/autogenerate-config-flagmappings/manila.headers +++ b/tools/autogenerate-config-flagmappings/manila.headers @@ -13,6 +13,7 @@ glusterfs GlusterFS Share Drivers gpfs IBM GPFS Share Driver hdfs HDFS Share Driver hds_hnas HDS NAS Share Driver +hds_hsp HDS HSP Share Driver hpe3par HPE 3PAR Share Driver huawei Huawei Share Driver lvm LVM Share Driver diff --git a/tools/autogenerate-config-flagmappings/manila.overrides b/tools/autogenerate-config-flagmappings/manila.overrides index e27ea292b7..ced5b1893a 100644 --- a/tools/autogenerate-config-flagmappings/manila.overrides +++ b/tools/autogenerate-config-flagmappings/manila.overrides @@ -7,5 +7,9 @@ hds_hnas_file_system_name hnas1 hds_hnas_ip hnas1 hds_hnas_password hnas1 hds_hnas_ssh_private_key hnas1 -share_backend_name hnas1 -share_driver hnas1 +share_backend_name hnas1 hsp1 +share_driver hnas1 hsp1 +hitachi_hsp_host hsp1 +hitachi_hsp_username hsp1 +hitachi_hsp_password hsp1 +