Add support for Pure Storage FlashArray backend to Cinder

Add an enable_cinder_backend_pure_iscsi and
enable_cinder_backend_pure_fc options to etc/kolla/globals.yml
to enable use of the FlashArray backend.
Update the documentation to include a section on configuring
Cinder with the FlashArray.

Implements: blueprint pure-cinder-driver
Change-Id: I464733f1322237321ed1ffff8636cf30bd1cbb38
This commit is contained in:
Simon Dodsley 2022-05-11 12:29:17 -04:00
parent 555cd39f1a
commit f088b799a5
8 changed files with 89 additions and 0 deletions

View File

@ -614,6 +614,8 @@ enable_cinder_backend_iscsi: "{{ enable_cinder_backend_lvm | bool }}"
enable_cinder_backend_lvm: "no"
enable_cinder_backend_nfs: "no"
enable_cinder_backend_quobyte: "no"
enable_cinder_backend_pure_iscsi: "no"
enable_cinder_backend_pure_fc: "no"
enable_cloudkitty: "no"
enable_collectd: "no"
enable_cyborg: "no"

View File

@ -226,6 +226,10 @@ cinder_backends:
enabled: "{{ cinder_backend_vmware_vstorage_object | bool }}"
- name: "QuobyteHD"
enabled: "{{ enable_cinder_backend_quobyte | bool }}"
- name: "Pure-FlashArray-iscsi"
enabled: "{{ enable_cinder_backend_pure_iscsi | bool }}"
- name: "Pure-FlashArray-fc"
enabled: "{{ enable_cinder_backend_pure_fc | bool }}"
skip_cinder_backend_check: False
@ -259,6 +263,14 @@ quobyte_storage_host:
quobyte_storage_volume:
################################
# Pure FlashArray Storage Driver
################################
pure_iscsi_backend: "pure_iscsi_backend"
pure_fc_backend: "pure_fc_backend"
pure_api_token:
pure_san_ip:
####################
# Kolla
####################

View File

@ -37,6 +37,8 @@
- not cinder_backend_vmwarevc_vmdk | bool
- not cinder_backend_vmware_vstorage_object | bool
- not enable_cinder_backend_quobyte | bool
- not enable_cinder_backend_pure_iscsi | bool
- not enable_cinder_backend_pure_fc | bool
- name: Checking LVM volume group exists for Cinder
become: true

View File

@ -196,6 +196,22 @@ volume_driver = cinder.volume.drivers.quobyte.QuobyteDriver
quobyte_volume_url = quobyte://{{ quobyte_storage_host }}/{{ quobyte_storage_volume }}
{% endif %}
{% if enable_cinder_backend_pure_iscsi | bool %}
[Pure-FlashArray-iscsi]
volume_backend_name = {{ pure_iscsi_backend }}
volume_driver = cinder.volume.drivers.pure.PureISCSIDriver
san_ip = {{ pure_san_ip }}
pure_api_token = {{ pure_api_token }}
{% endif %}
{% if enable_cinder_backend_pure_fc | bool %}
[Pure-FlashArray-fc]
volume_backend_name = {{ pure_fc_backend }}
volume_driver = cinder.volume.drivers.pure.PureFCDriver
san_ip = {{ pure_san_ip }}
pure_api_token = {{ pure_api_token }}
{% endif %}
[privsep_entrypoint]
helper_command=sudo cinder-rootwrap /etc/cinder/rootwrap.conf privsep-helper --config-file /etc/cinder/cinder.conf

View File

@ -0,0 +1,49 @@
.. cinder-guide-pure:
=====================================
Pure Storage FlashArray for OpenStack
=====================================
Pure Storage FlashArray Cinder Driver
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To use the ``Pure Storage FlashArray iSCSI`` Cinder backend, enable and
configure the ``FlashArray iSCSI`` Cinder driver in ``/etc/kolla/globals.yml``.
.. code-block:: yaml
enable_cinder_backend_pure_iscsi: "yes"
.. end
To use the ``Pure Storage FlashArray FC`` Cinder backend, enable and
configure the ``FlashArray FC`` Cinder driver in ``/etc/kolla/globals.yml``.
.. code-block:: yaml
enable_cinder_backend_pure_fc: "yes"
.. end
It is important to note that you cannot mix iSCSI and FC Pure Storage
FlashArray drivers in the same OpenStack cluster.
Also set the values for the following parameters in ``/etc/kolla/globals.yml``:
- ``pure_api_token``
- ``pure_san_ip``
For details on how to use these parameters, refer to the
`Pure Storage Cinder Reference Guide<https://docs.openstack.org/cinder/latest/configuration/block-storage/drivers/pure-storage-driver.html>__`.
There are numerous other parameters that can be set for this driver and
these are detailed in the above link.
If you wish to use any of these parameters then refer to the
`Service Configuration<https://docs.openstack.org/kolla-ansible/latest/admin/advanced-configuration.html#openstack-service-configuration-in-kolla>__`
documentation for instructions using the INI update strategy.
The use of this backend requires that the ``purestorage`` SDK package is
installed in the ``cinder-volume`` 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.

View File

@ -12,6 +12,7 @@ supported by kolla.
cinder-guide
cinder-guide-hnas
cinder-guide-quobyte
cinder-guide-pure
manila-guide
manila-hnas-guide
swift-guide

View File

@ -294,6 +294,8 @@
#enable_cinder_backend_lvm: "no"
#enable_cinder_backend_nfs: "no"
#enable_cinder_backend_quobyte: "no"
#enable_cinder_backend_pure_iscsi: "no"
#enable_cinder_backend_pure_fc: "no"
#enable_cloudkitty: "no"
#enable_collectd: "no"
#enable_cyborg: "no"

View File

@ -0,0 +1,5 @@
---
features:
- |
Allow cinder-volume to be configured to use Pure Storage FlashArray
with either the iSCSI or FC driver.