3.5 KiB
Add a Quobyte Volume Driver in Nova
https://blueprints.launchpad.net/nova/+spec/quobyte-nova-driver
Add a Nova volume driver for the Quobyte Unified Storage Plane storage system, allowing to attach vm images residing in Quobyte USP to Nova instances. These images (raw, qcow2) are stored as files on a Quobyte USP volume.
Problem description
The Quobyte USP provides flexible access to file based storage. Nova can currently not attach Quobyte USP volumes, although a Cinder driver is currently in preparation.
Use Cases
Operators can deploy Quobyte USP storage for their Nova installations.
Project Priority
None
Proposed change
Add support for the Quobyte Unified Storage Plane to nova.virt.libvirt.volume.py by adding a new class LibvirtQuobyteVolumeDriver based on the LibvirtBaseVolumeDriver. Code structure will be similar to the GlusterFS class LibvirtGlusterfsVolumeDriver. The Driver will check mountpoint availability, run mountpoint preparations if required and mount the given Quobyte USP volume based on the configuration data (connection_info, etc.). Based on the local qemu 2.0.0+ availability the driver optimizes performance by adopting matching caching strategies. Other functionalities include volume disconnect (i.e. unmounting the Quobyte USP volume) and configuration data provisioning (get_config).
Alternatives
None
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
- Quobyte USP specific config options are
-
- quobyte_mount_point_base (Directory where the Quobyte volume is mounted on the compute node)
- quobyte_client_cfg (Path to a Quobyte Client configuration file)
Mounting Quobyte USP volumes is done as Nova user, not as root. The Nova user needs to be FUSE enabled, e.g. a member of the fuse group. The deployer has to install the Quobyte USP software.
Developer impact
None
Implementation
Assignee(s)
- Primary assignee:
- Other contributors:
Work Items
Implementation has been done and tested via Tempest. The code can be found at Change-Id: Ica1820031f1fc8b66d7ed7fe76ffeb985cf0ef35.
Dependencies
This change requires the corresponding Cinder driver is required, the respective code can be found at Change-Id: I7ca13e28b000d7a07c2baecd5454e50be4c9640b.
Testing
Currently no additional Tempest tests are required as the existing tests and test scenarios cover the volume usage functionalities provided by the driver. For the corresponding Cinder driver a 3rd party CI is in preparation that will also test the Nova driver. Unit tests have been created in conjunction with the existing driver code.
Documentation Impact
None
References
None