Best Practice Document: Getting Great Storage Performance in the Cloud

Zadara Storage is honored to be a member of The Cloud Advisory Council and to publish a best practices document on ‘Getting Great Storage Performance in the Cloud‘  in an effort to help define the next generation of cloud architecture.


The Cloud Advisory Council provides best practices that, through experience and research, have shown to improve the application productivity of cloud services. The Cloud Advisory Council is encouraging ISV’s and users to provide their feedback and suggest other applications or cloud solutions for future best practices.

Last October, Zadara Storage CEO Nelson Nahum wrote about storage performance as one of the main challenges for applications in the cloud.  We received [many] additional questions and feedback, and so when thinking about Best Cloud Practices, we wanted to take this one step further. We expanded the article to show how each selection of our three flexible storage components affects performance [level] and costs. 

You can read the document below or download the PDF here: Getting Great Storage Performance in the Cloud 

Getting Great Storage Performance in the Cloud
By Nelson Nahum
CEO and Co-founder Zadara Storage, Inc.

The following best practices document is provided as courtesy of the Cloud Advisory Council.

It is no secret that storage performance is one of the main challenges for applications in the cloud. The storage performance problem in the cloud has multiple facets. It is not just low vs. high performance; it’s also the fact that performance varies over time, and one customer can impact the performance of others. There is also the issue of storage performance monitoring. How does one know if an application is running slowly because of storage performance, or because of other factors like networking, IO concurrency, latencies, etc.?

The main issue is that none of the current storage systems and associated software were designed with the cloud in mind. Even high-end SAN storage arrays were designed for a single tenant, a single manager, the storage admin who knows what everybody else is doing, the super guru who knows how to interpret iostat! Aside from the lack of multi-tenancy isolation, the scalability is not even close to what is needed in the cloud. And worse yet is the inability to accommodate different types of customers with a single system. As a result, cloud providers start with the lowest common denominator.

All these reasons result in a cloud environment into which it is hard to move classical IT applications that need low latency. Instead, the forms of databases and applications that are more popular in the cloud are the ones that can live with long latencies, a low rate of IOPS, and inconsistencies. But the problems are solvable with a new storage architecture: a storage architecture that is not based on “scale-out,” but is designed to host multiple tenants, each with their own needs.

In this storage architecture, each user—at least, the type of user who needs consistency and performance—has dedicated resources: dedicated drives, dedicated cache, dedicated cores, so that IOPS are guaranteed as if the user had a private SAN array in his or her own data center. And just like in a private environment, each user has access to performance data (for monitoring) and a management console (for control over and tuning of the environment). This new architecture allows for different amounts of resources to be allocated to different users, depending on their needs. And, this archi- tecture meters these resources in order to charge customers according to their actual usage.

This is what Zadara Storage has done! We took the architecture of cloud computing and applied it to cloud block storage, creating a very scalable, highly reliable system, where each tenant controls their own storage. In addition to that, we worked to provide on-demand resource allocation per customer (i.e., CPU, memory, networking and storage drives), eliminating the noisy neighbor problem. Our Virtual Private Storage Array (or, for short, VPSA) storage service in the cloud performs and behaves like traditional SAN and NAS storage in the data center; it has the reliability and features of enterprise storage with the elasticity and pay-per-use of the cloud.

As mentioned before, VPSA performance is highly consistent over time, thanks to dedicated resources. The level of performance depends on three types of selection which every user makes (and can, at any time, change) via an online interface: the mix of drives, the RAID level and the Zadara Engine. 

First, select the mix of drives. Different drives have different IOPS and throughput, and are optimized for different access patterns. For example, Zadara customers at Amazon Web Services (AWS) can choose among SSDs, 10,000 RPM SAS drives and 7,200 RPM drives. The SSDs provide the highest random IOPS, especially random reads. In contrast, rotating drives excel at sequential IO, and in particular are hard to beat when it comes to sequential writes. And, of course, they cost less per unit of storage capacity.

Second, select the RAID level, which protects against drive failures but also affects performance in two ways. One is striping. Striping allows one to aggregate multiple drives’ capacity and performance such that the result is a group whose performance is the sum of performance of all its member drives. The total capacity is the sum of drives minus the RAID overhead, which varies by RAID type. The second effect is performance overhead. Certain RAID algorithms (e.g., RAID-6) provide a high level of protection against drive failure but require more processing power than other RAID levels (e.g., RAID-1) and therefore incur a certain performance hit vs. the simpler algorithms. Zadara users get to choose their optimal RAID level based on performance, capacity utilization and protection.

Third, select the Zadara Engine, which determines the peak performance available. There are four sizes of Zadara Engines: Baby, Basic, Boost and Blazing. Each engine doubles the performance of the previous engine, which means that a Blazing Zadara Engine is eight times the performance of a Baby Zadara Engine. Better yet, one can always upgrade or downgrade among these engines, seamlessly and without disrupting the applications running on top of Zadara Storage. For example, using our smallest (i.e., Baby) Zadara Engine, with 4 SSDs and small, 100% random IOs (which are the most difficult in terms of performance), we have shown performance at AWS of about 15,000 IOPS.

In summary, Zadara Storage Virtual Private Storage Arrays not only solve the storage performance challenges of the cloud, they do so elegantly and flexibly, not to mention affordably.

Share This Post

More To Explore