Remove volume driver specs and move Liberty specs

New volume drivers don't need specs. Also some things need to be moved
over to Liberty that weren't done in Kilo.

Change-Id: Ic44a35c01278fdc2fbe0a1614c32914542b01925
This commit is contained in:
Mike Perez 2015-05-15 10:59:47 -07:00
parent 3614b71588
commit 6f2a2b1053
6 changed files with 0 additions and 721 deletions

View File

@ -1,182 +0,0 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
======================================
NetApp Data ONTAP FibreChannel drivers
======================================
https://blueprints.launchpad.net/cinder/+spec/add-fibre-channel-support-to-
netapp-drivers
NetApp's Cinder volume drivers for Data ONTAP support iSCSI, and we are adding
FibreChannel support as well.
Problem description
===================
Cinder volume drivers must extend the protocol-specific subclass of
VolumeDriver (i.e. ISCSIDriver or FibreChannelDriver). The inheritance model
employed by the NetApp iSCSI drivers is not conducive to adding FibreChannel
support to their extant iSCSI capability.
Other vendors have moved common, protocol-agnostic driver code into library
modules and called those from the actual driver modules, which then become
very thin indirection layers. NetApp will take this approach as well.
Use Cases
=========
Proposed change
===============
We will make the following changes:
* Move all iSCSI Data ONTAP driver code into library modules (base class plus
subclasses for 7-mode and cluster-mode specializations).
* Convert the driver modules for iSCSI (7-mode and cluster-mode) into thin
indirection layers.
* Add corresponding FibreChannel driver modules that call (mostly) the same
logic in the library modules.
* Enhance the libraries' handling of igroups and initiators to be multi-
initiator-aware, since FC HBAs typically report multiple host-side WWPNs to
Nova/Cinder.
* Enhance the library modules to handle FC-specific attach/detach operations
in the same way as other FC drivers. We will take full advantage of the
Zone Manager code in Cinder.
* Enhance our unit tests to cover all the proposed changes, and continue the
multi-release process of moving NetApp's Cinder unit tests into the correct
directory structure.
The refactoring needed in the iSCSI drivers to pave the way for FC drivers
will be submitted first, followed by a separate submission to add the FC
drivers themselves.
Alternatives
------------
In addition to the library approach, we also considered building our drivers
using Python mixins, which would eliminate the indirection layer in the driver
modules. The problem with mixins is that IDEs cannot follow references, and
the mixins cannot be standalone modules since they need common data such as
Cinder configuration objects. We prototyped both approaches, but the library
solution is much more convenient to work with.
Data model impact
-----------------
None
REST API impact
---------------
None
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
None
Performance Impact
------------------
None
Other deployer impact
---------------------
One new NetApp-specific config flag is required: netapp_partner_backend_name
NetApp Data ONTAP (7-mode) storage controllers typically operate in HA pairs,
and in a FibreChannel (FC) environment each controller presents LUNs from its
partner into the FC fabric(s). So the driver must be able to read the FC
port info and LUN map info from not only the controller owning a LUN but also
from its HA partner. The added flag identifies the config file stanza for the
HA partner (which is always its own Cinder backend). This approach is much
cleaner than duplicating all the partner connection details in each backend
stanza.
Developer impact
----------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
Clinton Knight (cknight)
Other contributors:
Rushil Chugh (rushil)
Work Items
----------
* Set up FC dev/test environment.
* Refactor drivers to move block storage code into reusable libraries.
* Create FC driver modules for Data ONTAP (7-mode & cluster-mode).
* Update & extend unit tests accordingly.
Dependencies
============
* The refactoring to prepare for FC drivers was captured in a separate
blueprint: https://blueprints.launchpad.net/cinder/+spec/netapp-cinder-
driver-refactoring-phase-1
Testing
=======
Running our existing tempest tests in the FC dev/test environment is the
initial step to know the FC-specific changes in the driver libraries are
working. Regression tests in iSCSI environments will ensure nothing was
broken.
We are also building a CI system, which will be extended during Kilo to
include running tempest in an FC environment.
Documentation Impact
====================
What is the impact on the docs team of this change? Some changes might require
donating resources to the docs team to have the documentation updated. Don't
repeat details discussed above, but please reference them here.
References
==========
* The FC implementation described above was informed by pre-existing FC
drivers from other vendors, most notably the HP/3PAR one. A conversation
with Walter Boring was very helpful.

View File

