Nearly every VDI project I’ve encountered that resulted in poor user experience failed as a result of storage that could not handle the load. Nearly every flash vendor on the market touts VDI as a primary use case and for good reason. Applications designed to run on desktop operating systems tend to be designed under the assumption that individual end-user computers will have more than enough resources to deal with the storage IO. However while I’m sure most of us could consume an ostrich egg omelet for breakfast, if we tried to fill our standard egg cartons with the eggs we’d have quite a mess.
(OK maybe only half an egg for breakfast)
I believe three trends will exacerbate the problems with storage in VDI:
- Most business and consumer grade PCs and laptops ship standard with solid-state disks which will result in applications consuming a greater amount of IO because it is available.
- Software companies designing desktop software will continue to prioritize time-to-market over optimized software – although the mobile device boom will mitigate the reliance on PCs as the primary consumption platform.
- Specific to VDI designs that use local storage, server processor and memory density will continue to rise putting more pressure on local disks.
The sky isn’t falling, though, as all flash arrays and local flash storage is rapidly reaching price parity with other spinning forms of disk. (I’d argue it’s already cheaper when you factor in performance but that’s another post)
And of course there are non-disk technologies that aim to alleviate the issue as well. Recently a client of mine kicked off an initiative to design and test their next-generation VDI environment and I assisted with the effort.
After looking at various options, the customer decided to test three solutions – Virident PCIe flash, Atlantis ILIO, and Liquidware Labs Flex-IO. The last two products create RAM based datastores within vSphere to be used as local storage.
The client utilizes Citrix XenDesktop configured with provisioning services (PVS) to boot stateless desktops to run a medical software platform. In this configuration nearly all read IO is already served from the memory of the PVS server with only writes hitting the local write cache disk. Because the write cache disk is volatile by nature, local disk is the solution they chose to minimize the failure domain.
The current environment runs Nehalem based Intel servers with 8 x 15K hard disks configured with RAID10 for maximum IO. User density is around 60 users per server. The new design calls for the latest generation Intel processors, 384GB of RAM, and around 100 users per server. The application is also going to be updated within the next year so IO to write cache, although not terribly demanding, could increase.
In order to test the capabilities of the storage, we ran the Iometer tool using a profile supplied by Atlantis Computing. We expected Flex-IO and Atlantis to perform similarly and slightly faster than the Virident flash card. The servers used for this test were identically configured in terms of CPU, memory, etc. however the Virident card required a rack mount profile while the other two products were able to run from blades. Both of the RAM based solutions were backed by 2 x 1TB 7.2K HDDs. The results were interesting to say the least.
We wanted to establish a baseline so we ran Iometer against the current production setup with the following results:
As you can see the spinning disks could support ~2400 IOPS but the latency was terrible. This would surely cause a poor user experience.
Virident Flash Results
Next we tested the Virident flash based datastore:
The flash card sustained over 18,000 IOPS with <8ms of latency. Outstanding!
The next solution we tested was the Atlantis ILIO system. I was not responsible for assisting with the configuration of this server as another partner had engaged the client to pitch the Atlantis solution, so I cannot confirm the configuration, but the results were positive:
Over 26,000 IOPS with sub 5ms latency!
Liquidware Labs Flex-IO
Finally we tested the Liquidware Labs Flex-IO product. Liquidware Labs is the new kid on the block when it comes to RAM-based disk caching, but based on our test results Flex-IO shouldn’t have trouble making new friends:
Over 34,000 sustained IOPS and less than 4ms of latency.
So the clear winner is Flex-IO, at least the winner of the Iometer contest. The truth is as measured from the user’s perspective using a stopwatch to time the opening and use of application workflows, nearly all 3 of the solutions provide the same experience. While the experience is better than current production, the difference between the new options proved to be a benchmark win at best.
The point of this post is to highlight some raw performance benchmark results, particularly because I found them to be better than expected. We’re currently working on optimizing the image which I believe will yield better results for Virident flash and possibly better results for the other two options.
Regardless, all three of the tested solutions pass the required performance test.