fuel-plugin-purestorage-cinder/specs/purestorage-plugin-specs.rst

3.4 KiB

This work is licensed under the Apache License, Version 2.0.

http://www.apache.org/licenses/LICENSE-2.0

Fuel plugin for Pure Storage clusters as a Cinder backend

Pure Storage plugin for Fuel extends Mirantis OpenStack functionality by adding support for the Pure Storage FlashArray in Cinder. It replaces Cinder LVM driver which is the default volume backend that uses local volumes managed by LVM.

Problem description

Currently, Fuel has no support for Pure Storage as block storage for OpenStack environments. The Pure Storage plugin aims to provide support for it.

Proposed change

Implement a Fuel plugin that will configure the Pure Storage driver for Cinder on all Controller nodes. Cinder volume service will be managed by Pacemaker/Corosync to provide HA. Having all Cinder services run on controllers no additional Cinder node is required in environment.

Data model impact

None

REST API impact

None

Upgrade impact

None

Security impact

None

Notifications impact

None

Other end user impact

None

Performance Impact

The Pure Storage FlashArray provide high performance block storage for OpenStack envirnments, and therefore enabling the Pure Storage driver in OpenStack will greatly improve performance of OpenStack.

Other deployer impact

The deployer should configure the IP addresses on the Pure Storage array before they deploy the Fuel Plugin to the controllers.

Developer impact

None

Implementation

The plugin generates the approriate cinder.conf stanzas to enable the Pure Storage FlashArray within OpenStack. The purestorage.pypi module is installed as part of the plugin. plugin as this is a pre-requisite of the Pure Storage Cinder driver. The driver itself is included in the main OpenStack distribution.

Plugin has three tasks. Each task per role. They are run in the following order:

  • The first task configures cinder-volume on Primary Controller.
  • The second task configures cinder-volume on Cinder nodes.
  • The third task configures nova-compute on Nova nodes.

Cinder-volume service is installed on all Controller nodes and is managed by Pacemaker. It runs in active/passive mode where only one instance is active. All instances of cinder-volume have the same “backend-host” parameter in cinder.conf file. This is required to achieve ability to manage all volumes in the environment by any cinder-volume instance.

Assignee(s)

Work Items

  • Implement the Fuel plugin.
  • Implement the Puppet manifests.
  • Testing.
  • Write the documentation.

Dependencies

  • Fuel 8.0 and higher.

Testing

  • Prepare a test plan.
  • Test the plugin by deploying environments with all Fuel deployment modes.

Documentation Impact

  • Deployment Guide (how to install the storage backends, how to prepare an environment for installation, how to install the plugin, how to deploy an OpenStack environment with the plugin).
  • User Guide (which features the plugin provides, how to use them in the deployed OpenStack environment).
  • Test Plan.
  • Test Report.