Merge "Add Pure Storage FlashBlade as Manila backend"
This commit is contained in:
@@ -890,6 +890,7 @@ enable_manila_backend_hnas: "no"
|
||||
enable_manila_backend_cephfs_native: "no"
|
||||
enable_manila_backend_cephfs_nfs: "no"
|
||||
enable_manila_backend_glusterfs_nfs: "no"
|
||||
enable_manila_backend_flashblade: "no"
|
||||
enable_mariabackup: "no"
|
||||
enable_masakari: "no"
|
||||
enable_masakari_instancemonitor: "{{ enable_masakari | bool }}"
|
||||
|
||||
@@ -237,6 +237,12 @@ manila_backends:
|
||||
enabled: "{{ enable_manila_backend_glusterfs_nfs | bool }}"
|
||||
protocols:
|
||||
- "NFS"
|
||||
- name: "fb1"
|
||||
driver: "flashblade"
|
||||
enabled: "{{ enable_manila_backend_flashblade | bool }}"
|
||||
protocols:
|
||||
- "NFS"
|
||||
|
||||
|
||||
manila_ceph_backends:
|
||||
- name: "cephfsnative1"
|
||||
|
||||
@@ -92,6 +92,16 @@ share_backend_name = GENERIC
|
||||
policy_file = {{ manila_policy_file }}
|
||||
{% endif %}
|
||||
|
||||
{% if enable_manila_backend_flashblade | bool %}
|
||||
[fb1]
|
||||
share_backend_name = FB1
|
||||
share_driver = manila.share.drivers.purestorage.flashblade.FlashBladeShareDriver
|
||||
driver_handles_share_servers = False
|
||||
flashblade_mgmt_vip = {{ manila_flashblade_mgmt_vip }}
|
||||
flashblade_data_vip = {{ manila_flashblade_data_vip }}
|
||||
flashblade_api = {{ manila_flashblade_api }}
|
||||
{% endif %}
|
||||
|
||||
{% if enable_manila_backend_hnas | bool %}
|
||||
[hnas1]
|
||||
share_backend_name = HNAS1
|
||||
|
||||
@@ -15,3 +15,4 @@ supported by kolla.
|
||||
cinder-guide-lightbits
|
||||
manila-guide
|
||||
manila-hnas-guide
|
||||
manila-pure-guide
|
||||
|
||||
286
doc/source/reference/storage/manila-pure-guide.rst
Normal file
286
doc/source/reference/storage/manila-pure-guide.rst
Normal file
@@ -0,0 +1,286 @@
|
||||
.. _manila-pure-guide:
|
||||
|
||||
==========================================================
|
||||
Pure Storage FlashBlade File Services Driver for OpenStack
|
||||
==========================================================
|
||||
|
||||
Overview
|
||||
~~~~~~~~
|
||||
The Pure Storage FlashBlade File Services Driver for OpenStack
|
||||
provides NFS Shared File Systems to OpenStack.
|
||||
|
||||
|
||||
Requirements
|
||||
------------
|
||||
- Pure Storage FlashBlade
|
||||
|
||||
- Purity//FB v2.3.0 or higher
|
||||
|
||||
|
||||
Supported shared file systems and operations
|
||||
--------------------------------------------
|
||||
The driver supports NFS shares.
|
||||
|
||||
The following operations are supported:
|
||||
|
||||
- Create a share.
|
||||
|
||||
- Delete a share.
|
||||
|
||||
- Allow share access.
|
||||
|
||||
- Deny share access.
|
||||
|
||||
- Create a snapshot.
|
||||
|
||||
- Delete a snapshot.
|
||||
|
||||
- Revert from snapshot.
|
||||
|
||||
- Extend a share.
|
||||
|
||||
- Shrink a share.
|
||||
|
||||
|
||||
Preparation and Deployment
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. important ::
|
||||
|
||||
It is mandatory that FlashBlade management interface is reachable from the
|
||||
Shared File System node through the admin network, while the selected
|
||||
EVS data interface is reachable from OpenStack Cloud, such as through
|
||||
Neutron flat networking.
|
||||
|
||||
|
||||
Configuration on Kolla deployment
|
||||
---------------------------------
|
||||
|
||||
Enable Shared File Systems service and FlashBlade driver in
|
||||
``/etc/kolla/globals.yml``
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
enable_manila: "yes"
|
||||
enable_manila_backend_flashblade: "yes"
|
||||
|
||||
Configure the OpenStack networking so it can reach FlashBlade Management
|
||||
interface and FlashBlade Data interface.
|
||||
|
||||
To configure two physical networks, physnet1 and physnet2, with
|
||||
ports eth1 and eth2 associated respectively:
|
||||
|
||||
In ``/etc/kolla/globals.yml`` set:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
neutron_bridge_name: "br-ex,br-ex2"
|
||||
neutron_external_interface: "eth1,eth2"
|
||||
|
||||
.. note::
|
||||
|
||||
``eth1`` is used to Neutron external interface and ``eth2`` is
|
||||
used to FlashBlade data interface.
|
||||
|
||||
FlashBlade back end configuration
|
||||
---------------------------------
|
||||
|
||||
In ``/etc/kolla/globals.yml`` uncomment and set:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
manila_flashblade_mgmt_vip: "172.24.44.15"
|
||||
manila_flashblade_data_vip: "172.24.45.22"
|
||||
manila_flashblade_api: "<API token for admin-privilaged user>"
|
||||
|
||||
Configuration on FlashBlade
|
||||
---------------------------
|
||||
|
||||
Create the FlashBlade data network in Kolla OpenStack:
|
||||
|
||||
List the available tenants:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack project list
|
||||
|
||||
Create a network to the given tenant (service), providing the tenant ID,
|
||||
a name for the network, the name of the physical network over which the
|
||||
virtual network is implemented, and the type of the physical mechanism by
|
||||
which the virtual network is implemented:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack network create --project <SERVICE_ID> \
|
||||
--provider-physical-network physnet2 \
|
||||
--provider-network-type flat \
|
||||
flashblade_network
|
||||
|
||||
*Optional* - List available networks:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack network list
|
||||
|
||||
Create a subnet to the same tenant (service), the gateway IP of this subnet,
|
||||
a name for the subnet, the network ID created before, and the CIDR of
|
||||
subnet:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack subnet create --project <SERVICE_ID> --gateway <GATEWAY> \
|
||||
--subnet_range <SUBNET_CIDR> flashblade_subnet
|
||||
|
||||
*Optional* - List available subnets:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack subnet list
|
||||
|
||||
Add the subnet interface to a router, providing the router ID and subnet
|
||||
ID created before:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack router add submet <ROUTER_ID> <SUBNET_ID>
|
||||
|
||||
Create a share
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
Create a default share type before running manila-share service:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack share type create default_share_flashblade False
|
||||
|
||||
+--------------------------------------+--------------------------+------------+------------+--------------------------------------+-------------------------+
|
||||
| ID | Name | visibility | is_default | required_extra_specs | optional_extra_specs |
|
||||
+--------------------------------------+--------------------------+------------+------------+--------------------------------------+-------------------------+
|
||||
| 3e54c8a2-1e50-455e-89a0-96bb52876c35 | default_share_flashblade | public | - | driver_handles_share_servers : False | snapshot_support : True |
|
||||
+--------------------------------------+--------------------------+------------+------------+--------------------------------------+-------------------------+
|
||||
|
||||
Create a NFS share using the FlashBlade back end:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack share create --name <myflashbladeshare \
|
||||
--description "My Manila share" \
|
||||
--share-type default_share_flashblade \
|
||||
NFS 1
|
||||
|
||||
Verify Operation:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack share list
|
||||
|
||||
+--------------------------------------+-------------------+------+-------------+-----------+-----------+--------------------------+-----------------+-------------------+
|
||||
| ID | Name | Size | Share Proto | Status | Is Public | Share Type Name | Host | Availability Zone |
|
||||
+--------------------------------------+-------------------+------+-------------+-----------+-----------+--------------------------+-----------------+-------------------+
|
||||
| 721c0a6d-eea6-41af-8c10-72cd98985203 | myflashbladeshare | 1 | NFS | available | False | default_share_flashblade | control@fb1#FB1 | nova |
|
||||
+--------------------------------------+-------------------+------+-------------+-----------+-----------+--------------------------+-----------------+-------------------+
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack share show myflashbladeshare
|
||||
|
||||
+-----------------------------+-----------------------------------------------------------------+
|
||||
| Property | Value |
|
||||
+-----------------------------+-----------------------------------------------------------------+
|
||||
| status | available |
|
||||
| share_type_name | default_share_flashblade |
|
||||
| description | My Manila share |
|
||||
| availability_zone | nova |
|
||||
| share_network_id | None |
|
||||
| export_locations | |
|
||||
| | path = 172.24.53.1:/shares/45ed6670-688b-4cf0-bfe7-34956648fb84 |
|
||||
| | preferred = False |
|
||||
| | is_admin_only = False |
|
||||
| | id = e81e716f-f1bd-47b2-8a56-2c2f9e33a98e |
|
||||
| | share_instance_id = 45ed6670-688b-4cf0-bfe7-34956648fb84 |
|
||||
| share_server_id | None |
|
||||
| host | control@fb1#FB1 |
|
||||
| access_rules_status | active |
|
||||
| snapshot_id | None |
|
||||
| is_public | False |
|
||||
| task_state | None |
|
||||
| snapshot_support | True |
|
||||
| id | 721c0a6d-eea6-41af-8c10-72cd98985203 |
|
||||
| size | 1 |
|
||||
| user_id | ba7f6d543713488786b4b8cb093e7873 |
|
||||
| name | myflashbladeshare |
|
||||
| share_type | 3e54c8a2-1e50-455e-89a0-96bb52876c35 |
|
||||
| has_replicas | False |
|
||||
| replication_type | None |
|
||||
| created_at | 2016-10-14T14:50:47.000000 |
|
||||
| share_proto | NFS |
|
||||
| consistency_group_id | None |
|
||||
| source_cgsnapshot_member_id | None |
|
||||
| project_id | c3810d8bcc3346d0bdc8100b09abbbf1 |
|
||||
| metadata | {} |
|
||||
+-----------------------------+-----------------------------------------------------------------+
|
||||
|
||||
.. _flashblade_configure_multiple_back_ends:
|
||||
|
||||
Configure multiple back ends
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
An administrator can configure an instance of Manila to provision shares from
|
||||
one or more back ends. Each back end leverages an instance of a vendor-specific
|
||||
implementation of the Manila driver API.
|
||||
|
||||
The name of the back end is declared as a configuration option
|
||||
share_backend_name within a particular configuration stanza that contains the
|
||||
related configuration options for that back end.
|
||||
|
||||
So, in the case of an multiple back ends deployment, it is necessary to change
|
||||
the default share backends before deployment.
|
||||
|
||||
Modify the file ``/etc/kolla/config/manila.conf`` and add the contents:
|
||||
|
||||
.. path /etc/kolla/config/manila.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
enabled_share_backends = generic,fb1,fb2
|
||||
|
||||
Modify the file ``/etc/kolla/config/manila-share.conf`` and add the contents:
|
||||
|
||||
.. path /etc/kolla/config/manila-share.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[generic]
|
||||
share_driver = manila.share.drivers.generic.GenericShareDriver
|
||||
interface_driver = manila.network.linux.interface.OVSInterfaceDriver
|
||||
driver_handles_share_servers = True
|
||||
service_instance_password = manila
|
||||
service_instance_user = manila
|
||||
service_image_name = manila-service-image
|
||||
share_backend_name = GENERIC
|
||||
|
||||
[fb1]
|
||||
share_backend_name = FB1
|
||||
share_driver = manila.share.drivers.purestorage.flashblade.FlashBladeShareDriver
|
||||
driver_handles_share_servers = False
|
||||
flashblade_mgmt_vip = <fb1_mgmt_ip>
|
||||
flashblade_data_vip = <fb1_data_ip>
|
||||
flashblade_api = <FB1 API token>
|
||||
|
||||
[fb2]
|
||||
share_backend_name = FB2
|
||||
share_driver = manila.share.drivers.purestorage.flashblade.FlashBladeShareDriver
|
||||
driver_handles_share_servers = False
|
||||
flashblade_mgmt_vip = <fb2_mgmt_ip>
|
||||
flashblade_data_vip = <fb2_data_ip>
|
||||
flashblade_api = <FB2 API token>
|
||||
|
||||
For more information about how to manage shares, see the
|
||||
:manila-doc:`Manage shares <user/create-and-manage-shares.html>`.
|
||||
|
||||
For details on how to use the Pure Storage FlashBlade, refer to the
|
||||
`Pure Storage Manila Reference Guide <https://docs.openstack.org/manila/latest/configuration/shared-file-systems/drivers/purestorage-flashblade-driver.html>`_.
|
||||
|
||||
The use of this backend requires that the ``purity_fb`` SDK package is
|
||||
installed in the ``manila-share`` container. To do this follow the steps
|
||||
outlined in the `kolla image building guide <https://docs.openstack.org/kolla/latest/admin/image-building.html>`_
|
||||
particularly the ``Package Customisation`` and ``Custom Repos`` sections.
|
||||
@@ -395,6 +395,7 @@ workaround_ansible_issue_8743: yes
|
||||
#enable_manila_backend_cephfs_native: "no"
|
||||
#enable_manila_backend_cephfs_nfs: "no"
|
||||
#enable_manila_backend_glusterfs_nfs: "no"
|
||||
#enable_manila_backend_flashblade: "no"
|
||||
#enable_mariabackup: "no"
|
||||
#enable_masakari: "no"
|
||||
#enable_mistral: "no"
|
||||
@@ -688,6 +689,11 @@ workaround_ansible_issue_8743: yes
|
||||
# The default option of nfs server type is 'Gluster'
|
||||
#manila_glusterfs_nfs_server_type:
|
||||
|
||||
# Pure Storage FlashBlade configuration
|
||||
#manila_flashblade_mgmt_vip:
|
||||
#manila_flashblade_data_vip:
|
||||
#manila_flashblade_api:
|
||||
#
|
||||
# Volume layout Options (required)
|
||||
# If the glusterfs server requires remote ssh, then you need to fill
|
||||
# in 'manila_glusterfs_servers', ssh user 'manila_glusterfs_ssh_user', and ssh password
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
[Pure Storage - FlashBlade] Add support for Pure Storage FlashBlade
|
||||
Manila NFS driver.
|
||||
Reference in New Issue
Block a user