Veritas: libvirt volume driver for Veritas HyperScale¶
https://blueprints.launchpad.net/nova/+spec/veritas-hyperscale-libvirt-volume-driver
This implementation will provide a libvirt volume driver extension for Veritas HyperScale which is a software-only storage provider which leverages commodity direct-attached storage in a shared-nothing environment to give high performance storage for OpenStack virtual machines. This implementation will allow OpenStack virtual machines to use Veritas HyperScale storage for boot/data volumes and allow for storage live migration and other storage functions by simulating shared storage using shared-nothing direct attached storage.
Problem description¶
Veritas HyperScale is a storage provider for OpenStack based virtual machines. It is a software-only solution that extends OpenStack functionality to provide resilient, high performance storage to OpenStack virtual machines.
HyperScale will provide block storage to OpenStack VM to leverage commodity storage and get DAS performance combined with resiliency, quality of service and off-hosting services.
In order to support mounting such block volumes to Nova instances, a libvirt volume driver extension that supports HyperScale block storage is required. This blueprint proposes to add such a driver to Nova.
Use Cases¶
A user should be able to deploy a Nova virtual machine using HyperScale as the storage back-end by selecting a volume of type “hyperscale”.
A user should be able to attach and detach “hyperscale” type volumes to Nova virtual machines.
A user should be able to perform operations such as live migration, evacuation etc. on virtual machines which are backed by “hyperscale” type volumes.
Proposed change¶
A libvirt volume driver for Veritas HyperScale called vrtshyperscale.py will be added to the nova/virt/libvirt/volume directory. This module will call a new os-brick connector to manage connecting HyperScale volumes to, and disconnecting them from, Nova VMs.
An entry will be added to the list of libvirt volume drivers in nova/virt/libvirt/driver.py. This will direct volumes of ‘volume_driver’ type ‘veritas_hyperscale’ to the correct driver.
The new os-brick connector will be added to os_brick/initiator/connectors. It will call into a HyperScale CLI to provision and manage HyperScale volumes.
This change is accompanied by a cinder driver for Veritas HyperScale which is tracked in the following blueprint: https://blueprints.launchpad.net/cinder/+spec/veritas-hyperscale-cinder-driver
This software can be downloaded from the following location: https://www.veritas.com/product/software-defined-storage/hyperscale-for-openstack.html
Alternatives¶
None
Data model impact¶
None
REST API impact¶
None
Security impact¶
The os-brick connector makes calls to the HyperScale CLI as root. It does so via os-brick’s BaseLinuxConnector’s _execute() method which uses oslo.privsep for security.
Notifications impact¶
None
Other end user impact¶
End users will be able to create block volumes from Veritas HyperScale and use them in OpenStack.
Performance Impact¶
None
Other deployer impact¶
Veritas HyperScale software must be installed on OpenStack compute nodes. This provides the following components which are required to use this driver:
The HyperScale compute service
The HyperScale CLI
Developer impact¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
ketonne
- Other contributors:
None
Work Items¶
A volume driver extension for HyperScale storage
An entry in the driver.py file for the new HyperScale volume type
Dependencies¶
Cinder blueprint for Veritas HyperScale driver https://blueprints.launchpad.net/cinder/+spec/veritas-hyperscale-cinder-driver
Testing¶
If required, a 3rd party CI testing system will be used and its results submitted. The Cinder driver implementation is already being tested using such a system.
Documentation Impact¶
This needs to be documented as a new volume type in release notes.
References¶
Product Link: https://www.veritas.com/product/software-defined-storage/hyperscale-for-openstack.html