This is the million-dollar question for a lot of organizations. Flash storage an exciting technology and it has gotten a lot of momentum in the last couple of years. The goal of the article is dive into the use cases for All-Flash storage and how to determine if you need All-Flash array or would a Hybrid array be a better option.
History of Flash
Before we dive into All-Flash and Hybrid storage discussion. Let’s take a brief look at the history of SSD and Flash technology. There is some confusion on the term Flash and SSD. Let’s start with the term SSD. SSD stands for Solid-State Hard Drives. SSDs are not composed of any moving part like a Hard-Disk Drive (HDD). HDDs have cylinder that spins and a head that moves up and down to read data on the cylinder. SSDs were originally DRAM based using capacitors to hold memory state. Then SSDs moved to Flash based technology using NAND technology to hold the memory state. Once SSDs moved to NAND technology, SSD and Flash became the same thing. Now all SSDs are Flash based so the terms can and will be used interchangeably.
Flash based SSD drives are broken into 4 categories. TLC (Three-Level Cell) are typically used for consumer equipment and not used in the enterprise. So we won’t spend a whole lot of time here. The bottom line is lack of performance and poor reliability, which is needed in the enterprise. SLC (Single Level Cell) are high performance drives and are typically the most costly. SLCs have one bit, which increase reliability (in theory) but the trade off is the decrease in capacity. MLC (Multi-Level Cell) have average performance with less reliability when compared to SLC drives. MLCs have two bits, which increases the capacity the higher ware and tear on the drive. eMLC (Enterprise Multi Level Cell) have better performance when compared to MLC drives, increased capacity and better price point when compared to SLC drives. In other words, eMLC bridges the gap between MLC and SLC drives giving you almost the best of both worlds.
Types of Flash Storage:
Now let’s elevate the topic and discuss the different options around flash technologies. I think it’s important to understand things from a high-level before getting into vendors and features.
All-Flash Arrays are entirely composed of SSDs and can deliver high performance for certain workloads. With the price of SSD drives dropping in the last several years. We have seen a huge jump in All-Flash storage arrays from both the big storage giants and the smaller startup players. The cost of SSDs is still higher than HDDs but some vendors have incorporated deduplication and compression in their sizing to bridge the gap. This controversial strategy has made the cost per-GB comparable with spinning drives. These two catalysts have lowered the barrier of entry for Flash and its now more assessable then ever to the smaller shops.
Hybrid-Arrays are a combination of HDD and SSD drives. They do a great job of increasing performance by using Flash but allowing for growth in capacity using HDD. This is achieved in a coupe of different ways leveraging a small amount of Flash for random reads (which is what flash is good at) and writing everything else to either SAS or SATA drives. This has been around for some time. Another method is to capture random read/writes in Flash and sequentially write the data to SATA. This method lowers the cost per GB even more because it removes the need for 10 or 15K SAS drives. Both of these are a great fit for most environments and can support a diverse workloads and requirements.
Traditional Arrays are composed entirely of HDDs and have been the staple for the industry for over 10 years. They still make sense for a lot of environments and can support variety of workloads. Both SAS and SATA still have a place in the industry. SAS is a great option for more performance demanding workloads and SATA is great for dense capacity needs. However, there are a couple of downsides we’re starting to see. The old way of sizing for performance is not the best option anymore. Increasing spindle to size for IOPS doesn’t scale very well. With larger capacity drives (up to 6TB for SATA and 1.2TB for SAS) you could potentially throw a lot of capacity at a workload in order to provide the spindle count needed to accommodate the application. The other challenge is the more spindles you through at an application the more latency you can introduce.
Flash, Performance, and Workload:
So here is the good stuff. What workloads benefit the most from flash storage or a flash hybrid mix? Typically, it’s small block, random I/O, and latency sensitive applications that will see the most benefit from any type of flash storage. Let’s break it down by application and workload.
Databases (SQL, Oracle, SAP HANA) – Databases are typically latency sensitive and very I/O intensive. They traditionally see a lot benefit from flash and will perform better. The challenge comes when their inefficiencies in the databases that are being masked by hardware. This ends up being a “kicking the can down the road” approach that will most likely come back at some point. Understanding poor database design and fixing these will help improve performance as well.
Server Virtualization (VMware, Hyper-V) – Virtualization workloads are small random I/O that will also benefit from Flash. The VM system .vmdk files are mostly read, while, data .vmdks are dependent on the application on the server.
Desktop Virtualization (Horizon View, Citrix XenDesktop) – Just like server virtualization, desktop virtualization is also highly random IO that tends to be bursty. Especially during boot storms and virus scanning operations.
Unstructured Data – Most file server data won’t really see a lot of benefit from Flash. This typically isn’t IO intensive.
Disk-to-Disk Backups – Typically backup data streams sequentially which isn’t a good play for Flash.
Know Your Workload:
How do you better understand your workload? There are tools out there can measure performance at both the storage array level and OS/Application Layer. Anytime you are monitoring performance you need to collect a baseline. The longer you can run a performance gather tool the more accurate your data will be. It’s a good idea to get months worth to capture any monthly business processes that might otherwise be missed. Once you get this data you evaluate your IOPs, Latency and Read/Write ratio and see if there is anyway to improve performance. Use this data in conjunction with what you are hearing from your users or customer. If you users or customers aren’t complaining about performance issues. Why make an investment in Flash storage? Sometime we tend to over architect our environments when there isn’t a need. This is why from a business perspective it’s important to understand your end-user experience coupled with any performance data your have. Decreasing latency in an environment that’s not experiencing any application latency issues isn’t a good business decision, especially, if it’s incurring additional cost.
In conclusion, we covered a broad spectrum of topics. We started with the history of SSDs and Flash Technology. Then we moved into the Hybrid and All-Flash ray overview and how the technologies are different. Finally, we discussed workloads that work best for flash and how to determine if it’s needed for you environment.