SSD Technology Trends
The technology goal and approach at Enmotus was simple: enable SSDs to be easily added to today's computer and storage systems with as little disruption as possible, and without sacrificing any of the SSD's performance or longevity. The focus is on Intel compatible computers and open storage systems, both of which utilize off the shelf operating systems.
Since the company was founded the focus has been on developing a novel approach to SSD-HDD hybridization that has since expanded to include SSD-SSD hybridization also. Rather than attempt to adapt classic caching techniques from the CPU and random access worlds, the team focused on how data is actually used in most computer systems, how storage systems are evolving and changing, and finally how tomorrows high performance SSDs can maintain their maximum system level performance without sacrificing usable capacity. This cumulated in the development of two key pieces of technology: Storage MicroVirtualization™ and MicroTiering™.
Storage virtualization in the big iron storage world was born out of the need to adapt and change to rapid increases in storage capacity and performance while retaining maximum - preferably 100% - system uptime. This meant that storage, usually at appliance or disk array level, could be added, moved or replaced without the system being aware that a virtual user volume was undergoing a transition or change. The big change was that users or applications no longer talked directly to a storage device or devices, but to a virtualization layer that mapped host logical requests of a virtual storage device into physical IO requests corresponding to specific device. This allowed service providers especially to continue to provide 24/7/365 level operation and still add to or upgrade their storage without disrupting service.
The Enmotus Storage MicroVirtualization engine mimics the same approach, but instead focuses on device level changes, i.e. single disks such as SSDs and HDDs can be pooled and virtualized into a single large volume to the host. This allows the host to see everything as one large disk instead of two or more disks.
The term used by Enmotus to describe the automated movement and manipulation of the virtual and physical data pages is MicroTiering. This is to differentiate it from macro or "big iron" tiering as described earlier. In its simplest form, tiering provides similar benefits to its much simpler caching cousins, with the exception that the SSD tier is completely visible to the end user and not hidden. More importantly, host accesses are allowed to proceed directly to the SSD tier as though it was primary storage using the high speed virtual mapping engine, for reads and writes. Furthermore, it is able to intelligently place host data anywhere in the virtual mapped pages using a comprehensive set of user programmable policies, some examples of which are shown in table 1.
The data migration engine keeps detailed statistics of each virtual page in the user volume, allowing it to determine if and when any pages should be moved. More often than not, this is based on policy settings that are automatically set or customized by the user. Once a threshold for a page is achieved, the page is then scheduled for a promotion to the faster tier and moved in real-time. One key advantage of the MicroTiering technology is its ability to use all of the capacity of the fast tier as user storage. This is accomplished by a parallel monitoring process that keeps track of the least used pages on the fast tier allowing the promoted pages to be exchanged i.e. the low activity pages instantly get demoted to make room. This all happens without the host being aware that the physical location of the data has been changed.
Another advantage of the MicroTiering technology is that the process of scheduling and promoting-demoting data pages continues in host quiet periods (if enabled by the user policies) until all the system has load balanced all the pages in the volume. This means in high bursty traffic environments, the MicroTiering engine will accelerate data migration between bursts.