A common mistake made when laying out storage, be it in a SAN or in a server, is not fully thinking through the relative performance of the drives in the box. This is a problem that holds true of solid state drives (SSDs) as well as hard disk drives (HDDs). Someone with rudimentary math skills can easily figure out some relative performance numbers without getting into the depths of storage regarding head-thrashing queue depths, caching, stripes, etc.
Let’s assume we use some fairly safe industry numbers on drive performance:
7,200 RPM 3.5” drives – 75 IOPs
10,000 RPM 2.5” drives – 125 IOPs
15,000 RPM 2.5” drives – I’m not going to bother because they aren’t really getting new development and are pretty rare anymore.
SSD 2.5” drive – 20,000 IOPs. It’s still very hard to pin a number on SSDs. It’s not uncommon to see numbers quoted such as 90,000 or 250,000, but when you dig into where those numbers came from, they’re often a result of unrealistic tests. There are many variables in SSD performance: how many writes it has had, read/write ratio, how full it is, etc. Some can’t even do 10,000 IOPs on writes, while some can do 40,000. To play it safe, we’ll just go with 20,000. Before you put numbers into your own calculations, try to read reviews. Storagereview.com and anandtech.com both have good reviews that fully test drives.
Now let’s look at some drive sizes, starting with 7,200 RPM.
1TB, 2TB, 3TB, 4TB, 6TB, and 8TB: all of these disks perform roughly the same, even though they can be drastically larger. If you go read disk reviews, you’ll see regularly that some 7200 RPM perform a lot better than others due to some cool cache they have; however, in enterprise arrays, we normally disable disk cache to protect data in a power failure, which re-levels the playing field.
Let’s look at a quick table of relative performance:
|Speed||Size of disk (in GB)||IOPs||IOPs/GB|
This means that to your workload:
A 1TB 7200 RPM drive could be eight times faster than an 8TB one.
A 300 GB 10,000 RPM drive could be six times faster than an 1800TB one.
But even the lowest IOP/GB number for 10k (.069) is still about the same as the fastest number from a 7200 RPM drive. Remember, however, that the seek times on that 7200 RPM drive are going to be almost triple what a 10k drive is.
A 200 GB SSD could be 80 times faster than a big one, but there is a catch with SSDs. The larger an SSD is, the more chips are in it. With proper controllers, it could be faster with additional chips. Unfortunately, not everyone designs them well, so sometimes the controllers become a bottleneck. Again, SSDs require some serious research before purchase.
Learn more about the different factors that impact SSD performance and longevity.
So what’s the point of all of this? It’s easy when sizing a new server to think, “Oh, we’ve always run on 10k drives, so let’s just get the capacity we need in 10k and be done,” and not realizing that if you replace 24 300gb 10k drives with four 1.8tb 10k drives, you’re still getting the same capacity, but you’ve lowered your IOP/GB ratio by a factor of six. Or, let’s say we have some video storage running on 6 2TB drives and we upgrade to 6 8TB drives. Our capacity just went up by four, but the IOP/GB also went down by a factor of four, which means our workload may have run perfectly fine at the previous ratio (.038), but as we expand out and add more of the same to fill up the new storage, it might not run well at all at (.009). In other words, we might not be able to use all of the capacity we just bought, even though we’re running the same workload we always have.
In short, beware of just always going with the biggest, newest drives and think through what it does to your usable capacity.