Merge "Add support for Cinder File IO"
This commit is contained in:
commit
58de5bfd6e
142
specs/pike/fileio_cinder.rst
Normal file
142
specs/pike/fileio_cinder.rst
Normal file
@ -0,0 +1,142 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
=========================
|
||||
File I/O Cinder Connector
|
||||
=========================
|
||||
|
||||
https://blueprints.launchpad.net/nova-powervm/+spec/file-io-cinder-connector
|
||||
|
||||
There are several Cinder drivers that support having the file system mounted
|
||||
locally and then connecting in to the VM as a volume (ex. GPFS, NFS, etc...).
|
||||
There is the ability to support this type of volume in PowerVM, if the user
|
||||
has mounted the file system to the NovaLink. This blueprint adds support to
|
||||
the PowerVM driver to support such Cinder volumes.
|
||||
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
The PowerVM driver supports Fibre Channel and iSCSI based volumes. It does not
|
||||
currently support volumes that are presented on a file system as files.
|
||||
|
||||
The recent release of PowerVM NovaLink has added support for this in the REST
|
||||
API. This blueprint looks to take advantage of that support.
|
||||
|
||||
|
||||
Use Cases
|
||||
---------
|
||||
|
||||
* As a user, I want to attach a volume that is backed by a file based Cinder
|
||||
volume (ex. NFS or GPFS).
|
||||
|
||||
* As a user, I want to detach a volume that is backed by a file based Cinder
|
||||
volume (ex. NFS or GPFS).
|
||||
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
Add nova_powervm/virt/powervm/volume/fileio.py. This would extend the existing
|
||||
volume drivers. It would store the LUN ID on the scsi bus.
|
||||
|
||||
This does not support traditional VIOS. Like the iSCSI change, it would
|
||||
require running through the NovaLink partition.
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None.
|
||||
|
||||
One may consider the permission of the file presented by Cinder. The Cinder
|
||||
driver's BDM will provide a path to a file. The hypervisor will map that file
|
||||
as the root user. So file permissions of the volume should not be a concern.
|
||||
This seems consistent with the other hypervisors utilizing these types of
|
||||
Cinder drivers.
|
||||
|
||||
End user impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Deployer impact
|
||||
---------------
|
||||
|
||||
Deployer must set up the backing Cinder driver and connect the file systems to
|
||||
the NovaLink partition in their environment.
|
||||
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
thorst
|
||||
|
||||
Other contributors:
|
||||
shyama
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* Create a nova-powervm fileio cinder volume connector. Create associated UT.
|
||||
|
||||
* Validate with the GPFS cinder backend.
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
* pypowervm 1.0.0.4 or higher
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Unit Testing is obvious.
|
||||
|
||||
Manual testing will be driven via connecting to a GPFS back-end.
|
||||
|
||||
CI environments will be evaluated to determine if there is a way to add this
|
||||
to the current CI infrastructure.
|
||||
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
None. Will update the nova-powervm dev-ref to reflect that 'file I/O drivers'
|
||||
are supported, but the support matrix doesn't go into the detail of what cinder
|
||||
drivers work with nova drivers.
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
* pypowervm add storage element to scsi mapping: https://github.com/powervm/pypowervm/blob/release/1.0.0.4/pypowervm/tasks/scsi_mapper.py#L49
|
||||
|
||||
* pypowervm file storage element: https://github.com/powervm/pypowervm/blob/release/1.0.0.4/pypowervm/wrappers/storage.py#L689
|
Loading…
Reference in New Issue
Block a user