Liberty -  Liberty -  Liberty -  Liberty -  Liberty -  Liberty -  Liberty -  Liberty - 

 EMC ScaleIO Block Storage driver configuration

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, OpenStack Block Storage hosts can connect to a ScaleIO Storage cluster.

This section explains how to configure and connect an OpenStack block storage host to a ScaleIO storage cluster.

 Support matrix

  • ScaleIO: Version 1.32

  • ScaleIO: Version 2.0

 ScaleIO QoS support

The ScaleIO Block Storage driver allows limiting the IOPS and bandwidth that one SDC generates for a volume.

Add the following keys to the volume type to set the SDC's limits for volume of this type:

  • sio:iops_limit - limits the volume IOPS. Must be larger than 10.

  • sio:bandwidth_limit - limits the volume network bandwidth. The bandwidth is in KB per second.

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 volumes, in addition to thick provisioning.

The provisioning type settings should be added as an extra specification of the volume type, as follows:


If the provisioning type is not specified, the default value of thick will be used.

 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

 ScaleIO Block Storage driver configuration

Edit the cinder.conf file by adding the configuration below under the [DEFAULT] section of the file in case of a single back end or under a separate section in case of multiple back ends (for example [ScaleIO]). The configuration file is usually located under the following path /etc/cinder/cinder.conf.

For a configuration example, refer to the configuration example.

 ScaleIO driver name

Configure the driver name by adding the following parameter:

volume_driver = cinder.volume.drivers.emc.scaleio.ScaleIODriver

 ScaleIO MDM server IP

The ScaleIO Meta Data Manager monitors and maintains the available resources and permissions.

To retrieve the MDM server IP, use the drv_cfg --query_mdms CLI command.

Configure the MDM server IP by adding the following parameter: san_ip = ScaleIO GATEWAY IP

 ScaleIO protection domain name

ScaleIO allows multiple protection domains (groups of SDSs that provide backup for each other).

To retrieve the available protection domains, use the scli --query_all and search for the protection domains section.

Configure the protection domain for newly created volumes by adding the following parameter: sio_protection_domain_name = ScaleIO Protection Domain

 ScaleIO storage pool name

A ScaleIO storage pool is a set of physical devices in a protection domain.

To retrieve the available storage pools, use the scli --query_all and search for available storage pools.

Configure the storage pool for newly created volumes by adding the following parameter: sio_storage_pool_name = ScaleIO Storage Pool

 ScaleIO storage pools

Multiple storage pools and protection domains can be listed for use by the virtual machines.

To retrieve the available storage pools, use the 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

 ScaleIO user credentials

OpenStack Block Storage requires a ScaleIO user with administrative privileges. ScaleIO recommends creating a dedicated OpenStack user account that holds 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

 Multiple back ends

Configuring multiple storage back ends enables you to create several back-end storage solutions that serve the same OpenStack Compute resources.

When a volume is created, the scheduler selects the appropriate back end to handle the request, according to the specified volume type.

 Restarting OpenStack Block Storage

Save thecinder.conffile and restart cinder by running the following command:

$ openstack-service restart cinder-volume

 Configuration example

cinder.conf example file

You can update the cinder.conf file by editing the necessary parameters as follows:

enabled_backends = scaleio

volume_driver = cinder.volume.drivers.emc.scaleio.ScaleIODriver
volume_backend_name = scaleio
san_ip = GATEWAY_IP
sio_protection_domain_name = Default_domain
sio_storage_pool_name = Default_pool
sio_storage_pools = Domain1:Pool1,Domain2:Pool2
san_login = SIO_USER
san_password = SIO_PASSWD

 Configuration options

The ScaleIO driver supports these configuration options:

Table 2.6. Description of EMC SIO volume driver configuration options
Configuration option = Default value Description
sio_force_delete = False (BoolOpt) Whether to allow force delete.
sio_protection_domain_id = None (StrOpt) Protection domain id.
sio_protection_domain_name = None (StrOpt) Protection domain name.
sio_rest_server_port = 443 (StrOpt) REST server port.
sio_round_volume_capacity = True (BoolOpt) Whether to round volume capacity.
sio_server_certificate_path = None (StrOpt) Server certificate path.
sio_storage_pool_id = None (StrOpt) Storage pool id.
sio_storage_pool_name = None (StrOpt) Storage pool name.
sio_storage_pools = None (StrOpt) Storage pools.
sio_unmap_volume_before_deletion = False (BoolOpt) Whether to unmap volume before deletion.
sio_verify_server_certificate = False (BoolOpt) Whether to verify server certificate.

Questions? Discuss on
Found an error? Report a bug against this page

loading table of contents...