Merge "Remove Nimble Storage Driver"
This commit is contained in:
commit
83267c72ae
@ -133,7 +133,6 @@ from cinder.volume.drivers.netapp import options as \
|
|||||||
from cinder.volume.drivers.nexenta import options as \
|
from cinder.volume.drivers.nexenta import options as \
|
||||||
cinder_volume_drivers_nexenta_options
|
cinder_volume_drivers_nexenta_options
|
||||||
from cinder.volume.drivers import nfs as cinder_volume_drivers_nfs
|
from cinder.volume.drivers import nfs as cinder_volume_drivers_nfs
|
||||||
from cinder.volume.drivers import nimble as cinder_volume_drivers_nimble
|
|
||||||
from cinder.volume.drivers import pure as cinder_volume_drivers_pure
|
from cinder.volume.drivers import pure as cinder_volume_drivers_pure
|
||||||
from cinder.volume.drivers import qnap as cinder_volume_drivers_qnap
|
from cinder.volume.drivers import qnap as cinder_volume_drivers_qnap
|
||||||
from cinder.volume.drivers import quobyte as cinder_volume_drivers_quobyte
|
from cinder.volume.drivers import quobyte as cinder_volume_drivers_quobyte
|
||||||
@ -338,7 +337,6 @@ def list_opts():
|
|||||||
cinder_volume_drivers_nexenta_options.NEXENTA_RRMGR_OPTS,
|
cinder_volume_drivers_nexenta_options.NEXENTA_RRMGR_OPTS,
|
||||||
cinder_volume_drivers_nexenta_options.NEXENTA_EDGE_OPTS,
|
cinder_volume_drivers_nexenta_options.NEXENTA_EDGE_OPTS,
|
||||||
cinder_volume_drivers_nfs.nfs_opts,
|
cinder_volume_drivers_nfs.nfs_opts,
|
||||||
cinder_volume_drivers_nimble.nimble_opts,
|
|
||||||
cinder_volume_drivers_pure.PURE_OPTS,
|
cinder_volume_drivers_pure.PURE_OPTS,
|
||||||
cinder_volume_drivers_qnap.qnap_opts,
|
cinder_volume_drivers_qnap.qnap_opts,
|
||||||
cinder_volume_drivers_quobyte.volume_opts,
|
cinder_volume_drivers_quobyte.volume_opts,
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,252 +0,0 @@
|
|||||||
============================
|
|
||||||
Nimble Storage volume driver
|
|
||||||
============================
|
|
||||||
|
|
||||||
Nimble Storage fully integrates with the OpenStack platform through
|
|
||||||
the Nimble Cinder driver, allowing a host to configure and manage Nimble
|
|
||||||
Storage array features through Block Storage interfaces.
|
|
||||||
|
|
||||||
Support for iSCSI storage protocol is available with NimbleISCSIDriver
|
|
||||||
Volume Driver class and Fibre Channel with NimbleFCDriver.
|
|
||||||
|
|
||||||
Support for the Liberty release and above is available from Nimble OS
|
|
||||||
2.3.8 or later.
|
|
||||||
|
|
||||||
Support for the Ocata release and above is available from Nimble OS 3.6 or
|
|
||||||
later.
|
|
||||||
|
|
||||||
Nimble Storage Cinder driver does not support port binding with multiple
|
|
||||||
interfaces on the same subnet due to existing limitation in os-brick. This
|
|
||||||
is partially referenced in the bug
|
|
||||||
https://bugs.launchpad.net/os-brick/+bug/1722432 but does not resolve
|
|
||||||
for multiple software iscsi ifaces.
|
|
||||||
|
|
||||||
Supported operations
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
* Create, delete, clone, attach, and detach volumes
|
|
||||||
* Create and delete volume snapshots
|
|
||||||
* Create a volume from a snapshot
|
|
||||||
* Copy an image to a volume
|
|
||||||
* Copy a volume to an image
|
|
||||||
* Extend a volume
|
|
||||||
* Get volume statistics
|
|
||||||
* Manage and unmanage a volume
|
|
||||||
* Enable encryption and default performance policy for a volume-type
|
|
||||||
extra-specs
|
|
||||||
* Force backup of an in-use volume.
|
|
||||||
|
|
||||||
Nimble Storage driver configuration
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Update the file ``/etc/cinder/cinder.conf`` with the given configuration.
|
|
||||||
|
|
||||||
In case of a basic (single back-end) configuration, add the parameters
|
|
||||||
within the ``[default]`` section as follows.
|
|
||||||
|
|
||||||
.. code-block:: ini
|
|
||||||
|
|
||||||
[default]
|
|
||||||
san_ip = NIMBLE_MGMT_IP
|
|
||||||
san_login = NIMBLE_USER
|
|
||||||
san_password = NIMBLE_PASSWORD
|
|
||||||
use_multipath_for_image_xfer = True
|
|
||||||
volume_driver = NIMBLE_VOLUME_DRIVER
|
|
||||||
|
|
||||||
In case of multiple back-end configuration, for example, configuration
|
|
||||||
which supports multiple Nimble Storage arrays or a single Nimble Storage
|
|
||||||
array with arrays from other vendors, use the following parameters.
|
|
||||||
|
|
||||||
.. code-block:: ini
|
|
||||||
|
|
||||||
[default]
|
|
||||||
enabled_backends = Nimble-Cinder
|
|
||||||
|
|
||||||
[Nimble-Cinder]
|
|
||||||
san_ip = NIMBLE_MGMT_IP
|
|
||||||
san_login = NIMBLE_USER
|
|
||||||
san_password = NIMBLE_PASSWORD
|
|
||||||
use_multipath_for_image_xfer = True
|
|
||||||
volume_driver = NIMBLE_VOLUME_DRIVER
|
|
||||||
volume_backend_name = NIMBLE_BACKEND_NAME
|
|
||||||
|
|
||||||
In case of multiple back-end configuration, Nimble Storage volume type
|
|
||||||
is created and associated with a back-end name as follows.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Single back-end configuration users do not need to create the volume type.
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack volume type create NIMBLE_VOLUME_TYPE
|
|
||||||
$ openstack volume type set --property volume_backend_name=NIMBLE_BACKEND_NAME NIMBLE_VOLUME_TYPE
|
|
||||||
|
|
||||||
This section explains the variables used above:
|
|
||||||
|
|
||||||
NIMBLE_MGMT_IP
|
|
||||||
Management IP address of Nimble Storage array/group.
|
|
||||||
|
|
||||||
NIMBLE_USER
|
|
||||||
Nimble Storage account login with minimum ``power user`` (admin) privilege
|
|
||||||
if RBAC is used.
|
|
||||||
|
|
||||||
NIMBLE_PASSWORD
|
|
||||||
Password of the admin account for nimble array.
|
|
||||||
|
|
||||||
NIMBLE_VOLUME_DRIVER
|
|
||||||
Use either cinder.volume.drivers.nimble.NimbleISCSIDriver for iSCSI or
|
|
||||||
cinder.volume.drivers.nimble.NimbleFCDriver for Fibre Channel.
|
|
||||||
|
|
||||||
NIMBLE_BACKEND_NAME
|
|
||||||
A volume back-end name which is specified in the ``cinder.conf`` file.
|
|
||||||
This is also used while assigning a back-end name to the Nimble volume type.
|
|
||||||
|
|
||||||
NIMBLE_VOLUME_TYPE
|
|
||||||
The Nimble volume-type which is created from the CLI and associated with
|
|
||||||
``NIMBLE_BACKEND_NAME``.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Restart the ``cinder-api``, ``cinder-scheduler``, and ``cinder-volume``
|
|
||||||
services after updating the ``cinder.conf`` file.
|
|
||||||
|
|
||||||
Nimble driver extra spec options
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The Nimble volume driver also supports the following extra spec options:
|
|
||||||
|
|
||||||
'nimble:encryption'='yes'
|
|
||||||
Used to enable encryption for a volume-type.
|
|
||||||
|
|
||||||
'nimble:perfpol-name'=PERF_POL_NAME
|
|
||||||
PERF_POL_NAME is the name of a performance policy which exists on the
|
|
||||||
Nimble array and should be enabled for every volume in a volume type.
|
|
||||||
|
|
||||||
'nimble:multi-initiator'='true'
|
|
||||||
Used to enable multi-initiator access for a volume-type.
|
|
||||||
|
|
||||||
nimble:dedupe'='true'
|
|
||||||
Used to enable dedupe support for a volume-type.
|
|
||||||
|
|
||||||
'nimble:iops-limit'=IOPS_LIMIT
|
|
||||||
Used to set the IOPS_LIMIT between 256 and 4294967294 for all
|
|
||||||
volumes created for this volume-type.
|
|
||||||
|
|
||||||
'nimble:folder'=FOLDER_NAME
|
|
||||||
FOLDER_NAME is the name of the folder which exists on the Nimble array
|
|
||||||
and should be enabled for every volume in a volume type
|
|
||||||
|
|
||||||
These extra-specs can be enabled by using the following command:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ openstack volume type set --property KEY=VALUE VOLUME_TYPE
|
|
||||||
|
|
||||||
``VOLUME_TYPE`` is the Nimble volume type and ``KEY`` and ``VALUE`` are
|
|
||||||
the options mentioned above.
|
|
||||||
|
|
||||||
Configuration options
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The Nimble storage driver supports these configuration options:
|
|
||||||
|
|
||||||
.. config-table::
|
|
||||||
:config-target: Nimble
|
|
||||||
|
|
||||||
cinder.volume.drivers.nimble
|
|
||||||
|
|
||||||
Multipathing
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
In OpenStack environments where Cinder block device multipathing is desired
|
|
||||||
there are a few things to consider.
|
|
||||||
|
|
||||||
Configuring mulitpathing varies by system depending on the environment. In a
|
|
||||||
scenario where solely Nimble devices are being created by Cinder, the
|
|
||||||
following ``/etc/multipath.conf`` file may be used:
|
|
||||||
|
|
||||||
.. code-block:: text
|
|
||||||
|
|
||||||
defaults {
|
|
||||||
user_friendly_names yes
|
|
||||||
find_multipaths no
|
|
||||||
}
|
|
||||||
|
|
||||||
blacklist {
|
|
||||||
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
|
|
||||||
devnode "^hd[a-z]"
|
|
||||||
device {
|
|
||||||
vendor ".*"
|
|
||||||
product ".*"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
blacklist_exceptions {
|
|
||||||
device {
|
|
||||||
vendor "Nimble"
|
|
||||||
product "Server"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
devices {
|
|
||||||
device {
|
|
||||||
vendor "Nimble"
|
|
||||||
product "Server"
|
|
||||||
path_grouping_policy group_by_prio
|
|
||||||
prio "alua"
|
|
||||||
hardware_handler "1 alua"
|
|
||||||
path_selector "service-time 0"
|
|
||||||
path_checker tur
|
|
||||||
features "1 queue_if_no_path"
|
|
||||||
no_path_retry 30
|
|
||||||
failback immediate
|
|
||||||
fast_io_fail_tmo 5
|
|
||||||
dev_loss_tmo infinity
|
|
||||||
rr_min_io_rq 1
|
|
||||||
rr_weight uniform
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
After making changes to ``/etc/multipath.conf``, the multipath subsystem needs
|
|
||||||
to be reconfigured:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
# multipathd reconfigure
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
|
|
||||||
The latest best practices for Nimble devices can be found in the HPE Nimble
|
|
||||||
Storage Linux Integration Guide found on https://infosight.hpe.com
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
|
|
||||||
OpenStack Cinder is currently not compatible with the HPE Nimble Storage
|
|
||||||
Linux Toolkit (NLT)
|
|
||||||
|
|
||||||
Nova needs to be configured to pickup the actual multipath device created on
|
|
||||||
the host.
|
|
||||||
|
|
||||||
In ``/etc/nova/nova.conf``, add the following to the ``[libvirt]`` section:
|
|
||||||
|
|
||||||
.. code-block:: ini
|
|
||||||
|
|
||||||
[libvirt]
|
|
||||||
volume_use_multipath = True
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
In versions prior to Newton, the option was called ``iscsi_use_multipath``
|
|
||||||
|
|
||||||
After editing the Nova configuration file, the ``nova-conductor`` service
|
|
||||||
needs to be restarted.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
Depending on which particular OpenStack distribution is being used, Nova
|
|
||||||
may use a different configuration file than the default.
|
|
||||||
|
|
||||||
To validate that instances get properly connected to the multipath device,
|
|
||||||
inspect the instance devices:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
# virsh dumpxml <Instance ID | Instance Name | Instance UUID>
|
|
@ -138,9 +138,6 @@ title=Nexenta Driver (iSCSI, NFS)
|
|||||||
[driver.nfs]
|
[driver.nfs]
|
||||||
title=Generic NFS Reference Driver (NFS)
|
title=Generic NFS Reference Driver (NFS)
|
||||||
|
|
||||||
[driver.nimble]
|
|
||||||
title=Nimble Storage Driver (iSCSI)
|
|
||||||
|
|
||||||
[driver.pure]
|
[driver.pure]
|
||||||
title=Pure Storage Driver (iSCSI, FC)
|
title=Pure Storage Driver (iSCSI, FC)
|
||||||
|
|
||||||
@ -237,7 +234,6 @@ driver.netapp_ontap=complete
|
|||||||
driver.netapp_solidfire=complete
|
driver.netapp_solidfire=complete
|
||||||
driver.nexenta=complete
|
driver.nexenta=complete
|
||||||
driver.nfs=complete
|
driver.nfs=complete
|
||||||
driver.nimble=missing
|
|
||||||
driver.pure=complete
|
driver.pure=complete
|
||||||
driver.qnap=complete
|
driver.qnap=complete
|
||||||
driver.quobyte=complete
|
driver.quobyte=complete
|
||||||
@ -300,7 +296,6 @@ driver.netapp_ontap=missing
|
|||||||
driver.netapp_solidfire=complete
|
driver.netapp_solidfire=complete
|
||||||
driver.nexenta=complete
|
driver.nexenta=complete
|
||||||
driver.nfs=complete
|
driver.nfs=complete
|
||||||
driver.nimble=complete
|
|
||||||
driver.pure=complete
|
driver.pure=complete
|
||||||
driver.qnap=complete
|
driver.qnap=complete
|
||||||
driver.quobyte=complete
|
driver.quobyte=complete
|
||||||
@ -363,7 +358,6 @@ driver.netapp_ontap=missing
|
|||||||
driver.netapp_solidfire=missing
|
driver.netapp_solidfire=missing
|
||||||
driver.nexenta=missing
|
driver.nexenta=missing
|
||||||
driver.nfs=missing
|
driver.nfs=missing
|
||||||
driver.nimble=missing
|
|
||||||
driver.pure=missing
|
driver.pure=missing
|
||||||
driver.qnap=missing
|
driver.qnap=missing
|
||||||
driver.quobyte=missing
|
driver.quobyte=missing
|
||||||
@ -429,7 +423,6 @@ driver.netapp_ontap=complete
|
|||||||
driver.netapp_solidfire=complete
|
driver.netapp_solidfire=complete
|
||||||
driver.nexenta=missing
|
driver.nexenta=missing
|
||||||
driver.nfs=missing
|
driver.nfs=missing
|
||||||
driver.nimble=missing
|
|
||||||
driver.pure=missing
|
driver.pure=missing
|
||||||
driver.qnap=missing
|
driver.qnap=missing
|
||||||
driver.quobyte=missing
|
driver.quobyte=missing
|
||||||
@ -494,7 +487,6 @@ driver.netapp_ontap=complete
|
|||||||
driver.netapp_solidfire=complete
|
driver.netapp_solidfire=complete
|
||||||
driver.nexenta=missing
|
driver.nexenta=missing
|
||||||
driver.nfs=missing
|
driver.nfs=missing
|
||||||
driver.nimble=missing
|
|
||||||
driver.pure=complete
|
driver.pure=complete
|
||||||
driver.qnap=missing
|
driver.qnap=missing
|
||||||
driver.quobyte=missing
|
driver.quobyte=missing
|
||||||
@ -560,7 +552,6 @@ driver.netapp_ontap=complete
|
|||||||
driver.netapp_solidfire=complete
|
driver.netapp_solidfire=complete
|
||||||
driver.nexenta=missing
|
driver.nexenta=missing
|
||||||
driver.nfs=missing
|
driver.nfs=missing
|
||||||
driver.nimble=missing
|
|
||||||
driver.pure=complete
|
driver.pure=complete
|
||||||
driver.qnap=missing
|
driver.qnap=missing
|
||||||
driver.quobyte=missing
|
driver.quobyte=missing
|
||||||
@ -625,7 +616,6 @@ driver.netapp_ontap=complete
|
|||||||
driver.netapp_solidfire=complete
|
driver.netapp_solidfire=complete
|
||||||
driver.nexenta=missing
|
driver.nexenta=missing
|
||||||
driver.nfs=complete
|
driver.nfs=complete
|
||||||
driver.nimble=missing
|
|
||||||
driver.pure=complete
|
driver.pure=complete
|
||||||
driver.qnap=missing
|
driver.qnap=missing
|
||||||
driver.quobyte=missing
|
driver.quobyte=missing
|
||||||
@ -691,7 +681,6 @@ driver.netapp_ontap=missing
|
|||||||
driver.netapp_solidfire=missing
|
driver.netapp_solidfire=missing
|
||||||
driver.nexenta=missing
|
driver.nexenta=missing
|
||||||
driver.nfs=missing
|
driver.nfs=missing
|
||||||
driver.nimble=missing
|
|
||||||
driver.pure=missing
|
driver.pure=missing
|
||||||
driver.qnap=missing
|
driver.qnap=missing
|
||||||
driver.quobyte=missing
|
driver.quobyte=missing
|
||||||
@ -757,7 +746,6 @@ driver.netapp_ontap=complete
|
|||||||
driver.netapp_solidfire=complete
|
driver.netapp_solidfire=complete
|
||||||
driver.nexenta=missing
|
driver.nexenta=missing
|
||||||
driver.nfs=missing
|
driver.nfs=missing
|
||||||
driver.nimble=missing
|
|
||||||
driver.pure=complete
|
driver.pure=complete
|
||||||
driver.qnap=missing
|
driver.qnap=missing
|
||||||
driver.quobyte=missing
|
driver.quobyte=missing
|
||||||
@ -820,7 +808,6 @@ driver.netapp_ontap=missing
|
|||||||
driver.netapp_solidfire=complete
|
driver.netapp_solidfire=complete
|
||||||
driver.nexenta=missing
|
driver.nexenta=missing
|
||||||
driver.nfs=missing
|
driver.nfs=missing
|
||||||
driver.nimble=missing
|
|
||||||
driver.pure=missing
|
driver.pure=missing
|
||||||
driver.qnap=missing
|
driver.qnap=missing
|
||||||
driver.quobyte=missing
|
driver.quobyte=missing
|
||||||
@ -887,7 +874,6 @@ driver.netapp_ontap=missing
|
|||||||
driver.netapp_solidfire=missing
|
driver.netapp_solidfire=missing
|
||||||
driver.nexenta=missing
|
driver.nexenta=missing
|
||||||
driver.nfs=missing
|
driver.nfs=missing
|
||||||
driver.nimble=missing
|
|
||||||
driver.pure=missing
|
driver.pure=missing
|
||||||
driver.qnap=missing
|
driver.qnap=missing
|
||||||
driver.quobyte=missing
|
driver.quobyte=missing
|
||||||
|
@ -89,3 +89,4 @@ release.
|
|||||||
* Ussuri
|
* Ussuri
|
||||||
* Huawei FusionStorage Driver
|
* Huawei FusionStorage Driver
|
||||||
* ProphetStor Flexvisor Driver
|
* ProphetStor Flexvisor Driver
|
||||||
|
* Nimble Storage Driver
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
The Nimble Storage driver was marked unsupported in the
|
||||||
|
Train release and has now been removed. All data on
|
||||||
|
Nimble Storage backends should be migrated to a supported
|
||||||
|
storage backend before upgrading your Cinder installation.
|
Loading…
Reference in New Issue
Block a user