The size and type of traffic that is generated from a VDI environment is noticeably different from most business applications. The difference in the size and pattern of VDI traffic is consistent, but requires a few changes to the storage design for proper management.
VMware best practices
Most VMware best practices apply to VDI environments, but there are a few changes required due to the nature of high-density VM configurations. For VMware best practices, see Dell PowerStore: VMware vSphere Best Practices on the PowerStore Info Hub.
With most applications, storage traffic is typically 70 percent reads. There are applications that generate all reads or all writes, but the average tends to be a 70 percent read to 30 percent write ratio.
Volume countThere are several factors that determine the optimal volume count with Horizon on PowerStore. There isn't a single volume count that fits all scenarios. Performance and management overhead are typically the two most important factors. For performance reasons, a minimum of 16 volumes is recommended. This configuration ensures good queue balancing and reduces I/O bottlenecks.
Balance this volume recommendation with the goal of keeping the volume count low for minimized management. The VMware guidance for volume count should also be considered. Internal testing shows that 16 volumes can support 3,000 users from a performance perspective, but may have an impact on VM recovery from a backup. Using array-based snapshots reduces recovery time and minimizes the impact of higher user-per-volume counts.
I/O size
The average I/O size of storage traffic in a VDI environment typically ranges from 24k to 32k. This size can vary if host-based caching is enabled or allowed. Some VM configurations do not allow host-based caching.
Heavy writes
VDI environments are typically heavily biased towards writes. This bias occurs because once the VMs are booted, the I/O traffic includes mostly changes from each VM. The traffic consists of file changes, swap file writes, memory paging, and updates to user preferences. This traffic pattern makes VDI one of the more demanding applications.
The heavy write ratio of VDI requires more attention to be focused on the number of writes that are generated and the rate of change to the environment. For environments that are persistent, these factors should be accounted for when snapshots are taken. The average snapshot size is larger because of the rate of change occurring.
If persistence is maintained at the VM level and profile redirection technology is not used, the VM volumes must be larger. The snapshot growth is larger as well.
Instant clone poolsInstant clones generate a large volume of traffic during the provisioning process due to the method used to create the VMs. Since the in-memory VMFork technology creates the virtual machines quickly, the volume of traffic is significant. The I/O required to complete the creation is brief, but large.
Plan for bursts of high traffic when creating or refreshing instant clone machines. These bursts of high traffic may impact other workloads if a PowerStore appliance is not dedicated to VDI. For a large VDI implementation, a PowerStore appliance should be dedicated to VDI.
Instant-clone machines reset on logout. As users log off, their virtual desktops refresh automatically. This action occurs throughout the workday and should be considered in the design. Virtual desktop refreshes cause a brief spike in I/O that is proportional to the number of desktops refreshing at any given time. If many desktops refresh simultaneously, the I/O demand will spike as they refresh.
Capacity
The density of data on VDI tends to be high because many Horizon VDI environments use data-reduced clones. With profile-redirection technology like VMware Dynamic Environment Manager (DEM), clone pools appear as persistent to users. DEM enables users to personalize their desktop, but pools can still employ the benefits of non-persistent VMs. Keeping the VMs small and clean improves performance and recovery time.
The advantages of small virtual desktops include faster boot times, reduced capacity requirements, reduced pool creation time, and fewer updates required. With instant clones, the administrative overhead is reduced even further with the automatic refresh of virtual desktops on logout. Any misconfiguration in a VM is cleared when the user logs out and the machine is re-cloned.
Drive counts for block-only VDI are a function of IOP requirements rather than capacity. Since the VMs generate many IOPs per TB of storage that is consumed, performance is more of a concern than capacity. In a unified-file-storage product, capacity may increase drive counts beyond performance requirements. To see the NAS limits of the PowerStore platform, see Dell PowerStore: VMware vSphere Best Practices on the PowerStore Info Hub.
The number and size of the file shares or exports determine the capacity that must be added, based on performance guidance on Dell.com/Support.
Guests
VMware Horizon supports two guest operating systems for desktop pools. Not all features are available with both operating systems because of the architecture of the individual operating systems. While only one image can be used per pool, multiple pools can be created, one for each VM role.
WindowsThe behavior of Windows desktops in a VDI environment can vary greatly. Because of the number of services and process in Windows, the host load can vary based on customizations that are applied to the guest operating system.
One of the best ways to reduce CPU and disk load from a Windows VM is to use the VMware OS Optimization Tool (login required). This tool is a consolidated interface that can be used to change the behavior of VMs to reduce their hardware requirements. Be careful if choosing the most-restrictive configurations, which can cause applications or even Windows features to stop working. This tool is designed to reduce the effort of optimizing Windows, but it requires testing of the configuration for all user applications.
Another tool that was mentioned previously in this paper is VMware DEM. This tool redirects user data to one or more file shares based on certain conditions. This capability allows directing different types of data to different locations. User-profile data and documents can be pointed to home directories that are replicated. Application temporary data that does not need protection is placed on volumes with no data protection enabled. This approach reduces replication traffic and the overall storage load.
LinuxHorizon supports virtual desktops on Linux with some caveats and restrictions on versions and distributions. For details, see the VMware product documentation about the System Requirements for Horizon for Linux. The storage requirements are determined more by the applications that are supported than the base operating system. This document does not address the variations in Linux configurations.
Networking
PowerStore has options to support diverse network designs and protocols. The abstraction between the storage and front-end connectivity enables great flexibility in design.
ManagementPowerStore is managed through the first two ports on the integrated four-port card, as shown in Figure 4. These ports are automatically bonded for availability.
These ports provide connectivity through several protocols and storage methods such as web interface (HTTP), REST API, and PowerStore CLI (PSTCLI).
An integrated web-based interface is included for most management needs, as shown in the following figure. The interface addresses all day-to-day management tasks and storage alerting. Automated notification can be configured for remote alerting as well.
DRE and storage containers
PowerStore uses a dynamic resiliency engine (DRE) to automatically manage the underlying storage for maximum performance and capacity. DRE eliminates the need for administrators to configure protection settings for the storage pool. Manually setting or configuring these options is unnecessary in PowerStore. The underlying configuration and drive management are automatic.
Changing capacity needs
Planning for the future is simple with PowerStore. Dynamically scaling as drives are added is as simple as adding drives or enclosures of disks. When new drives are detected, they are automatically added to the available capacity.
Adding capacity to an existing file system is easy. Choose the new size, and the file system expands instantly. No downtime is required and there is no user impact.
Reducing the size of a file system is also simplified. If excess space is allocated to a file system, it can be reduced in size if sufficient capacity remains for existing data. With thin provisioning, no space is wasted, and file systems do not need to be reduced unless hard growth boundaries must be set.
Quotas are supported as well for growth management. This feature can prevent user directories or shared file structures from growing beyond the capacity of the system.
Horizon configuration
Horizon does not require any special configuration to work with PowerStore. The storage is presented as block storage volumes discoverable through VMware vCenter. When the pool is created, the volumes are visible as usable disks.
Volumes that are presented through PowerStore can grow dynamically. If the original volumes must grow as the VM requirements change, they can be expanded using the standard management methods. This expansion is done using a PowerCLI script (RESTAPI) that also expands the datastores. PowerStore Manager is used to expand a single volume.
Replication
The nature of VDI environments is to create pools of VMs that are not necessarily tied to a specific user. This ability reduces the administration of the environment and also reduces the need for backups, disaster recovery, and data-loss mitigation.
This design also reduces the need for replication. Since data is typically not stored in the user VMs, the VMs do not need to be copied offsite. A VM pool can quickly be created offsite if the infrastructure is available, including the template VMs.
User data from file shares can be replicated in several ways. PowerStore uses protection policies to take snapshots and replicate data, as shown in the following figure.
Secondary pools
One simple way to help users quickly return to work is to keep additional VMs ready in a recovery pool. This pool can be assigned to end-users if the primary systems are down. This pool may not have the same performance characteristics, but can aid in business continuity.