One of the most commonly needed components of any enterprise application is a solid database, and the development community behind OpenStack is working hard to make sure working with databases in the open source cloud is an easy, reliable, and performant experience.
Amrith Kumar of Tesora, Christopher Merz of NetApp, and Rob Young of Red Hat are giving a talk at the OpenStack Summit in Austin, TX later this month entitled Expanding DBaaS Workloads with OpenStack Trove and Manila which explores the integration between multiple OpenStack projects, Trove and Manila, and developers from several companies to make databases a first-class citizen and enterprise-ready application for OpenStack.
Amrith, Christopher, and Rob give us a preview of their talk in their collaborative responses to the following questions.
First, for the beginner, could you please give us a quick overview of Trove and Manila? Where do these projects fit into the OpenStack ecosystem?
Trove is the OpenStack Database-as-a-Service (DBaaS) project. It allows users to provision and manage the lifecycle of a number of different database technologies on compute, storage and networking resources provide by OpenStack. Currently, all persistent database storage is on Cinder, backups are sent to Swift, compute is provided by Nova, networking by Nova Networking or Neutron, identity and access management and service catalog services are provided by Keystone, and database images are stored on Glance.
Manila, the shared file systems program, enables a set of services for management of shared file systems in a multitenant cloud environment, similar to how block-based storage management is provided through Cinder. The project provides a vendor neutral management interface that allows for provisioning and attaching shared file systems such as NFS, CIFS, and more. This functionality is delivered via a public REST API, multiple backends, and a scheduler that performs resource assignment decisions.
Why does the backend matter for a database in the cloud? What problems does using Manila-based file shares instead of Cinder solve for a cloud administrator?
The data in databases is currently stored only on Cinder based volumes. By their very design, Cinder creates volumes that are attached only to a single compute (Nova) instance. Some database technologies however can benefit from data that is stored on shared file systems. Furthermore, Trove can provide additional and better services if it were able to exploit the advanced capabilities (like snapshots, consistency groups, and so on) of storage projects.
Integration of Manila into Trove allows enterprise organizations to consider OpenStack for their most critical and demanding database workloads. Putting storage protocol options in the hands of the customer helps architects and cloud admins focus on meeting operational business needs. Rather than forcing enterprises to change the way they operate in order to adopt OpenStack and Trove, the Manila integration allows enterprises to lower the barrier of entry by eliminating the need to adopt new storage protocols.
How can this implementation help provide for migration, backup, and other needs?
Intra-cloud migration is in flight for the Manila project, targeted for the Newton release of OpenStack. As more advanced capabilities are created, these will bubble up and can then be surfaced inside the context of Trove. Manila snapshot integration can also be a very powerful feature in the DBaaS project.
When was this work implemented, and what's the roadmap for moving forward?
Red Hat, Tesora and NetApp are all actively involved as upstream contributors to Trove, Manila and other OpenStack components. We work with other community contributors to move this and other problem-solving efforts along. Our plan for this work is to drive the integration over the next few release cycles, absorb and iterate on feedback and then deliver a GA ready solution.
What other recent advances in Trove and Manila do you think cloud operators will be excited about?
Tenant accessible API for replication in Manila is available in Mitaka and will be refined and hardened in Newton. Share migration is also being introduced, again targeting the Newton release. This will open up share migration across availability zones.
Trove now supports a dozen databases and supports many new capabilities related to how it interacts with other OpenStack projects. Trove now supports complex topologies like replication and clustering for many more databases. Trove enables the management of databases through their lifecycles and an important aspect of that is managing configuration groups which has now been extended to more databases.