Calculating IOPS is a great way to start a storage analysis, but cost also plays a major factor. Scott Lowe discusses the relationship between IOPS and cost.
In a previous column, I discussed ways to measure overall storage array performance as a function of IOPS (a commonly used metric) and introduced ways that RAID and disk choice can affect the IOPS value. In this post, I'll translate these tidbits into actionable pieces of information that might help when you research a storage array purchase or expansion.
One common way to express cost of storage is to produce a cost per gigabyte or terabyte figure. For example, if you purchased a SAN with 13 TB of RAW capacity for $39,000, you paid $3,000 per TB. For the cost conscious, that's not a bad metric, but performance shouldn't be ignored, lest a low price result in an unacceptable solution.
For many organizations, storage is the lifeblood, and cost is far from the driving factor; instead, raw performance is job one, and the storage array has to deliver the goods. Even so, cost should still be a factor. I doubt many companies are willing to simply throw money at a solution without at least some semblance of due diligence.
At first glance, choosing a speedy solution looks easy — after all, disks are rated for RPMs, with 7,200, 10K, and 15K RPM speeds being the most common for enterprise storage systems. There are also solid state disks to consider. SSDs provide performance that is orders of magnitude better than whirling disks of data but that performance comes at a price.
I'll build on my previous post and focus on random workloads rather than sequential workloads. We'll look at the cost per IOPS for each of the following:
- A 7200 RPM SATA II disk. An EMC AX-SS07-010 (for the EMC AX4). This is a 1 TB disk. Today's price for this disk is $438.57. These prices will change over time.
- A 10K RPM SAS disk. An EMC AX-SS10-400. A 10K RPM 400 GB SAS disk from EMC. Today's price is $673.30 (from an EMC February 2010 price list).
- A 15K RPM SAS disk. An EMC AX-SS15-450. A 15K RPM 450 GB SAS disk from EMC. Today's price is $717.48 (from an EMC February 2010 price list).
- A solid state disk. AN EMC CX-FC04-400. An EMC 400GB solid state disk (specs: 0.020 ms read, 0.020 ms write, no rotational latency). Price: $23,497.40 from this site. We'll use a value of 6,000 IOPS for this solid state disk.
As much as possible, I picked disks that you'd put into a real-world chassis rather than just grab random disks and compare them. I decided to use 1 TB SATA disks because the cost for lower capacity versions was within dollars of the 1 TB cost. Also, I'll round prices to the nearest ten dollars.
In my previous column, I provided a chart of average/typical IOPS values. For the sake of argument, we'll use the middle column of values from that article for IOPS per disk type, yielding:
- 7.2K RPM disk: 75
- 10K RPM disk: 125
- 15K RPM disk: 175
- Solid State Disk: 6,000
Let's start by creating a cost/TB matrix so we can get a look at what this storage is costing us in terms of raw TB. I'll assume that we'll fill up a 12 bay storage array with disks, so we'll compare one chassis full of 7200RPM SATA disks to another chassis full of 15K SAS disks and so on.
I'm not going to get into the chassis cost itself since that will probably be static unless you opt for SSDs, in which case some lower end chassis won't be available to you.
Here's where we land with the costs I've described so far:
Frankly, I was surprised to see the 450 GB 15K RPM disk solution cost less on a per TB basis than the 10K RPM solution. The disk is a little bigger, but it looks like the price differential is actually in favor of getting the slightly larger 15K RPM disk when you populate an entire chassis. This is good news!
Now let's look at cost per IOPS. What will that look like when we look at the total IOPS across a solution? Here's a chart designed to be relatively simplistic in order to show the progression from SATA up to SSD.
From an IOPS/dollar perspective, the typical 7200 RPM SATA disk provides just 0.17 IOPS for every dollar spent ($5.87/IOPS), while an SSD provides 0.255 IOPS per dollar spent ($3.92/IOPS) or about a 50% increase. The SSD solution is much more expensive from a capacity perspective — almost 134 times as expensive on a per TB basis.
These figures do not take RAID into account, so let's do another example. Let's assume that our service requires 2,500 IOPS of throughput and that we'll be using various RAID levels and different levels of Read/Write needs. Here is the formula used to determine total IOPS need based on a RAID level and read/write workload. (You can find full RAID IO penalty information in my previous column.)
(Total Workload IOPS * Percentage of workload that is read operations) + (Total Workload IOPS * Percentage of workload that is write operations * RAID IO Penalty
The table below shows you the total maximum IOPS need for six workloads. In all cases, the application has the same IOPS need, but there are different read/write mixes and RAID levels.
So, how many disks of each type does that work out to? The table below gives you a raw estimate of how many disks you need simply to meet the IOPS requirements of the workload. This particular table does not take RAID overhead into account (i.e., you need minimum numbers of disks for particular RAID levels, but the SSD column does not have enough disks, so the total number of disks you see is a very minimum number and would need to be increased just to meet minimum RAID requirements).
Let's bring this full circle and see how much a total solution would cost for each of the scenarios.
These scenarios show only the raw storage figures and don't include all of the other necessary components that make up a storage architecture, including the chassis, cables, switches, HBAs, etc.; the scenarios do show you that cheaper disks aren't necessarily cheaper when it comes to IOPS need. As you saw in the last table, for scenario 1, you'd spend almost $20,000 on enough 7200RPM disks to meet the same IOPS need satisfied by under $14,000 worth of 15K RPM disks. In fact, if IOPS is the main driver (as opposed to raw capacity), that 15K RPM solution will end up being even more affordable than the 7200RPM solution since you won't need as many chassis to house fewer 15K RPM disks.
SSD technology is still extremely expensive on a per-TB basis but less expensive on an IOPS/$ basis. Over time, SSD prices will come down and begin to look better to more organizations; but for now, pricing is simply out of reach unless you need extremely massive IOPS with relatively little capacity need.