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.
ScaleIO version | Supported Linux operating systems |
---|---|
2.0 | CentOS 6.x, CentOS 7.x, SLES 11 SP3, SLES 12, Ubuntu 14.04, Ubuntu 16.04 |
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 Official documentation.
To find the ScaleIO documentation:
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:
maxIOPS
maxIOPSperGB
maxBWS
maxBWSperGB
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:
$ openstack help volume qos
maxIOPS
maxIOPSperGB
maxBWS
maxBWSperGB
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.
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:
provisioning:type = thin\thick
The old specification: sio:provisioning_type
is deprecated.
Configure the oversubscription ratio by adding the following parameter under the separate section for ScaleIO:
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.
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:
san_thin_provision = false
The configuration file is usually located in
/etc/cinder/cinder.conf
.
For a configuration example, see:
cinder.conf.
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 cinder.conf .
Configure the driver name by adding the following parameter:
volume_driver = cinder.volume.drivers.dell_emc.scaleio.driver.ScaleIODriver
The ScaleIO Gateway provides a REST interface to ScaleIO.
Configure the Gateway server IP address by adding the following parameter:
san_ip = ScaleIO GATEWAY IP
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 scli --query_all and search for available Storage Pools.
Configure the available Storage Pools by adding the following parameter:
sio_storage_pools = Comma-separated list of protection domain:storage pool name
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:
san_login = ScaleIO username
san_password = ScaleIO password
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.
cinder.conf example file
You can update the cinder.conf
file by editing the necessary
parameters as follows:
[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
Before using attach/detach volume operations VxFlex OS connector must be properly configured. On each node where VxFlex OS SDC is installed do the following:
Create /opt/emc/scaleio/openstack/connector.conf
if it does not
exist.
$ mkdir -p /opt/emc/scaleio/openstack
$ touch /opt/emc/scaleio/openstack/connector.conf
For each VxFlex OS section in the cinder.conf
create the same section in
the /opt/emc/scaleio/openstack/connector.conf
and populate it with
passwords. Example:
[vxflexos]
san_password = SIO_PASSWD
[vxflexos-new]
san_password = SIO2_PASSWD
The ScaleIO driver supports these configuration options:
Configuration option = Default value | Description |
---|---|
[DEFAULT] | |
sio_max_over_subscription_ratio = 10.0 |
(Floating point) max_over_subscription_ratio setting for the ScaleIO driver. This replaces the general max_over_subscription_ratio which has no effect in this driver.Maximum value allowed for ScaleIO is 10.0. |
sio_protection_domain_id = None |
(String) Protection Domain ID.
|
sio_protection_domain_name = None |
(String) Protection Domain name.
|
sio_rest_server_port = 443 |
(String) REST server port. |
sio_round_volume_capacity = True |
(Boolean) Round up volume capacity. |
sio_server_certificate_path = None |
(String) Server certificate path. |
sio_storage_pool_id = None |
(String) Storage Pool ID.
|
sio_storage_pool_name = None |
(String) Storage Pool name.
|
sio_storage_pools = None |
(String) Storage Pools. |
sio_unmap_volume_before_deletion = False |
(Boolean) Unmap volume before deletion. |
sio_verify_server_certificate = False |
(Boolean) Verify server certificate. |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.