Add NVMe-TCP Cinder driver support for Pure Storage

From OpenStack 2023.2 (Bobcat) the Pure Storage Cinder driver
supports NVMe-TCP as a dataplane protocol. This patch adds support
for this new driver type.

Change-Id: I3c0ad7652a03388ab2eafa173c644a55b0405cc6
This commit is contained in:
Simon Dodsley 2024-05-17 13:30:57 -04:00
parent 7112d5f117
commit 279ed4d65d
8 changed files with 37 additions and 0 deletions

View File

@ -800,6 +800,7 @@ enable_cinder_backend_quobyte: "no"
enable_cinder_backend_pure_iscsi: "no"
enable_cinder_backend_pure_fc: "no"
enable_cinder_backend_pure_roce: "no"
enable_cinder_backend_pure_nvme_tcp: "no"
enable_cloudkitty: "no"
enable_collectd: "no"
enable_cyborg: "no"

View File

@ -253,6 +253,8 @@ cinder_backends:
enabled: "{{ enable_cinder_backend_pure_fc | bool }}"
- name: "{{ cinder_backend_pure_roce_name }}"
enabled: "{{ enable_cinder_backend_pure_roce | bool }}"
- name: "{{ cinder_backend_pure_nvme_tcp_name }}"
enabled: "{{ enable_cinder_backend_pure_nvme_tcp | bool }}"
cinder_backend_ceph_name: "rbd-1"
cinder_backend_lvm_name: "lvm-1"
@ -264,6 +266,7 @@ cinder_backend_quobyte_name: "QuobyteHD"
cinder_backend_pure_iscsi_name: "Pure-FlashArray-iscsi"
cinder_backend_pure_fc_name: "Pure-FlashArray-fc"
cinder_backend_pure_roce_name: "Pure-FlashArray-roce"
cinder_backend_pure_nvme_tcp_name: "Pure-FlashArray-nvme-tcp"
cinder_ceph_backends:
- name: "{{ cinder_backend_ceph_name }}"

View File

@ -42,6 +42,7 @@
- not enable_cinder_backend_pure_iscsi | bool
- not enable_cinder_backend_pure_fc | bool
- not enable_cinder_backend_pure_roce | bool
- not enable_cinder_backend_pure_nvme_tcp | bool
- name: Checking LVM volume group exists for Cinder
become: true

View File

@ -229,6 +229,15 @@ san_ip = {{ pure_san_ip }}
pure_api_token = {{ pure_api_token }}
{% endif %}
{% if enable_cinder_backend_pure_nvme_tcp | bool %}
[{{ cinder_backend_pure_nvme_tcp_name }}]
volume_backend_name = {{ pure_nvme_tcp_backend }}
volume_driver = cinder.volume.drivers.pure.PureNVMEDriver
pure_nmve_transport = tcp
san_ip = {{ pure_san_ip }}
pure_api_token = {{ pure_api_token }}
{% endif %}
{% if enable_cinder_backend_pure_roce | bool %}
[{{ cinder_backend_pure_roce_name }}]
volume_backend_name = {{ pure_roce_backend }}

View File

@ -39,6 +39,20 @@ configure the ``FlashArray NVMe-RoCE`` Cinder driver in
The NVMe-RoCE driver is only supported from OpenStack Zed and later.
To use the ``Pure Storage FlashArray NVMe-TCP`` Cinder backend, enable and
configure the ``FlashArray NVMe-TCP`` Cinder driver in
``/etc/kolla/globals.yml``.
.. code-block:: yaml
enable_cinder_backend_pure_nvme_tcp: "yes"
.. end
.. note::
The NVMe-TCP driver is only supported from OpenStack 2023.2 (Bobcat) and later.
It is important to note that you cannot mix iSCSI and FC Pure Storage
FlashArray drivers in the same OpenStack cluster.

View File

@ -278,6 +278,9 @@ that appears in cinder.conf:
* - Pure Storage FlashArray for OpenStack
- cinder_backend_pure_roce_name
- Pure-FlashArray-roce
* - Pure Storage FlashArray for OpenStack
- cinder_backend_pure_nvme_tcp_name
- Pure-FlashArray-nvme-tcp
These are the names you use when
`configuring <https://docs.openstack.org/cinder/latest/admin/multi-backend.html#volume-type>`_

View File

@ -338,6 +338,7 @@ workaround_ansible_issue_8743: yes
#enable_cinder_backend_pure_iscsi: "no"
#enable_cinder_backend_pure_fc: "no"
#enable_cinder_backend_pure_roce: "no"
#enable_cinder_backend_pure_nvme_tcp: "no"
#enable_cloudkitty: "no"
#enable_collectd: "no"
#enable_cyborg: "no"

View File

@ -0,0 +1,5 @@
---
features:
- |
Added NVMe-TCP as a new transport for Pure Storage FlashArray
Cinder driver.