From aed18272694d662757877f4359213259a6871432 Mon Sep 17 00:00:00 2001 From: Simon Dodsley Date: Thu, 13 Apr 2023 13:17:56 -0400 Subject: Add Pure Storage FlashBlade as Manila backend Follow existing patterns to add support for the Pure Storage FlashBlade NFS Manila driver. Change-Id: I5ed40748439111e5986d6bf44ecb6b9fe7478dc9 --- doc/source/reference/storage/index.rst | 1 + doc/source/reference/storage/manila-pure-guide.rst | 286 +++++++++++++++++++++ 2 files changed, 287 insertions(+) create mode 100644 doc/source/reference/storage/manila-pure-guide.rst (limited to 'doc') diff --git a/doc/source/reference/storage/index.rst b/doc/source/reference/storage/index.rst index d363954a1..42b35f9e3 100644 --- a/doc/source/reference/storage/index.rst +++ b/doc/source/reference/storage/index.rst @@ -15,3 +15,4 @@ supported by kolla. cinder-guide-lightbits manila-guide manila-hnas-guide + manila-pure-guide diff --git a/doc/source/reference/storage/manila-pure-guide.rst b/doc/source/reference/storage/manila-pure-guide.rst new file mode 100644 index 000000000..46c1f2fdf --- /dev/null +++ b/doc/source/reference/storage/manila-pure-guide.rst @@ -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: "" + +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 \ + --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 --gateway \ + --subnet_range 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 + +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 + flashblade_data_vip = + flashblade_api = + + [fb2] + share_backend_name = FB2 + share_driver = manila.share.drivers.purestorage.flashblade.FlashBladeShareDriver + driver_handles_share_servers = False + flashblade_mgmt_vip = + flashblade_data_vip = + flashblade_api = + +For more information about how to manage shares, see the +:manila-doc:`Manage shares `. + +For details on how to use the Pure Storage FlashBlade, refer to the +`Pure Storage Manila Reference Guide `_. + +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 `_ +particularly the ``Package Customisation`` and ``Custom Repos`` sections. -- cgit v1.2.3