With a virtual desktop infrastructure (VDI), IT shops can host user applications from within the data center. In a VDI scenario, users have thin-client hardware but typically data and applications are accessed over the network. The desktop operating system runs within a virtual machine in the virtual environment. And while there are similarities between server virtualization and VDI (with each, virtual hosts are placed on physical server resources), VDI brings unique challenges to storage managers.
Depending on what applications are installed, a typical Windows 7 virtual desktop might need 10 GB to 20 GB of shared storage. Each desktop on average consumes 5 IOPS to 10 IOPS (that range increases to about 50 IOPS to 100 IOPS when the virtual desktops are booted up). Configuring storage for VDI focuses as much on performance as it does on disk capacity.
The centralization issue
When desktops are dispersed across the IT infrastructure, the disk capacity they require is generally provided by low-cost SATA drives installed within each physical machine. A directly attached SATA drive is capable of meeting even the maximum I/O demands of a typical desktop. Any performance impact or data loss from a drive will only affect that PC or laptop. As storage is centralized, the potential impact of storage-related problems is significantly increased, with any data loss possibly affecting hundreds or thousands of users. In addition, centralization of desktop data in a VDI environment creates a large random I/O workload profile, which is the most challenging to deliver on storage arrays.
Maintaining adequate I/O performance also requires dealing with large I/O peaks known as “boot storms.” VDI is user-driven and users typically log into their desktops in the morning and log out as they prepare to leave work at the end of the day. Most users' logon activity is likely to occur between 8 a.m. and 10 a.m., creating a boot storm that generates a large number of read requests as the desktops start up. Similarly, at the end of the day when users log off, saving their work and closing down their desktops, large amounts of random write I/Os are generated. Both of these peaks must be addressed by the VDI infrastructure as any delay in response translates directly into lost productivity.
TCO and ROI
You must also consider the issue of total cost of ownership (TCO) and the return on investment (ROI) of deploying a virtual desktop infrastructure. The savings realized by deploying VDI come from reducing end-user hardware costs, including the cost of the physical device, as well as the costs associated with ongoing maintenance, and the technical and administrative support required to manage multiple instances of desktop operating systems.
As desktop storage is centralized into the infrastructure supporting the virtual desktops, the cost of deployment of the storage piece can be high, as required performance and capacity levels can be challenging to achieve.
You should consider any opportunity to reduce storage consumption as essential within a VDI deployment. There are two space-reduction technologies that fit well with VDI: thin provisioning and data deduplication. Thin provisioning ensures that virtual desktops use only the capacity required to accommodate the data that’s actually written to disk by the host operating system regardless of how much capacity the desktop is actually allocated. So if a desktop’s drive is configured for 20 GB but only 10 GB is actually being used, then the thin volume appears as 10 GB rather than the 20 GB that’s been allocated. Thin provisioning therefore provides the opportunity to size VDI drives based on future requirements without wasting current resources.
Deduplication technology finds common files or blocks within a storage array and eliminates duplicate copies, while retaining metadata and setting pointers to track shared usage. Within VDI environments, deduplication is an excellent technology for storage space reduction. Typically, desktops are built from a master image, which is a customized desktop build created especially for VDI environments. Individual desktops are replicated from the master image by creating clones. The clones yield excellent deduplication ratios, as most of the desktop content is static operating system data. On certain VDI platforms such as VMware View, deduplication is managed within software through the use of replicas and linked clones, which automatically handle the tracking of changed data.
SAN vs. NAS
In any discussion of storage space reduction for virtual desktops, it’s worth spending a moment to address the storage protocol alternatives for VDI deployments. Storage for VDI can use either block (SAN) or file-level protocols (NAS). Both platforms may offer the space-saving features described here, but the implementations differ slightly. The VDI layer typically handles cloning and replication on block-based solutions, but in file-based implementations cloning is performed by the storage array itself. At the outset this may not seem an important distinction; however, it does enable the work of creating clones to be offloaded to the array itself.
Persistent and non-persistent desktops
Virtual desktops can be deployed with the ability to retain user configuration settings (such as shortcuts) across boots; these are known as persistent desktops. Non-persistent desktops don’t retain any configuration information between boots and effectively reset the user each time the virtual desktop starts up. In addition, local user data can be provided through mapping to a local file server.
Any storage system space-saving features will have a tradeoff in terms of sacrificing some performance. The master images and replicas deployed in a VDI solution will be subject to significant read I/O activity, so they should be placed on the fastest storage media available, preferably solid-state drives (SSDs).
Of course, it's not essential to place all virtual desktop data on SSDs -- it will likely be cost-prohibitive to do so. Where possible, tiered storage implementations should be used to allow high-performing devices such as SSDs to handle the most active VDI data. Storage tiering is therefore essential in VDI solutions to achieve TCO and ROI benefits.
Storage vendors typically address VDI storage requirements by deploying high-performing storage based on SSD and Fibre Channel drives. However, there are a number other vendor approaches that specifically deliver optimized storage for VDI.
Atlantis Computing Inc. offers Atlantis ILIO, a software application optimized for VDI environments based on Citrix XenDesktop and VMware View. The ILIO software layer reduces latency, I/O to physical disk and storage capacity requirements. As a result, VDI solutions using ILIO can be deployed simply using low-cost, high-capacity SATA drives.
NetApp Inc. filers are well suited for VDI deployments. NetApp’s Write Anywhere File Layout (WAFL) file system effectively converts random I/O into sequential writes, making it suitable for VDI deployments. NetApp Flash Cache (formerly called Performance Acceleration Module or PAM) cards accelerate read requests, caching master images and replicas. Finally, NetApp FlexClones enable virtual desktops to be easily replicated from master images while requiring only very small amounts of storage overhead.
Both Nimbus Data Systems Inc. and Pure Storage Inc. offer solid-state arrays for VDI. Solid-state arrays are excellent at meeting random I/O. Products from Nimbus and Pure Storage use compression and deduplication to reduce the TCO of deploying SSD arrays.
The VDI storage bottom line
Deploying storage for virtual desktops is all about managing random I/O and high IOPS demand. These requirements must be balanced against the ROI of consolidating desktops into the data center; otherwise, the benefit and savings from implementing VDI may fail to be achieved.
Chris Evans is a UK-based storage consultant. He maintains The Storage Architect blog.
This story was originally published in Storage magazine.