X-IO volume driver

X-IO volume driver

The X-IO volume driver for OpenStack Block Storage enables ISE products to be managed by OpenStack Block Storage nodes. This driver can be configured to work with iSCSI and Fibre Channel storage protocols. The X-IO volume driver allows the cloud operator to take advantage of ISE features like Quality of Service (QOS) and Continuous Adaptive Data Placement (CADP). It also supports creating thin volumes and specifying volume media affinity.


ISE FW 2.8.0 or ISE FW 3.1.0 is required for OpenStack Block Storage support. The X-IO volume driver will not work with older ISE FW.

Supported operations

  • Create, delete, attach, detach, retype, clone, and extend volumes.
  • Create a volume from snapshot.
  • Create, list, and delete volume snapshots.
  • Manage and unmanage a volume.
  • Get volume statistics.
  • Create a thin provisioned volume.
  • Create volumes with QoS specifications.

Configure X-IO Volume driver

To configure the use of an ISE product with OpenStack Block Storage, modify your cinder.conf file as follows. Be careful to use the one that matches the storage protocol in use:

Fibre Channel

volume_driver = cinder.volume.drivers.xio.XIOISEFCDriver
san_ip =              # the address of your ISE REST management interface
san_login = administrator     # your ISE management admin login
san_password = password       # your ISE management admin password


volume_driver = cinder.volume.drivers.xio.XIOISEISCSIDriver
san_ip =              # the address of your ISE REST management interface
san_login = administrator     # your ISE management admin login
san_password = password       # your ISE management admin password
iscsi_ip_address = ionet_ip   # ip address to one ISE port connected to the IONET

Optional configuration parameters

Description of X-IO volume driver configuration options
Configuration option = Default value Description
driver_use_ssl = False (Boolean) Tell driver to use SSL for connection to backend storage if the driver supports it.
ise_completion_retries = 30 (Integer) Number on retries to get completion status after issuing a command to ISE.
ise_connection_retries = 5 (Integer) Number of retries (per port) when establishing connection to ISE management port.
ise_raid = 1 (Integer) Raid level for ISE volumes.
ise_retry_interval = 1 (Integer) Interval (secs) between retries.
ise_storage_pool = 1 (Integer) Default storage pool for volumes.


The X-IO ISE supports a multipath configuration, but multipath must be enabled on the compute node (see ISE Storage Blade Best Practices Guide). For more information, see X-IO Document Library.

Volume types

OpenStack Block Storage uses volume types to help the administrator specify attributes for volumes. These attributes are called extra-specs. The X-IO volume driver support the following extra-specs.

Extra specs
Extra-specs name Valid values Description
Feature:Raid 1, 5 RAID level for volume.
Feature:Pool 1 - n (n being number of pools on ISE) Pool to create volume in.
Affinity:Type cadp, flash, hdd Volume media affinity type.
Alloc:Type 0 (thick), 1 (thin) Allocation type for volume. Thick or thin.
QoS:minIOPS n (value less than maxIOPS) Minimum IOPS setting for volume.
QoS:maxIOPS n (value bigger than minIOPS) Maximum IOPS setting for volume.
QoS:burstIOPS n (value bigger than minIOPS) Burst IOPS setting for volume.


Create a volume type called xio1-flash for volumes that should reside on ssd storage:

$ cinder type-create xio1-flash
$ cinder type-key xio1-flash set Affinity:Type=flash

Create a volume type called xio1 and set QoS min and max:

$ cinder type-create xio1
$ cinder type-key xio1 set QoS:minIOPS=20
$ cinder type-key xio1 set QoS:maxIOPS=5000
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.