Using Flash Strategically in Data Storage Solutions
Organizations often invest heavily in fast servers only to discover they’re constrained by data storage. Fortunately for them, flash allows organizations to capture the full value from their server investment.
For example, Solid state disk (SSD) is a form of flash memory. This non-volatile memory retains data even when powered off. SSDs use flash cells with a storage interface such as FC, SATA or SAS interconnect. There are two general uses for flash-based SSD in the enterprise IT stack today:
- A caching tier
- A storage tier
Today’s controllers can only handle a limited amount of HDDs before they’re saturated. Similarly, flash used as a storage tier limits current storage controllers—several flash drives as a storage partition will easily over saturate current controllers’ bandwidth. Consequently, one of the most strategic, current uses for flash is as a storage tier sitting directly on computers PCI buses.
Using flash as a caching tier offers far more efficiency and flexibility. Sadly, you can only use flash as a caching tier for servers with an advanced file system or caching appliance designed for it. Vendors are adjusting file systems to work better with current SSDs, and it’s possible SSDs will evolve to behave more like hard drives, eliminating the need to modify file systems altogether. At the moment, though, you’ll need to tweak file systems to take advantage of the unique features of SSDs.
Thankfully, the Linux 2.6.30 kernel is packed with next-generation file systems including NILFS— a new log-structured file system showing great promise with SSD drives. NILFS treats the storage as a circular buffer in which new blocks are always written to the end. Because all writes go to a contiguous set of blocks, with reads dominated by the caching tier, these file systems tend to do very well on benchmarks that measure write performance.
The ZFS file system from Oracle/Sun Microsystems also reveals the advantages of flash. ZFS automatically uses flash for both writes and reads using specific flash pools. It can determine data access patterns and store frequently accessed data in its flash-based, level-2 read cache (L2ARC). Plus, it leverages writes by bundling small write IOs into a sequential “lazy” contiguous write. For sequential writes, ZFS utilizes the inherent burst bandwidth of a HDD.
In order to realize the dramatic improvements flash technology offers, system architects must consider two important constraints:
- Physical access to flash is generally restricted to a single host system (unless it is being shared via an exported NFS volume).
- Lightly-threaded write IO may be slower than traditional NVRAM-based storage systems.
For example, writes to database redo log files that are stored in flash memory require more time than those of traditional NVRAM-based systems — a consequence of the write service time characteristics of flash devices. Therefore, flash is better suited for use in a hybrid storage pool (mix of flash and traditional HDD).
Several vendors have applied solid state technology to create caching modules as an alternative to SSDs for networked storage systems. The use of flash as caching tiers requires no administration and— because it ultimately reduces the number of disk drives needed in a storage system— it saves power, cooling, and data center space.
In fact, a storage array will improve its throughput by nearly 80% and reduce the response time by 30% just by adding 1TB of flash to an existing 80 TB high-performance HDD storage pool. You’d have to add 140 additional high-performance HDDs to even come close to the effects of this cache. You’d also have to add 120% more cost to the solution and find 125% more rack space, not to mention the extra power you’d need.
Of course, HDD isn’t going away altogether, at least not anytime soon. You should still use low-cost, slower SATA HDD for the bulk of your mass storage needs. But rather than thinking of flash as an expensive technology on a cost-per-gigabyte basis, you can consider flash a bargain in terms of cost-per-IOPS.
When required, flash delivers high performance cost-efficiently. Flash offers organizations the highest possible performance from their servers, effectively capturing the full return on their server investment. So wherever performance is an issue, consider using flash as a way to improve performance while respecting your company’s budget.
How are you using flash in your IT environment? Is it playing a role in your data storage solutions? We’d love to hear from you.