Building MySQL DBaaS on OpenStack And Ceph CloudsA cloud-based database-as-a-service offering can relieve the overwhelming burden of supporting today's scale of computing with yesterday's architectures.
Enterprises hosting hundreds or thousands of MySQL or MariaDB databases seek the benefits of cloud storage to dramatically improve their operational efficiency. Compared to hosting this quantity of databases on traditional MySQL clusters, the benefits of cloud storage such as dynamic volume resizing and elastic provisioning from a global storage pool provide big efficiency improvements. For proprietary public cloud customers, this is illustrated by the growing use of services such as RDS from Amazon Web Services.
For private clouds, architects who have selected OpenStack as the “operating system” for their software-defined data centers are increasingly asked to provide DBaaS (database as a service), comparable to AWS RDS, for their constituents. The popularity of LAMP stack-based applications on OpenStack further amplifies the demand for providing DBaaS services to these customers, either internal or external. The April 2016 OpenStack.org survey notes that a full 70% of custom applications running on OpenStack are built on the LAMP stack. The “M” in LAMP is commonly defined as MySQL, although its compatible cousin, MariaDB, is often a substitute. Thus, cloud architects in large enterprises frequently need to provide their customers with the ability for on-demand provisioning of tens, hundreds, or thousands of database instances.
With a properly configured OpenStack deployment and Red Hat Ceph storage backend, DBaaS clients merely go to a self-service interface and request the number and configuration of databases they require. OpenStack dynamically provisions the required storage capacity from the appropriate Ceph storage pool. No more manual placement of these database instances on MySQL clusters of various shapes and sizes. This manual exercise was a bit like playing the old Tetris game, trying to fit new database instances into fixed-sized clusters, followed by moving or rearranging them to new clusters when they outgrew available capacity.
Optimized DBaaS Storage
In an environment where thousands of databases are constantly being instantiated, populated to a larger scale, mutated, cloned, and repurposed, storage is at the foundation of success. Here, too, the OpenStack community provides the required guidance.
Ceph is the de facto storage for OpenStack, and it is used to manage storage in nearly 60% of OpenStack deployments. It has the distinct advantage of being able to manage object, block, and shared file system storage. Many cloud architects immediately associate Ceph with archive-level content and scale-out storage for unstructured data at petabyte scale, and indeed Ceph is well-suited for such tasks.
However, recent joint Red Hat testing with database consulting experts at Percona has demonstrated that Ceph storage clusters can also handle the high IOPS (input/output operations per second) workload requirements of transactional MySQL deployments, the de facto database for custom apps running in OpenStack. In fact, Red Hat testing revealed that it is possible to match, and in some cases surpass, the performance of the highest performing class of AWS EBS storage -- provisioned IOPS -- dependent on provisioned capacity.
A Realistic View
It may be some time before an enterprise feels comfortable migrating its core financial databases to a cloud environment. But for the hundreds or thousands of utility databases in use by today’s custom applications, a cloud-based DBaaS offering can relieve the overwhelming burden of supporting today’s scale of computing with yesterday’s architectures.
Brent Compton, Red Hat Director of Storage and Big Data Ecosystem, manages the Red Hat Storage Ecosystem Program, including optimization with complementary Red Hat and partner-based solutions. His experience includes executive product management at Fusion IO and Micromuse. He ... View Full Bio
We welcome your comments on this topic on our social media channels, or [contact us directly]
with questions about the site.