This article can also be found in the Premium Editorial Download "Storage magazine: Slimmer storage: How data reduction systems work."
Download it now to read this article plus other related content.
All major storage vendors, as well as many startups, have added an SSD layer to their arrays and permit provisioning of hybrid storage pools. Adding even a small slice of solid-state storage to a pool can dramatically increase its I/O potential. Array-based SSD, however, is still limited by the network latency.
In response, a number of traditional storage vendors, such as EMC Corp. and NetApp Inc. plus startups like Proximal Data and VeloBit Inc., are offering server-based flash storage software. Software stitches all server flash and array SSD together (though technically speaking either technology can be deployed in both places). One important distinction is between true extended CPU cache and
The rapid adoption of server virtualization has concentrated and exponentially increased the required IOPS per physical server. Server-based flash is an ideal candidate for this use case. For example, NetApp’s recently announced Flash Accel is targeted specifically at VMware and Windows environments, and NetApp claims it can yield a 90% reduction in latency and an 80% improvement in IOPS.
Although both server- and array-based solid-state storage can deliver high IOPS rates, proper deployment is the key to optimizing them. Generally, array-based SSD can be thought of as “general purpose” in that it can improve I/O to all applications by increasing the array’s IOPS rate. Of course, it can be provisioned to specific applications (LUNs) as well. In any case, SSD in an array is well suited to random I/O workloads where large fetch rates benefit the cache hit rate.
Server-side flash is best suited to read-intensive applications. When it becomes necessary to read data from disk, network latency negates some of the SSD benefits and all is for naught if mechanical disk reads are required frequently.
Benefits of solid-state software
- Eliminates the I/O performance bottleneck common in virtual machine configurations.
- Maintains data consistency between server-based flash and array storage pools.
- Locates “hot” data in server flash and keeps it there.
- Manages and extends the life of solid-state storage.
- IOPS and latency improvements.
Thus, the central emphasis for solid-state software is getting the right data into flash and keeping it there. The key is predicting what will be the high-access data and retaining it in flash. In a nutshell, that’s the purpose of solid-state software. VeloBit’s HyperCache uses “content locality caching” that manages the contents of data blocks. HyperCache works with both server- and array-based solid-state storage. Proximal Data’s AutoCache software product uses what it terms “merit-based” allocation, in which data is cached based on I/O access patterns at the physical server level. In contrast, NetApp’s Flash Accel can be allocated to specific virtual machines (VMs) for targeted performance gains.
For most products then, the secret sauce is all about finding “hot” data using sophisticated algorithms. The effectiveness of these algorithms can be measured in the cache hit rate. Normal and good cache hit rates are in the 40% range, while 80% hit rates are phenomenal.
This was first published in October 2012