
Many of today's VDI projects falter due to a lackluster user experience. The ROI projections often require on ramping of large number of users before the operational savings offset the capital expenditures needed to build out the environment. The reasons for halted projects are diverse but most commonly IT fails to create a great user experience at a cost digestible to the business for enterprise users. A new breakthrough approach in I/O delivery stands poised to make a very positive impact on this problem. Having recently implemented this radically new approach at a large financial institution, I have seen for the first time, a VDI experience so stunningly fast, that users actually prefer it to their PCs and yet so affordable, it can be scaled to large numbers of users.
Traditionally, data center storage architecture was based on the idea that it is more economical to aggregate disks onto one highly resilient and high performance apparatus than to provision direct attached storage to each server in the data center. This received wisdom is generally sound. There are however certain cases where the classic data center SAN/NAS architecture is less than ideal. This article contends that a fundamentally more efficient storage design exists to accommodate cases where the following is true: 1) The application has high I/O requirements and benefits from high burst I/O capability. 2) The data written to the storage fabric is largely stateless - that is to say that data loss is largely inconsequential from a business standpoint.
Consider the case of VDI. A classic VDI 1.0 design assigns each user a virtual PC in the data center. Each user is mapped to their own virtual machine which consumes approximately 20GB of disk. The very large storage footprint of this approach quickly creates a problem for the VDI cost model. The data is persistent data so it needs a high level of protection and yet the high burst to average ratios of VDI require a generous IOPS per user burst capability. A 50x peak to average is a good place to be in order for the Windows desktop environment to feel as good as or better than a knowledge worker's PC.
To accommodate a scale out VDI 1.0 design, a very powerful and resilient backend storage system is thus necessary. Such systems ultimately compromise the cost per user, limiting the solution to niche use cases. Too often the business settles on an underpowered NAS, failing to understand the implications for user experience. The typically conservative IOPS requirement estimations at the start of VDI projects provide a static IOPS capacity which while initially adequate, quickly devolves into a compromised user experience as waves of users onboard, reducing the ratio of IOPS per user. Increasing discontent among users and push-back by the business is the inevitable result. The figure below demonstrates the key chokepoints in traditional VDI storage designs:

To address the VDI space consumption problem, a number of OS image sharing technologies have emerged. Examples include linked-clones at the storage layer, Shared imaging technologies like VMware View Composer, or streaming OS technology such as Citrix Provisioning Server. These approaches have greatly helped to cut down the amount of disk necessary to support a large VDI rollout. They have not however done enough to resolve the crisis of IOPS and therefore failed to dramatically improve user satisfaction with their VDI user experience.
An artifact of several of these shared image strategies is the need to discard individual user changes to the shared OS disk at each maintenance cycle. There are studies suggesting that such regular resetting of the OS disk actually limits the incidence of support calls by as much as 80%. Anomalies within the PC image occur over time as a result of complex interactions between applications and the OS. Personalization of the OS image can be maintained in such a 'stateless' design by way of application virtualization technology which dynamically presents applications at logon based on user identity. Such 'stateless' VDI design often deliberately discard user modifications to the OS at each logoff event, ensuring consistency of virtual machines with the shared Windows image.
The stateless design achieves dramatic space reduction and reduced operational support. Reduced risk of data loss associated with this approach weighs in heavily on the performance problems of VDI. Stateless VDI session data have a very low level of risk relative to persistent virtual machines. Data corruption in the event of various failure scenarios is not a worry because users can be assigned to any available desktop within minutes. From a storage cache standpoint, this opens the opportunity to manage session data on what storage administrators would call a 'write-back' basis rather than a 'write-through' basis typical of most storage systems. In plain English, this means that the desktop sessions could receive instant write-commits instead of waiting till data blocks actually flow down to disk. Reduced risk for this class of data is an opportunity for turbocharged I/O write activity.
Taking full advantage of both the image sharing potential of VDI and the reduced risk around stateless VDI, a new architecture has emerged which distributes I/O associated with the user's OS session from a virtual appliance inside the hypervisor itself. To the hypervisor, this intelligent cache simply looks like a data-store from which virtual machines I/O is served. The magic consists in storing the majority of the shared OS image in the RAM of the virtual machine serving up the blocks, providing lightening fast access on Reads. Data written by users is granted instant commits from the appliance long before the block finds its way down to local disk. The results are truly extraordinary; Boot times of around 10 seconds, an average of 100 plus IOPS per user, burst I/O of 5000+ IOPS on each hypervisor and a 10x reduction in the latency of storage access as compared with traditional storage designs. The diagram below demonstrates a stateless VDI design using the new distributed storage design:

Bringing storage up into the hypervisor offloads the backend storage device by up to 100% on both read and writes associated with OS data and anything written to a user's C: drive during a VDI session. Local disk is used to house the transient session data and deep memory caches enable blistering retrieval speeds. Finally there is a VDI user experience worth writing home about. The ILIO platform by Atlantis Computing is leading the charge in this new storage architecture but watch for competition by Unidesk, Virsto, Citrix Provisioning server and others.