@ -1,185 +0,0 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==============================================
Cinder volume driver for Huawei Dsware
==============================================
Include the URL of your launchpad blueprint:
https://blueprints.launchpad.net/cinder/+spec/huawei-dsware-driver
This proposal is to add Huawei Dsware driver to cinder.
Huawei Dsware is a virtual SAN product, virtualizes homogeneous local
disk device from mutiple hosts to provide virtual block device,
while providing advanced features such as snapshot, clone,thin provision,
cache and so on.
Problem description
===================
Currently, user can't access Huawei Dsware by Openstack Cinder.
Use Cases
=========
Proposed change
===============
We will add a new Cinder driver that uses socket API to interact with Huawei
Dsware storage. Dsware data panel using private Key-Value protocal,
so we also add a new connector to realize attach/detach volume.
The following diagram shows the command and data paths.
::
+------------------+
| |
| Cinder + |
| Cinder Volume |
| |
| |
+------------------+
| |
| |
| |
| |
+---------------+-------+ +----+------------------+
| | | |
| | | |
| Dsware | | Dsware Driver |
| connector | | |
| | | |
+-----------------------+ +-----------------------+
| |
| |
| |
CLI Socket API
| |
| |
| |
+--+-----------+---+
| |
| |
| Dsware |
| storage |
| |
+------------------+
Add new driver in /cinder/volume/drivers path, and realize cinder driver
minimum features:
* Volume Create/Delete
* Volume Attach/Detach
* Snapshot Create/Delete
* Create Volume from Snapshot
* Get Volume Stats
* Copy Image to Volume
* Copy Volume to Image
* Clone Volume
* Extend Volume
Add a new connector which can be shared with Huawei SDShypervisor in
cinder/brick/initiator path, and realize abstract connector methods:
* connect_volume
* disconnect_volume
Alternatives
------------
None
Data model impact
-----------------
None
REST API impact
---------------
None
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
User will be able to use Huawei Dsware with Cinder.
Performance Impact
------------------
None
Other deployer impact
---------------------
None
Developer impact
----------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
zhangni <zhangni@huawei.com>
Other contributors:
None
Work Items
----------
Realize Cinder driver minimum features using socket API.
Realize new connector using CLI.
Add CI unit test plugins for Huawei Dsware cinder driver and
connector.
Dependencies
============
Because Dsware data panel using private Key-Value protocal, we will create a
new libvirt volume driver in Nova to realize attach/detach volume to
instance.
Testing
=======
Continuous integration will be done for Huawei Dsware Driver.
Documentation Impact
====================
The CinderSupportMatrix table should be updated to add Huawei Dsware.
https://wiki.openstack.org/wiki/CinderSupportMatrix
References
==========
None

View File

@ -1,174 +0,0 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==========================================
Cinder volume driver for X-IO ISE storage
==========================================
Include the URL of your launchpad blueprint:
https://blueprints.launchpad.net/cinder/+spec/xio-iscsi-fc-volume-driver
Add Cinder volume driver for X-IO ISE storage products. The driver will
implement all APIs required to support both FC and iSCSI protocols.
It communicates with the ISE storage unit using REST.
Problem description
===================
Currently no volume driver for X-IO ISE storage available in any release
branch.
Use Cases
=========
Proposed change
===============
The new driver will add support for ISE storage products as backend storage
in Cinder.
The driver supports the following APIs:
* Volume Create/Delete
* Volume Attach/Detach
* Snapshot Create/Delete
* Create Volume from Snapshot
* Get Volume Stats
* Copy Image to Volume
* Copy Volume to Image
* Clone Volume
* Extend Volume
Driver will be implemented using three classes in separate files.
* class XIOISEDriver
Main class common to FC and ISCSI driver classes.
* class XIOISCSIDriver
Driver specific for ISCSI protocol.
* class XIOFCDriver
Driver specific for FC protocol.
Alternatives
------------
None
Data model impact
-----------------
None
REST API impact
---------------
None
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
Addition of the X-IO volume driver will allow the end user to use X-IO storage
as backend storage in Cinder.
Performance Impact
------------------
None
Other deployer impact
---------------------
The driver can be configured with the following parameters in cinder.conf:
* san_ip - IP to REST management interface on ISE
* san_login - user name for REST management interface
* san_password - password for user
* ise_raid_level - RAID level for volumes
* ise_default_pool - storage pool to use for volume creation
* iscsi_ip_address - IP to one ISCSI target interface on ISE
The ISE ISCSI target interface specified in iscsi_ip_address will return all
target portals available on that ISE, limited to the same subnet when receiving
an ISCSI discover sendtargets request from a host identified as an Openstack
host. This was added to allow the host to use multipathing, if enabled on the
hypervisor.
Developer impact
----------------
None
Implementation
==============
Assignee(s)
-----------
Richard Hedlind
Primary assignee:
rhedlind
Other contributors:
None
Work Items
----------
Common driver:
xio_common.py
Driver code common to FC and ISCSI.
Done
ISCSI driver:
xio_iscsi.py
Driver code specific to ISCSI.
Done. Passed driver cert test.
FC driver:
xio_fc.py
In progress. Code complete, but Driver cert in progress.
Unit test:
test_xio_fc.py
test_xio_iscsi.py
In progress.
CI environment will be setup, one for each driver type.
Dependencies
============
None
Testing
=======
Test using existing test infrastructure according to driver submission steps.
Documentation Impact
====================
Support Matrix needs to be updated to include X-IO support.
https://wiki.openstack.org/wiki/CinderSupportMatrix
Block storage documentation needs to be updated to include X-IO volume driver
information in the volume drivers section.
http://docs.openstack.org/
References
==========
None

