ScaleIO - Cleanup and enhance configuration doc

Restructuring the configuration content for the ScaleIo driver
and adding more information on how to specify a specific
protection domain and storage pool in a volume type as well as
providing examples of setting QOS specs.

Change-Id: I5f4af36e7643b41b68ac438ce048559c15b6c5b8
This commit is contained in:
Eric Young 2017-11-02 11:35:26 -04:00
parent a11dcdb0f7
commit ae69084f7c

View File

@ -2,15 +2,15 @@
Dell EMC ScaleIO Block Storage driver
=====================================
Overview
--------
ScaleIO is a software-only solution that uses existing servers' local
disks and LAN to create a virtual SAN that has all of the benefits of
external storage, but at a fraction of the cost and complexity. Using the
driver, Block Storage hosts can connect to a ScaleIO Storage
cluster.
This section explains how to configure and connect the block storage
nodes to a ScaleIO storage cluster.
Support matrix
~~~~~~~~~~~~~~
@ -23,6 +23,19 @@ Support matrix
* - 2.0
- CentOS 6.x, CentOS 7.x, SLES 11 SP3, SLES 12, Ubuntu 14.04, Ubuntu 16.04
.. _scale_io_docs:
Official ScaleIO documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To find the ScaleIO documentation:
#. Go to the `ScaleIO product documentation page <https://support.emc.com/products/33925_ScaleIO/Documentation/?source=promotion>`_.
#. From the left-side panel, select the relevant ScaleIO version.
Deployment prerequisites
~~~~~~~~~~~~~~~~~~~~~~~~
@ -34,23 +47,10 @@ Deployment prerequisites
* ScaleIO Data Client (SDC) must be installed on all OpenStack nodes.
.. note:: Ubuntu users must follow the specific instructions in the ScaleIO
deployment guide for Ubuntu environments. See the Deploying on
Ubuntu servers section in ScaleIO Deployment Guide. See
Deployment Guide for Ubuntu environments. See the ``Deploying on
Ubuntu Servers`` section in ScaleIO Deployment Guide. See
:ref:`scale_io_docs`.
.. _scale_io_docs:
Official documentation
----------------------
To find the ScaleIO documentation:
#. Go to the `ScaleIO product documentation page <https://support.emc.com/products/33925_ScaleIO/Documentation/?source=promotion>`_.
#. From the left-side panel, select the relevant version.
#. Search for "ScaleIO 2.0 Deployment Guide".
Supported operations
~~~~~~~~~~~~~~~~~~~~
@ -72,28 +72,184 @@ Supported operations
* Create, list, update, and delete consistency group snapshots
ScaleIO QoS support
~~~~~~~~~~~~~~~~~~~~
QoS support for the ScaleIO driver includes the ability to set the
following capabilities in the Block Storage API
``cinder.api.contrib.qos_specs_manage`` QoS specs extension module:
ScaleIO Block Storage driver configuration
------------------------------------------
* ``maxIOPS``
This section explains how to configure and connect the block storage
nodes to a ScaleIO storage cluster.
* ``maxIOPSperGB``
Edit the ``cinder.conf`` file by adding the configuration below under
a new section (for example, ``[scaleio]``) and change the ``enable_backends``
setting (in the ``[DEFAULT]`` section) to include this new back end.
The configuration file is usually located at
``/etc/cinder/cinder.conf``.
* ``maxBWS``
For a configuration example, refer to the example
:ref:`cinder.conf <cg_configuration_example_emc>` .
* ``maxBWSperGB``
ScaleIO driver name
~~~~~~~~~~~~~~~~~~~
The QoS keys above must be created and associated with a volume type.
For information about how to set the key-value pairs and associate
them with a volume type, run the following commands:
Configure the driver name by adding the following parameter:
.. code-block:: ini
volume_driver = cinder.volume.drivers.dell_emc.scaleio.driver.ScaleIODriver
ScaleIO Gateway server IP
~~~~~~~~~~~~~~~~~~~~~~~~~
The ScaleIO Gateway provides a REST interface to ScaleIO.
Configure the Gateway server IP address by adding the following parameter:
.. code-block:: ini
san_ip = <ScaleIO GATEWAY IP>
ScaleIO Storage Pools
~~~~~~~~~~~~~~~~~~~~~
Multiple Storage Pools and Protection Domains can be listed for use by
the virtual machines. The list should include every Protection Domain and
Storage Pool pair that you would like Cinder to utilize.
To retrieve the available Storage Pools, use the command
:command:`scli --query_all` and search for available Storage Pools.
Configure the available Storage Pools by adding the following parameter:
.. code-block:: ini
sio_storage_pools = <Comma-separated list of protection domain:storage pool name>
ScaleIO user credentials
~~~~~~~~~~~~~~~~~~~~~~~~
Block Storage requires a ScaleIO user with administrative
privileges. ScaleIO recommends creating a dedicated OpenStack user
account that has an administrative user role.
Refer to the ScaleIO User Guide for details on user account management.
Configure the user credentials by adding the following parameters:
.. code-block:: ini
san_login = <SIO_USER>
san_password = <SIO_PASSWD>
Oversubscription
~~~~~~~~~~~~~~~~
Configure the oversubscription ratio by adding the following parameter
under the separate section for ScaleIO:
.. code-block:: ini
sio_max_over_subscription_ratio = <OVER_SUBSCRIPTION_RATIO>
.. note::
The default value for ``sio_max_over_subscription_ratio``
is 10.0.
Oversubscription is calculated correctly by the Block Storage service
only if the extra specification ``provisioning:type``
appears in the volume type regardless of the default provisioning type.
Maximum oversubscription value supported for ScaleIO is 10.0.
Default provisioning type
~~~~~~~~~~~~~~~~~~~~~~~~~
If provisioning type settings are not specified in the volume type,
the default value is set according to the ``san_thin_provision``
option in the configuration file. The default provisioning type
will be ``thin`` if the option is not specified in the configuration
file. To set the default provisioning type ``thick``, set
the ``san_thin_provision`` option to ``false``
in the configuration file, as follows:
.. code-block:: ini
san_thin_provision = false
The configuration file is usually located in
``/etc/cinder/cinder.conf``.
For a configuration example, see:
:ref:`cinder.conf <cg_configuration_example_emc>`.
.. _cg_configuration_example_emc:
Configuration example
~~~~~~~~~~~~~~~~~~~~~
**cinder.conf example file**
You can update the ``cinder.conf`` file by editing the necessary
parameters as follows:
.. code-block:: ini
[DEFAULT]
enabled_backends = scaleio
[scaleio]
volume_driver = cinder.volume.drivers.dell_emc.scaleio.driver.ScaleIODriver
volume_backend_name = scaleio
san_ip = GATEWAY_IP
sio_storage_pools = Domain1:Pool1,Domain2:Pool2
san_login = SIO_USER
san_password = SIO_PASSWD
san_thin_provision = false
Configuration options
~~~~~~~~~~~~~~~~~~~~~
The ScaleIO driver supports these configuration options:
.. include:: ../../tables/cinder-emc_sio.inc
Volume Types
------------
Volume types can be used to specify characteristics of volumes allocated via the
ScaleIO Driver. These characteristics are defined as ``Extra Specs`` within
``Volume Types``.
ScaleIO Protection Domain and Storage Pool
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When multiple storage pools are specified in the Cinder configuration,
users can specify which pool should be utilized by adding the ``pool``
Extra Spec to the volume type extra-specs and setting the value to the
requested protection_domain:storage_pool.
.. code-block:: console
$ openstack help volume qos
$ openstack volume type create sio_type_1
$ openstack volume type set --property volume_backend_name=scaleio sio_type_1
$ openstack volume type set --property pool=Domain2:Pool2 sio_type_1
ScaleIO thin provisioning support
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The Block Storage driver supports creation of thin-provisioned and
thick-provisioned volumes.
The provisioning type settings can be added as an extra specification
of the volume type, as follows:
.. code-block:: console
$ openstack volume type create sio_type_thick
$ openstack volume type set --property provisioning:type=thick sio_type_thick
ScaleIO QoS support
~~~~~~~~~~~~~~~~~~~
QoS support for the ScaleIO driver includes the ability to set the
following capabilities:
``maxIOPS``
The QoS I/O rate limit. If not set, the I/O rate will be unlimited.
@ -115,167 +271,17 @@ them with a volume type, run the following commands:
the volume size.
The setting must be a multiple of 1024.
The QoS keys above must be created and associated with a volume type.
For example:
.. code-block:: console
$ openstack volume qos create qos-limit-iops --consumer back-end --property maxIOPS=5000
$ openstack volume type create sio_limit_iops
$ openstack volume qos associate qos-limit-iops sio_limit_iops
The driver always chooses the minimum between the QoS keys value
and the relevant calculated value of ``maxIOPSperGB`` or ``maxBWSperGB``.
Since the limits are per SDC, they will be applied after the volume
is attached to an instance, and thus to a compute node/SDC.
ScaleIO thin provisioning support
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The Block Storage driver supports creation of thin-provisioned and
thick-provisioned volumes.
The provisioning type settings can be added as an extra specification
of the volume type, as follows:
.. code-block:: ini
provisioning:type = thin\thick
The old specification: ``sio:provisioning_type`` is deprecated.
Oversubscription
----------------
Configure the oversubscription ratio by adding the following parameter
under the separate section for ScaleIO:
.. code-block:: ini
sio_max_over_subscription_ratio = OVER_SUBSCRIPTION_RATIO
.. note::
The default value for ``sio_max_over_subscription_ratio``
is 10.0.
Oversubscription is calculated correctly by the Block Storage service
only if the extra specification ``provisioning:type``
appears in the volume type regardless to the default provisioning type.
Maximum oversubscription value supported for ScaleIO is 10.0.
Default provisioning type
-------------------------
If provisioning type settings are not specified in the volume type,
the default value is set according to the ``san_thin_provision``
option in the configuration file. The default provisioning type
will be ``thin`` if the option is not specified in the configuration
file. To set the default provisioning type ``thick``, set
the ``san_thin_provision`` option to ``false``
in the configuration file, as follows:
.. code-block:: ini
san_thin_provision = false
The configuration file is usually located in
``/etc/cinder/cinder.conf``.
For a configuration example, see:
:ref:`cinder.conf <cg_configuration_example_emc>`.
ScaleIO Block Storage driver configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Edit the ``cinder.conf`` file by adding the configuration below under
a new section (for example, ``[scaleio]``) and change the ``enable_backends``
setting (in the ``[DEFAULT]`` section) to include this new back end.
The configuration file is usually located at
``/etc/cinder/cinder.conf``.
For a configuration example, refer to the example
:ref:`cinder.conf <cg_configuration_example_emc>` .
ScaleIO driver name
-------------------
Configure the driver name by adding the following parameter:
.. code-block:: ini
volume_driver = cinder.volume.drivers.dell_emc.scaleio.driver.ScaleIODriver
ScaleIO Gateway server IP
-------------------------
The ScaleIO Gateway provides a REST interface to ScaleIO.
Configure the Gateway server IP address by adding the following parameter:
.. code-block:: ini
san_ip = ScaleIO GATEWAY IP
ScaleIO Storage Pools
---------------------
Multiple Storage Pools and Protection Domains can be listed for use by
the virtual machines. The list should include every Protection Domain and
Storage Pool pair that you would like Cinder to utilize.
To retrieve the available Storage Pools, use the command
:command:`scli --query_all` and search for available Storage Pools.
Configure the available Storage Pools by adding the following parameter:
.. code-block:: ini
sio_storage_pools = Comma-separated list of protection domain:storage pool name
ScaleIO user credentials
------------------------
Block Storage requires a ScaleIO user with administrative
privileges. ScaleIO recommends creating a dedicated OpenStack user
account that has an administrative user role.
Refer to the ScaleIO User Guide for details on user account management.
Configure the user credentials by adding the following parameters:
.. code-block:: ini
san_login = ScaleIO username
san_password = ScaleIO password
Multiple back ends
~~~~~~~~~~~~~~~~~~
Configuring multiple storage back ends allows you to create several back-end
storage solutions that serve the same Compute resources.
When a volume is created, the scheduler selects the appropriate back end
to handle the request, according to the specified volume type.
.. _cg_configuration_example_emc:
Configuration example
~~~~~~~~~~~~~~~~~~~~~
**cinder.conf example file**
You can update the ``cinder.conf`` file by editing the necessary
parameters as follows:
.. code-block:: ini
[Default]
enabled_backends = scaleio
[scaleio]
volume_driver = cinder.volume.drivers.dell_emc.scaleio.driver.ScaleIODriver
volume_backend_name = scaleio
san_ip = GATEWAY_IP
sio_storage_pools = Domain1:Pool1,Domain2:Pool2
san_login = SIO_USER
san_password = SIO_PASSWD
san_thin_provision = false
Configuration options
~~~~~~~~~~~~~~~~~~~~~
The ScaleIO driver supports these configuration options:
.. include:: ../../tables/cinder-emc_sio.inc