Overview

ioMemory Virtual Storage Layer (VSL)

With the addition of VSL, the Fusion ioMemory architecture now brings the full disruptive potential of solid state memory to the enterprise.

A HYBRID ARCHITECTURE

Fusion's VSL is a flash-based subsystem to accelerate today's enterprise-class operating systems. It virtualizes NAND flash arrays, combining key elements of the two pillars of modern operating systems: the I/O subsystem and the virtual memory subsystem.

VSL combines the advantages of a virtual memory architecture with a transactional file system approach on an array of NAND flash.

I/O SUBSYSTEM EMULATION

The I/O subsystem in today's operating systems includes a common interface for block-based applications, such as file systems, volume managers, and applications, to access persistent data (storage). VSL utilizes this block interface to present ioMemory modules (i.e. ioDrives) to the operating system as easily accessible block-based storage that existing file systems, volume managers, and applications can use just like a conventional disk.

VIRTUAL MEMORY SUBSYSTEM EMULATION

The virtual memory subsystem abstracts logical data addresses from their physical location by creating a directory of data locations. In modern OSs, a 64-bit virtual address space is used to organize and partition data used by the applications and users. Below this virtual address space lays the physical RAM, which has a much smaller address space. Operating systems and applications use this virtual interface to RAM (called the page table) to look up the physical location of data using a directory rather than requiring massive quantities of RAM just to satisfy each application's memory address space.

Similar to page tables in the host virtual memory subsystem, VSL virtualizes Flash via "block tables." VSL translates block requests to physical ioMemory addresses, also analogous to the virtual memory subsystem. It's important to note that these block tables are stored in host memory. This is a key advantage over other solid-state architectures (e.g. SSDs) that store block tables only in embedded RAM, where block tables are accessible only behind legacy storage protocols.

KEY BENEFITS OF VSL

  • Direct storage Access. With VSL, the CPU seamlessly interacts with ioMemory as though it were just another memory tier below DRAM. VSL provides direct access from each CPU core to the Flash media across the system bus, independent of other cores, and in parallel. This access results in extremely low latency, near linear performance scaling, and minimal performance degradation with mixed read/write workloads.

Without VSL, SSDs must serialize access through RAID controllers and use embedded processors to perform block mapping. As data is copied and re-copied through multiple layers of memory and embedded processors, the result is unnecessary context switching, queuing bottlenecks, and I/O storms, which all increase latency.

  • Future-Proofed Performance. Because VSL leverages powerful host CPU cores and memory for block mapping, ioMemory performance automatically improves as organizations upgrade host CPUs or memory. On the other hand, SSDs using embedded processors are fixed with the performance of that processor; they can only improve performance by completely replacing the SSD infrastructure.
  • Easy Upgrades. Because VSL runs as software on the host, it's very easy to upgrade for new features and performance. Furthermore, ioMemory's FPGA architecture even makes upgrading its controller logic easy (with one simple online firmware update), whereas RAID and disk controller logic upgrades for disk-based SSDs without VSL are tedious and time consuming (each RAID controller and each SSD has its own firmware, and some drives using ASICs can never be upgraded).
  • Improved Reliability. ioMemory's cut-through architecture greatly reduces failure points and simplifies interface translations that typically reduce reliability in traditional I/O subsystems. SSDs that emulate disks must add storage controllers, embedded processors, DRAM caches, and backup power sources. All of these differences increase complexity and decrease reliability as failure points proliferate throughout the array.

EXTENSIBILITY

In addition to seamless integration with the existing software and hardware landscape, VSL also provides a set of enhanced programmatic interfaces. These interfaces pave the way for an entirely new performance-optimized software ecosystem that has already begun to emerge. Examples of this new emerging software ecosystem include,

  • Optimized file systems. VSL enabled Princeton University to pioneer a new ioMemory file system with up to 150% performance improvements over the closest competing file system, ext3. To learn more, visit: http://www.usenix.org/events/fast10/tech/full_papers/josephson.pdf.
  • Flash-optimized Abstraction Layers. VSL's programmable virtualization layer enables ioMemory to represent itself to applications as a pool of virtual blocks. This opens the door to using smart caching algorithms that automate data movement across different caching layers, including host memory-L1, L2, L3, RAM, and ioMemory, as well as disk storage for archival. Similar to page tables in the host virtual memory subsystem, VSL virtualizes Flash via "block tables." VSL translates block requests to physical ioMemory addresses, also analogous to the virtual memory subsystem. It's important to note that these block tables are stored in host memory. This is a key advantage over other solid-state architectures (e.g. SSDs) that store block tables only in embedded RAM, where block tables are accessible only behind legacy storage protocols.
  • Volume Management. VSL also facilitates the development of a virtual pool of LUNs, which can aggregate volumes across servers, networks, and distributed architectures, in order to dynamically present virtual capacity as needed to any application at any time.
  • Applications-VSL Modules. Finally, flash-optimized applications can be written to use VSL directly to maximize performance, throughput, and efficiency. One could easily imagine database engines, hypervisors, messaging agents, trading applications, etc., that are easily flash-optimized by running on top of VSL.

CONCLUSION

VSL is the first and only hybrid OS subsystem that bridges the gap between the I/O and virtual memory subsystems. The results are products that combine memory-like performance with the persistence and capacity of traditional storage. Without VSL, NAND flash is destined to remain an expensive niche in a world built around slow disk infrastructure. With VSL and the ioMemory-architecture, innovators can now unlock the true potential of enterprise flash to achieve the highest levels of performance, efficiency, and savings that would otherwise be impossible.

Figure 1. VSL lays the foundation for an emerging ioMemory-optimized software ecosystem that is not possible with legacy I/O subsystems due to obstructions created by the RAID controller and embedded processors.

 

CONTACT

For more information, please call 801.424.5953 or visit http://www.fusionio.com