View File

@ -1,180 +0,0 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==========================================================================
Add QoS, media affinity and thin allocation support to X-IO volume driver
==========================================================================
https://blueprints.launchpad.net/cinder/+spec/xio-volume-driver-1-1
This blueprint covers enhancements of X-IO volume driver to add support for:
- QoS specs - add ability to pass down IOPSmin, IOPSmax and IOPSburst to
ISE storage system.
- Media affinity - add ability to pass down requested media type for volume.
Media types supported: Flash, CADP (hybrid) and HDD only.
- Add support for volume retype.
- Thin allocation support.
Problem description
===================
QoS support:
Allow the end user to specify IOPSmin, IOPSmax and IOPSburst for a volume.
Affinity support:
Allow the end user to specify media type for volume.
Volume retype support:
Allow the end user to change the volume type for an existing volume.
The volume will be updated to align with the new type accordingly.
Thin allocation support:
Allow the end user to specify that the volume should be thinly allocated.
Use Cases
=========
Proposed change
===============
Extra specs and QoS specs for the specified volume type will be parsed and
passed to the ISE storage system as part of the REST call to create volume.
Retype will use modify volume REST command to change volume attributes on ISE
volume.
Extra-specs:
Affinity:Type - specifies media type. Valid options: flash, cadp, hdd.
Example: To create volume type for flash media type.
cinder type-create flash Affinity:Type=flash
QoS-specs:
QoS:IOPSmax - specifies max IOPS.
QoS:IOPSmin - specifies min IOPS.
QoS:IOPSburst - specifies burst IOPS.
Alloc:Type - specifies allocation type. Valid options: thin, thick.
Alternatives
------------
None
Data model impact
-----------------
None. Changes are local to X-IO volume driver.
REST API impact
---------------
None
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
None. Existing cinderclient commands are used to create volume-types
that specifies QoS, affinity.
Performance Impact
------------------
None
Other deployer impact
---------------------
None. See above for new spec options supported.
Developer impact
----------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
richard-hedlind
Other contributors:
None
Work Items
----------
Affinity support:
Rework driver to support extra-specs in create_volume API.
Affinity attribute will be copied from source volume in case of clone.
Implementation complete.
QoS support:
Rework driver to support qos-specs in create_volume API. Implemented.
QoS attributes will be copied from source volume in case of clone.
Implementation complete.
Retype:
Add retype API to driver. API uses REST API modify volume to change attributes
for existing volume.
Implementation complete.
Thin allocation:
Pass down thin allocation flag if ISE storage array has support for it.
Implementation in progress.
Additional unit tests:
Add unit tests to test out APIs for affinity, qos, retype, thin.
Implementation in progress.
Dependencies
============
Dependent on approval of base version of X-IO volume driver:
https://blueprints.launchpad.net/cinder/+spec/xio-iscsi-fc-volume-driver
https://review.openstack.org/#/c/116186/
Testing
=======
Test using existing test infrastructure according to driver submission steps.
Tests will be added to test_xio.py to cover affinity, qos, retype and thin.
Documentation Impact
====================
Support Matrix needs to be updated to include X-IO support.
https://wiki.openstack.org/wiki/CinderSupportMatrix
Block storage documentation needs to be updated to include X-IO volume driver
information in the volume drivers section.
http://docs.openstack.org/
References
==========
None