PowerVC provides integrated support for a number of different storage devices. For those storage devices that are don’t have drivers included with PowerVC, it allows you to manage that storage as a “pluggable” storage device. A “pluggable” storage device is any storage device that is supported by an OpenStack volume driver. The level of functionality that it has within PowerVC depends on the driver. PowerVC does not prevent utilization of the functions provided by the driver, such as deploy, attach and detach volume, create and delete volume, delete virtual machine, and migration. However, functionality is not guaranteed. Additionally, when viewing the details of a pluggable device, some information will be missing if the information is not available to PowerVC.
In this article, we demonstrate the pluggable feature with the XtremIO OpenStack provided driver with PowerVC 1.3.2 and 1.3.3. This document does not cover the required Xtremio set up or configuration, such as creating the user ID used by the plug-in on the the Xtremio server.
Note: XtremIO and the XtemIO storage driver are not officially not supported by PowerVC and functionality is not guaranteed. This information is provided to show how it can be made to work and does not imply PowerVC support for XtremIO or the Cinder driver used here.
Setting up PowerVC
In this example environments, PowerVC 1.3.2 and 1.3.3 were installed on RHEL 7.3 on a Power LPAR. The Cloud PowerVC Manager option was used on the install but isn’t a requirement for using the plug-in.
Set up a Source Shell Script
To get the OpenStack CLI commands to work, you must source with a source shell script.
PowerVC creates a default source shell script file when it is installed. Copy this file as a starting point for creating other source shell script files. You can name the shell source script copies anything you want. They can be in any directory. This example puts the copy in / and call it Project-openrc.sh.
# cp /opt/ibm/powervc/powervcrc /Project-openrc.sh
Make sure the script is executable:
# chmod +x /Project-openrc.sh
This is an example of what would be in source shell script:
# cat Project-openrc.sh
export OS_IDENTITY_API_VERSION=3
export OS_AUTH_URL=https://
When using “root”, it is not recommended that you put the root password in this shell script. The shell script is an unencrypted file and it is not a good idea to have the real OS root password there! For now, temporarily do this just to use the root admin authority.
Log in as root and source the session with root and root password:
# source /Project-openrc.sh
Note that the project is set to "ibm-default" by default in the copied source file. This default script will have to be edited slightly to source a session in order for these commands to work with specific users or if there are specific projects (tenants).
Registering the driver
There are only two items that PowerVC requires to get a pluggable driver registered: the pluggable driver supported by OpenStack and the Cinder configuration file.
You'll have to be logged in as root or have root level authority to do these steps.
Obtain the pluggable driver for PowerVC 1.3.2
The XtremIO driver compatible with PowerVC 1.3.2 can be found at
https://github.com/openstack/cinder/tree/stable/newton/cinder/volume/drivers/emc. This version of the driver corresponds to the OpenStack release (Newton) on which the PowerVC version 1.3.2 is based. Download xtremio.py.
After downloading this file, move it to the following directory: /usr/lib/python2.7/site-packages/cinder/volume/drivers/emc.
Make sure the file is executable.
Obtain the pluggable driver for PowerVC 1.3.3
The XtremIO driver compatible with PowerVC 1.3.3 can be found at
https://github.com/openstack/cinder/tree/master/cinder/volume/drivers/dell_emc. This version of the driver corresponds to the OpenStack release (Ocata) on which the PowerVC version 1.3.3 is based. Download xtremio.py.
After downloading this file, move it to the following directory: /usr/lib/python2.7/site-packages/cinder/volume/drivers/dell_emc.
Make sure the file is executable.
Create the Cinder configuration file
For integrated drivers, PowerVC creates and configures these files when a new storage device is registered. However, since we are working with a pluggable driver, we will need to create the Cinder configuration file manually. This will be done when the plug-in is registered below. The properties the registration will use are identified in a file that is specified on the registration command. For XtremIO, the required properties that we will need to add are listed below. All we have to do is create this file with these properties and pass it as a parameter when we register the plug in.
It would be a good idea to validate that the IP address of the XIO server is correct and can be reached from the PowerVC server. You should also validate the user ID and password used in this file to access the XtremIO server.
san_ip = <IP address of XIO server>
san_login = <XIO admin user ID>
san_password = <password for XIO admin user ID>
use_multipath_for_image_xfer = True
xtremio_array_busy_retry_count = 5
xtremio_array_busy_retry_interval = 5
xtremio_cluster_name = <cluster name>
xtremio_volumes_per_glance_cache = 100
volume_pool_name = XtremIO
default_volume_type = XtremIO
volume_name_template = pvcxio-%s
Note: In one instance of registering the plug in, the Rhel OS SSH key of the PowerVC server had to be sent and registered in the XIO server in order for the registration to work. That registration was not required in another registration.
The volume_pool_name and default_volume_type (XtremIO) are just names used on registration.
The values in brackets need to be specific to your storage environment. The integer values can be changed to suit your environment as well but should be sufficient for PowerVC registration purposes. When all the values have been gathered, open a new file for editing on your PowerVC management server. The file name should be in the form
#Storage#Storage