OUR CUSTOMERS SAY IT BEST
First of all, I really appreciate the comments we have been getting from our customers using the product in Preview. Here is one from Greg Arnette, the CTO of Sonian Inc.:
“Based on our internal benchmarks, we’ve been impressed with the ability of Cloud Block Storage to steadily perform at a high level. For our customers, the capacity to effectively archive large amounts of email data is critical to their business. As a result, we look for storage solutions that give us maximum agility, scalability and enterprise readiness. We are excited that Rackspace is now providing a new block storage alternative service for running our large scale email archiving deployments.”
Thank you Greg!
Now, let’s talk about the service itself.
1. RELIABLE PERFORMANCE FOR YOUR APPLICATIONS
The main piece of feedback we heard from you is that you are looking for a service that delivers consistent and reliable performance. Inconsistent performance has been a stumbling block for many block storage services. We heard numerous stories of customers using existing block storage solutions that have very erratic and unpredictable performance, with applications sometimes “crawling to a halt” for no apparent reason. We decided to make consistent performance the focus for our engineering efforts. I feel that the tests confirm our design goals. For example, in our tests we were able to obtain five times to six times better performance in our SSD volumes when compared with Amazon Provisioned IOPS. In the case of Standard volumes we also see a drastic reduction in variability of latency. See the performance section below.
2. CHOICE BETWEEN STANDARD VOLUMES OR SSD VOLUMES FOR HIGHER PERFORMANCE
Another thing we consistently heard from you when we were designing the service is that you want the flexibility to choose between two very distinct scenarios that require different performance and price characteristics of storage, including the option to combine them for the same application.
On one hand, you need large amounts of “everyday” storage. The Standard volumes of Cloud Block Storage target those applications that require the traditional performance of standard drives, implementing file systems to access large volumes of files, archiving solutions, or serve small to medium size websites. A very common use case is the need to scale storage without scaling compute nodes.
The second scenario we heard of is when you require even higher levels of performance than what you can get from standard drives. Here, our SSD volumes helpthose of you serving more demanding applications that require the performance characteristics of Solid State Drives (SSD) such as self-managed relational databases, MongoDB, Cassandra, indexing and caching.
3. SIMPLE PRICING MEANS NEVER HAVING TO PAY FOR I/O
The third constant theme from our talks with you is that you want simple pricing. It seems from your input that pricing rules from some other vendors look like the Tax Code of the United States (or from any other country for that matter). Well, Cloud Block Storage comes with FREE I/O. You read that right: it’s all you can eat, and you will pay ZERO in I/O! You pay only for the storage of the volumes you provision.
This table summarizes the differences between the two services:
One important thing to mention is that you can use both Standard and SSD volumes regardless of the size of your server instance. With Rackspace, you don’t have to buy the larger sizes of servers just to use the SSD volumes: the services work with whichever size of Cloud Server you have. This gives you a lot more flexibility to deal with I/O bound vs. CPU bound applications. Also, note that both types of volumes start at 100GB and that Cloud Block Storage is available for our Cloud Server next generation customers (Cloud Servers based by OpenStack).
DON’T LET YOUR DATA BE STUCK IN A PROPRIETARY ARCHITECTURE
Deciding where to store your data is not a decision that you should take lightly. You wouldn’t want to get stuck and be held hostage by a proprietary architecture. Cloud Block Storage is built on OpenStack as part of the broader community. For example, our provisioning engine is built on the OpenStack Cinder project, and our snapshots are saved to Cloud Files, based on the OpenStack Swift project. All of this means that you can stay with Rackspace because you want to, not because you have to.
Let’s now discuss the performance we are seeing in the SSD and Standard volumes. Now, remember that in performance, the only benchmark that matters is that of your own application. So don’t assume that you will get exactly these same results. At the end of this blog there is a description of how we tested the service. I always recommend that you create your own tests and benchmarks that are specific to the application that you are going to deploy.
PERFORMANCE: SSD volumes tested 5x to 6x faster than Amazon Provisioned IOPS
Let’s discuss our SSD volumes. The first thing we wanted to see was their performance compared to EBS Provisioned IOPS (1000 IOPS). Here we saw a performance improvement of five times for WRITES and six times for READS.
In throughput, more is better, but when measuring latency, the opposite is true. We saw that Cloud Block Storage SSD volumes had latency that was about 85 percent lower in both the READ and WRITE scenarios than EBS Provisioned IOPS.
Variability of Cloud Block Storage Standard volumes is up to 99 percent less than EBS Standard volumes
Next, let’s discuss Cloud Block Storage Standard volumes. Here, we wanted to test the performance consistency, or its opposite, the variability. There are a few ways to measure variability, and they all have their own weaknesses and strengths, applicability based on distribution, etc. We could have used Standard Deviation to calculate variability, for example, but the Standard Deviation does not account for the fact that some variability is “good” and some is “bad.” For example, if the latency falls below a certain level, then that is “good” (because lower latency means faster apps) but if it goes above a certain level then that is “bad.” To account for only the “bad” variability we used the Semi Standard Deviation, which is calculated just like the Standard Deviation (square root of average square differences from mean) but it only uses the points up to a certain threshold. In our case, we define this threshold as the average.
As you can see below, in the case of WRITE, Cloud Block Storage Standard had 30 percent and 89 percent less “bad” variability than each of the Standard volumes from EBS. In the case of the READ scenario, the Standard volume of Cloud Block Storage had up to 99 percent less variability than the EBS Standard volumes we tested.
In terms of performance of our Standard volumes, in synchronous read scenarios Cloud Block Storage performed 1.2 times to 1.6 times faster than EBS Standard. In the synchronous write scenario, there was a significant gap of about 11.5MB/s between the two EBS Standard volumes we provisioned, and Cloud Block Storage throughput fell between those two levels.
COMPARING CLOUD BLOCK STORAGE VOLUMES: SSD delivered 11 times more IOPS (read) than Cloud Block Storage Standard volumes
In our test, in synchronous write scenarios, our SSD volumes delivered the equivalent of four times the IOPS of our Standard volumes (about 6300 IOPS). But in the synchronous read scenario our SSD volumes delivered the equivalent of more than 12 times the IOPS of our Standard volumes (about 7000 IOPS).
One of the things I like about having this level of performance and consistency for Cloud Block Storage volumes is that it is less likely that you will need to complicate your architecture with RAID just to get more performance since you have a higher IOPS ceiling.
ADDITIONAL DETAILS ABOUT CLOUD BLOCK STORAGE
Cloud Block Storage is available immediately for Rackspace accounts based in the U.S. and UK in all regions. You can interact with the service via the Control Panel, the API or the command line.
You can attach multiple volumes to your Cloud Server, and you can mix SSD or Standard volumes. Every volume can be up to 1TB, but you can add multiple volumes up to the limit supported by the hypervisor infrastructure. Obviously, you can create snapshots of your volumes in Cloud Files for the usual fees (currently at $0.10 / GB / month, which is 20 percent less expensive than other alternatives).
If you want to give Cloud Block Storage a try, just go to your Cloud Control Panel, provision a volume, and attach it to your Cloud Server. It’s really simple. Then you can do your usual in terms of using your favorite file system or configuring your database. We welcome your feedback. Let us know how things are going with the apps you build on the Rackspace Cloud.
We hired an independent third party company to help us benchmark the performance of Cloud Block Storage (both Standard and SSD volumes) with Amazon EBS Standard Volumes and Provisioned IOPS (1000 IOPS) volumes. We will write more and in more detail about this later, but in summary, we wanted to see a common scenario, and chose an EXT4 file system running on CentOS, both under synchronous READ and WRITE loads. Volumes used 4k block sizes, and we did READ and WRITE operations of 16k. The Cloud Servers we used were the 15GB RAM instances with 6 vCPUs, with 500GB SSD (“RAX-SSD”) and Standard volumes (“RAX-STD”). For Amazon we used m1.xlarge EBS optimized instance with 15GB RAM and 8 EC2 Compute Units with 500GB EBS Standard volumes and EBS Provisioned IOPS volume with 1000 IOPS. For Amazon EBS Standard, we created two volumes (“West-2a” and “West-2c”). We used Sysbench to execute the tests, and R and Excel to get charts and calculations. All values mentioned above refer to the synchronous I/O tests at 16 concurrent threads. We will talk about how we ran the test in the next installment of this blog.