Posted by: Eric Slack
Caching, Eric Slack, solid-state storage, SSDs, Storage Channel
This blog is Part 4 of a series on the top 10% of products and technologies reviewed by Storage Switzerland in 2011. See Part 4 here.
This last entry in the top 10% list of storage-related technologies from 2011 will be devoted to solid-state storage devices. I’m going to refer to this broad collection of NAND flash storage products as SSDs, although that term technically stands for “solid-state drives.” SSDs continued to grow as a segment during 2011, with additional vendors, products, customers and use cases. The links in this blog go to write-ups we did from briefings at the Flash Memory Summit, VMworld and SNW this past year.
As the name suggests, SSDs originally appeared as plug replacements for spinning disk drives. Flash memory chips in disk drive packages were put into existing disk array chassis by all of the major storage vendors. Users also put SSDs into servers to replace boot drives or to provide a local performance boost. But the area we’ve seen the most growth is at the board level, especially PCIe-based products and one innovative implementation using DIMM modules.
Putting flash into the server is appealing because it moves this fast storage area closer to the action (the CPU), important for performance, and can be easier to implement since it’s not shared between multiple servers. It also eliminates potential network problems. Finally, it’s ideal for caching (see below), the “killer app” for implementing flash as a storage product.
Cache is king
Placement is the question that users have to ask when looking at SSDs. Fast storage only benefits data that’s actually on it (duh), and flash is still expensive enough to keep it in relatively short supply in the storage infrastructure (another duh). So the method for getting the most appropriate data onto the flash device and keeping it there is a key determinant of the performance benefit users will see.
Tiering’s focus on larger blocks of data and less frequent moves fits the disk drive industry it was developed for. Caching, on the other hand, involves smaller data objects and much faster movement, more fitting of flash memory. You could say that tiering is the way humans would tackle the data placement issue and caching is how computers would do it.
Caching is a software process that can be run almost anywhere there are CPU cycles and available memory. Currently available products run caching on PCIe cards, in the host server, in the storage array, on the array controller card or (obviously) in the controller of a dedicated caching appliance that’s connected to the network.
Read caching refers to the practice of copying data objects to a faster storage area with the intent of making them available for read operations in the shortest time possible. Write caching serves to stage data from a write operation on faster storage and acknowledge the write so that the application can move on instead of waiting for a disk system to complete the write.
Read caching represents the low-hanging fruit with regard to performance impact, since most applications do more reads than writes. It’s also much easier to implement, which helps explain why every caching product we’ve looked at offers read caching, and far fewer do write caching. That said, write operations are significantly slower than reads, so the potential for performance improvement is there.
Caching is often implemented within an SSD solution, and I’d expect that trend to continue. At some point caching will probably become like deduplication, thin provisioning or one of the other embedded storage services. An understanding of how it works and what options are available will be important as part of the evaluation process for solid-state storage.
Follow me on Twitter: EricSSwiss