Managing pluggable storage or fabrics

A pluggable storage device is an OpenStack supported storage device. Any storage device supported by an OpenStack driver can be registered with PowerVC, but the level of functionality that it has within PowerVC depends on the driver.

The following steps show how to add a pluggable volume driver. For adding a pluggable fabric driver, the steps are similar.

For more information about pluggable storage functionality, see Functions available on pluggable and integrated storage drivers.
  1. Obtain the OpenStack Ussuri-compatible driver installable, documentation, and any dependencies from GitHub.
    • Check if the OpenStack compatible driver is shipped with PowerVC. On the PowerVC management server, check the /usr/lib/python3.6/site-packages/cinder/volume/drivers location. If the driver exists there after the installation of PowerVC, then it is already available at the OpenStack release level that is needed for PowerVC. If the driver does not exist, then continue with the subsequent points here.
    • If the driver is a Cinder community driver, run the git command to clone the stable branch:
      git clone --branch stable/ussuri https://git.openstack.org/openstack/cinder.git
      Copy the driver directory and its contents from cinder/cinder/volume/drivers/ to /usr/lib/python3.6/site-packages/cinder/volume/drivers/.
      Notes:
      • The cinder operating system user (created by the PowerVC installation process) must have read and execute permissions on the entire directory path up to the module containing the driver. The cinder user must have read permission on the module file itself.
      • Make sure that there are no conflicting directory or module names. For example, you cannot have a directory called mydriver and a file module called mydriver.py in the same directory as those names will conflict.
    • If the storage driver is not in the Cinder community, follow the vendor's instructions for downloading and installing the storage driver.
  2. Review the dependencies listed for the driver. For any dependencies that PowerVC does not meet, install and configure them in accordance with the driver's instructions.

    To determine the driver's dependencies, review the OpenStack Cinder driver documentation.

    To determine whether the dependencies are already met by PowerVC, run rpm -aq and review the output.

  3. Prepare a properties file for use with the powervc-register command by creating a file with a section called backend_defaults, followed by any driver specific key/value pairs. The OpenStack driver documentation might list properties that should be set in /etc/cinder/cinder.conf or /etc/cinder/fabrics.conf. Do not modify the /etc/cinder/cinder.conf or /etc/cinder/fabrics.conf file directly. Instead, put all of the driver specific configuration properties in the properties file that is passed to the command.
    Note: Do not set the following properties in the properties file because they will be overridden by the arguments specified on the command line: volume_driver, volume_backend_name, enabled_backends, or host_type.
    Example
     
    [backend_defaults] 
    san_password = passw0rd 
    san_login = svcuser 
    san_ip = 1.2.3.4
    storwize_svc_volpool_name = pool_0 
  4. Register the storage driver by running the powervc-register command:
    powervc-register -o add -r resource_type -d volume_driver 
    
                      -n display_name -p properties_file 
    The command uses the following parameters:
    resource_type
    Use storage or fabric as the resource type, as appropriate.
    volume_driver
    The path to the volume driver's Python class. If the driver exists in the standard location, this value may be documented by the OpenStack driver. Otherwise, it depends on where you placed the module. For example, cinder.volume.drivers.dell_emc.unity.driver.UnityDriver.
    display_name
    Optional: The driver's display name
    properties_file
    The file used to specify the device specific configuration properties.
    For instructions to use the command, run powervc-register -h.

    Example:

    powervc-register -o add -r storage -d cinder.volume.drivers.ibm.storwize_svc.storwize_svc_fc.StorwizeSVCFCDriver -n svc-fc-storage -p /tmp/svc_properties.conf
Updating the OpenStack level of driver

If you already have a pluggable driver that is registered with PowerVC and the pluggable driver module was not updated when the PowerVC version was updated, then you might need to download a new version of the driver to replace the old file. For example, if you update PowerVC to version 2.0.0, then you must have a OpenStack Ussuri level of the registered pluggable driver.