OLTP-Level Performance Using Seagate
NVMe SSDs with MySQL and Ceph
Technology Paper
Authored by:
Rick Stehno
Introduction
For quite some time, the Ceph community has wanted to apply Ceph as the back-end storage system for the MySQL database in a manner that ensures optimum performance in database online transactional processing (OLTP). This has been a challenge, however,
as Ceph was not initially designed to provide that level of performance for database applications. Ceph has the capability to provide block and file access from applications, but the underlying Ceph cluster is an object store. Ceph also provides data replication between cluster nodes, and to ensure this replication process is successful, it performs the process synchronously rather than semi-synchronously or asynchronously which can introduce performance inefficiencies.
This document explores the possibility of using a Ceph cluster to provide OLTPlevel performance for database applications. In doing so, it describes a Ceph-cluster implementation that incorporates Seagate NVMe solid state drives (SSDs) in existing stand-alone MySQL databases and compares the performances of all of them. As the paper will show, taking advantage of the Ceph cluster's scalability, the resulting configurations continue to realize the OLTP performance that the MySQL databases were delivering prior to the implementation.
Major Components
This section describes the following major components of the system:
" MySQL relational database
" Ceph software defined storage (SDS)
" Ceph monitors
" Seagate NVMe SSD storage technology
" Block storage
MySQL Relational Database
MySQL is the most popular and widely used open-source database in the world. Featurerich in performance, scalability and reliability, MySQL also sports a small footprint, which contributes to its success in the embedded database market.
Ceph Software Defined Storage
Ceph is an open source software defined storage (SDS) application designed to provide scalable object, block and file system storage to clients. Ceph introduced new methods for
OLTP-Level Performance Using Seagate NVMe
SSDs with MySQL and Ceph storing data over the cluster. It is massively scalable and distributed, and it runs on commodity hardware. When configured properly, the
Ceph cluster has no single point of failure. The Ceph cluster includes the following components:
" Object Storage Daemon (OSD):
The OSD stores the data and handles data replication, recovery, and rebalancing. Ceph requires at least two OSDs to achieve a healthy state when replication is enabled, for example when setting replica to 2.
" Controlled Replication Under Scalable Hashing (CRUSH):
CRUSH describes the storage map of the cluster, including device locations within the cluster and rule sets that determine how Ceph will store the data. The CRUSH map can be configured to tier data, for example, creating a pool of data on NVMe devices for peak performance and/or for creating HDD pools for performance and/or archiving. In the Ceph cluster used for this paper, multiple pools were defined over various hard disk drives (HDDs) and NVMe SSDs, with one pool created using NVMe for the MySQL database