A leading all-flash storage company found its current and potential customers embracing OpenStack and approached Biarca to help make its flash arrays OpenStack compliant right away. Biarca proposed the implementation of a Cinder driver to provide end users a self-service, OpenStack-compliant API for configuring the company’s flash arrays. Biarca developed and tested a Cinder driver for Fiber Channel and iSCSI interfaces, went through the rigorous OpenStack review process and merged the driver into the then current release of OpenStack software. Biarca also created Cinder driver patches for prior releases to support end users running those releases.
To satisfy OpenStack requirements, Biarca setup a Continuous Integration (CI) environment with the client’s equipment and integrated it with the OpenStack CI testing process. Biarca manages this environment on an ongoing basis and handles all interactions with the OpenStack community.
Biarca also developed a Fuel plugin that helps to install the cinder drivers, and certified it for Mirantis’ distribution of OpenStack.
The Challenge
The client’s mandate to Biarca was: “Make our flash arrays OpenStack compliant so that they can work in OpenStack environments. Ensure that the solution is robust and the OpenStack development and release management process is completely followed. Provide management interfaces for ease of manageability.”
Customized Solution from Biarca
Biarca developed a Cinder driver for configuring the client’s flash arrays through Fiber Channel and iSCSI interfaces. The driver handles volume management and cloning, snapshot management, image creation/deletion, creation of volume from image/snapshot, and creation of image from volume. It also handles volume replication and oversubscription.
The above diagram represents the various cinder services/components involved in creating and managing cinder volumes. The cinder driver implements the various features for the corresponding storage array. A cinder volume-type is created and associated with this cinder driver (which will manage the storage array backend). When a user creates a volume with this volume-type (from Horizon dashboard or the cli), the cinder-scheduler invokes the cinder driver which creates the corresponding volume on the storage array backend. Further user actions on this volume are translated to corresponding function calls in the cinder driver.
In parallel to the development effort, Biarca developed a suite of comprehensive, automated tests for testing the Cinder driver. This test suite was used extensively for development testing and regression. A subset of this test suite was integrated into the Continuous Integration environment that was created to satisfy OpenStack requirements.
Biarca ran the code through OpenStack’s CI environment and submitted it for review. Biarca worked closely with the Cinder core review team in ensuring that the code met their requirements. The code was merged to the (then) latest OpenStack release.
To ensure that no new code submission breaks access to any vendor’s equipment, OpenStack requires all vendors to maintain a CI test setup that all submitted code is automatically tested on. Biarca developed the Continuous Integration environment for FC and iSCSI configurations and configured it to report to the OpenStack CI system. Biarca maintains the client’s CI setup on an ongoing basis and fields all OpenStack communication.
To enable the client’s flash arrays to be accessed through the Mirantis Fuel user interface, Biarca developed a Fuel-plugin and certified it for Mirantis distribution.
Customer Value Proposition
The benefits the client obtained from this project include:
- Existing customers can use the client’s flash arrays in their existing/future OpenStack environment.
- The client’s market has now expanded to include customers with OpenStack equipment.
- The client leveraged Biarca’s OpenStack expertise to enter the OpenStack market rapidly.
- Management of the CI environment has been offloaded from the client.
Contributors: Nikesh Mahalka, Sreedhar Varma