Veritas: libvirt volume driver for Veritas HyperScale¶
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.
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.
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.
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
Data model impact¶
REST API 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.
Other end user impact¶
End users will be able to create block volumes from Veritas HyperScale and use them in OpenStack.
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
- Primary assignee:
- Other contributors:
A volume driver extension for HyperScale storage
An entry in the driver.py file for the new HyperScale volume type
Cinder blueprint for Veritas HyperScale driver https://blueprints.launchpad.net/cinder/+spec/veritas-hyperscale-cinder-driver
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.
This needs to be documented as a new volume type in release notes.