Scaling Up: MySQL on NetApp

For many MySQL implementations scalability is a crucial requirement. Scaling on various dimensions: Size, Performance, Cost and DBA-Stress-Level.

While several factors impact the scalability of the database, underlying storage probably has the highest impact. You need to make sure that the storage will fill up the buffers fast enough to keep queries happy, and acknowledge the writes fast enough to keep transactions happy. You need to make sure that you can keep growing the available storage as your database grows - MySQL databases are particularly prone to collect more and more data. You also need to make sure that maintenance tasks such as backup, cloning, and application testing will scale gracefully with the size of your database.

Storage systems from NetApp are a great choice when designing for MySQL scalability. Administrators can expand storage on the go (using FlexVol) eliminating the need for over-provisioning. NetApp’s ability to create snapshots in a highly storage efficient manner is particularly important for scaling the maintenance tasks. You can quickly clone your MySQL database and use it to test and deploy new applications. Most importantly, this snapshot capability enables fast and scalable backups.

As I had indicated before, we have been working with the engineering team at NetApp to create highly scalable backup and archiving solutions for MySQL. Today we formally announced this joint work. Our MySQL backup product, Zmanda Recovery Manager (ZRM) for MySQL with NetApp SnapShot Manager, meets two crucial design goals for scaling MySQL backups: least impact on the live production applications and quick point-in-time recovery. Database snapshots created by ZRM can also act as source for NetApp SnapMirror software, creating a highly scalable disaster recovery solution.

With your MySQL databases stored on a NetApp filer and protected by Zmanda, you can scale up while reducing your stress level.

One Response to “Scaling Up: MySQL on NetApp”

  1. I am curious about the performance of NetApp with MySQL. There are potential pitfalls. First, MyISAM depends on fast read system calls as it does not cache data blocks. What is the speed difference between reading from the OS buffer cache and reading from NetApp? InnoDB has 1 thread for prefetch reads and 1 thread to flush dirty buffer pool pages. Dirty buffer page writes done to the OS buffer cache are fast. What is the difference between that and writing to NetApp?

    Can someone give the people at Percona a NetApp filer to provide some answers?

    The Google patch has support for multiple background IO threads. That might help when running with NetApp. We need to get InnoDB to provide that in their plugin.