Master Virtual Desktop Image Creation

Exclusive offer: get 50% off this eBook here
Implementing VMware Horizon View 5.2

Implementing VMware Horizon View 5.2 — Save 50%

A practical guide to designing, implementing, and administrating an optimized Virtual Desktop solution with VMware Horizon View book and ebook

€23.99    €12.00
by Jason Ventresco | September 2013 | Enterprise Articles

The article, Master Virtual Desktop Image Creation, is based on VMware Horizon View 5.2 that helps to implement and manage different components in View. This article by Jason Ventresco, author of the book Implementing VMware Horizon View 5.2, explains the techniques that should be used when creating a master Virtual Desktop image.

This article will focus on a number of different topics related to the planning and creation of a Virtual Desktop master image.

In this article, we will learn:

  • Why it is important to optimize a Virtual Desktop master image
  • What kinds of results we will see if we optimize the Windows OS
  • How to optimize the virtual machine hardware
  • How to optimize the underlying Windows file system
  • How to optimize the Windows OS
  • Why you should customize the default Windows user local profile

(For more resources related to this topic, see here.)

When designing your VMware Horizon View infrastructure, creating a Virtual Desktop master image is second only to infrastructure design in terms of importance. The reason for this is simple; as ubiquitous as Microsoft Windows is, it was never designed to be a hosted Virtual Desktop. The good news is that with a careful bit of planning, and a thorough understanding of what your end users need, you can build a Windows desktop that serves all your needs, while requiring the bare minimum of infrastructure resources.

A default installation of Windows contains many optional components and configuration settings that are either unsuitable for, or not needed in, a Virtual Desktop environment, and understanding their impact is critical to maintaining Virtual Desktop performance over time and during peak levels of use.

Uninstalling unneeded components and disabling services or scheduled tasks that are not required will help reduce the amount of resources the Virtual Desktop requires, and ensure that the View infrastructure can properly support the planned number of desktops even as resources are oversubscribed.

Oversubscription is defined as having assigned more resources than what is physically available. This is most commonly done with processor resources in Virtual Desktop environments, where a single server processor core may be shared between multiple desktops. As the average desktop does not require 100 percent of its assigned resources at all times, we can share those resources between multiple desktops without affecting the performance.

Why is desktop optimization important?

To date, Microsoft has only ever released a version of Windows designed to be installed on physical hardware. This isn't to say that Microsoft is unique is this regard, as neither Linux and Mac OS X offers an installation routine that is optimized for a virtualized hardware platform.

While nothing stops you from using a default installation of any OS or software package in a virtualized environment, you may find it difficult to maintain consistent levels of performance in Virtual Desktop environments where many of the resources are shared, and in almost every case oversubscribed in some manner. In this section, we will examine a sample of the CPU and disk IO resources that can be recovered were you to optimize the Virtual Desktop master image.

Due to the technological diversity that exists from one organization to the next, optimizing your Virtual Desktop master image is not an exact science. The optimization techniques used and their end results will likely vary from one organization to the next due to factors unrelated to View or vSphere. The information contained within this article will serve as a foundation for optimizing a Virtual Desktop master image, focusing primarily on the operating system.

Optimization results – desktop IOPS

Desktop optimization benefits one infrastructure component more than any other: storage. Until all flash storage arrays achieve price parity with the traditional spinning disk arrays many of us use today, reducing the per-desktop IOPS required will continue to be an important part of any View deployment.

On a per-disk basis, a flash drive can accommodate more than 15 times the IOPS of an enterprise SAS or SCSI disk, or 30 times the IOPS of a traditional desktop SATA disk. Organizations that choose an all-flash array may find that they have more than sufficient IOPS capacity for their Virtual Desktops, even without doing any optimization.

The following graph shows the reduction in IOPS that occurred after performing the optimization techniques described later in this article.

The optimized desktop generated 15 percent fewer IOPS during the user workload simulation. By itself that may not seem like a significant reduction, but when multiplied by hundreds or thousands of desktops the savings become more significant.

Optimization results – CPU utilization

View supports a maximum of 16 Virtual Desktops per physical CPU core. There is no guarantee that your View implementation will be able to attain this high consolidation ratio, though, as desktop workloads will vary from one type of user to another. The optimization techniques described in this article will help maximize the number of desktops you can run per each server core.

The following graph shows the reduction in vSphere host % Processor Time that occurred after performing the optimization techniques described later in this article:

% Processor Time is one of the metrics that can be used to measure server processor utilization within vSphere. The statistics in the preceding graph were captured using the vSphere ESXTOP command line utility, which provides a number of performance statistics that the vCenter performance tabs do not offer, in a raw format that is more suited for independent analysis.

The optimized desktop required between 5 to 10 percent less processor time during the user workload simulation. As was the case with the IOPS reduction, the savings are significant when multiplied by large numbers of desktops.

Virtual Desktop hardware configuration

The Virtual Desktop hardware configuration should provide only what is required based on the desktop needs and the performance analysis. This section will examine the different virtual machine configuration settings that you may wish to customize, and explain their purpose.

Disabling virtual machine logging

Every time a virtual machine is powered on, and while it is running, it logs diagnostic information within the datastore that hosts its VMDK file. For environments that have a large number of Virtual Desktops, this can generate a noticeable amount of storage I/O. The following steps outline how to disable virtual machine logging:

  1. In the vCenter client, right-click on the desktop master image virtual machine and click on Edit Settings to open the Virtual Machine Properties window.
  2. In the Virtual Machine Properties window, select the Options tab.
  3. Under Settings , highlight General .
  4. Clear Enable logging as shown in the following screenshot, which sets the logging = "FALSE" option in the virtual machine VMX file:

While disabling logging does reduce disk IO, it also removes log files that may be used for advanced troubleshooting or auditing purposes. The implications of this change should be considered before placing the desktop into production.

Removing unneeded devices

By default, a virtual machine contains several devices that may not be required in a Virtual Desktop environment. In the event that these devices are not required, they should be removed to free up server resources. The following steps outline how to remove the unneeded devices:

  1. In the vCenter client, right-click on the desktop master image virtual machine and click on Edit Settings to open the Virtual Machine Properties window.
  2. In the Virtual Machine Properties window, under Hardware , highlight Floppy drive 1 as shown in the following screenshot and click on Remove :

  3. In the Virtual Machine Properties window, select the Options tab.
  4. Under Settings , highlight Boot Options .
  5. Check the checkbox under the Force BIOS Setup section as shown in the following screenshot:

  6. Click on OK to close the Virtual Machine Properties window.
  7. Power on the virtual machine; it will boot into the PhoenixBIOS Setup Utility .
  8. The PhoenixBIOS Setup Utility menu defaults to the Main tab. Use the down arrow key to move down to the Legacy Diskette A , and then press the Space bar key until the option changes to Disabled .
  9. Use the right arrow key to move to the Advanced tab.
  10. Use the arrow down key to select I/O Device Configuration and press Enter to open the I/O Device Configuration window.
  11. Disable the serial ports, parallel port, and floppy disk controller as shown in the following screenshot. Use the up and down arrow keys to move between devices, and the Space bar to disable or enable each as required:

  12. Press the F10 key to save the configuration and exit the PhoenixBIOS Setup Utility .

Do not remove the virtual CD-ROM device, as it is used by vSphere when performing an automated installation or upgrade of the VMware Tools software.

Customizing the Windows desktop OS cluster size

Microsoft Windows uses a default cluster size, also known as allocation unit size, of 4 KB when creating the boot volume during a new installation of Windows. The cluster size is the smallest amount of disk space that will be used to hold a file, which affects how many disk writes must be made to commit a file to disk. For example, when a file is 12 KB in size, and the cluster size is 4 KB, it will take three write operations to write the file to disk.

The default 4 KB cluster size will work with any storage option that you choose to use with your environment, but that does not mean it is the best option. Storage vendors frequently do performance testing to determine which cluster size is optimal for their platforms, and it is possible that some of them will recommend that the Windows cluster size should be changed to ensure optimal performance. The following steps outline how to change the Windows cluster size during the installation process; the process is the same for both Windows 7 and Windows 8. In this example, we will be using an 8 KB cluster size, although any size can be used based on the recommendation from your storage vendor.

  • The cluster size can only be changed during the Windows installation, not after.
  • If your storage vendor recommends the 4 KB Windows cluster size, the default Windows settings are acceptable.
  1. Boot from the Windows OS installer ISO image or physical CD and proceed through the install steps until the Where do you want to install Windows? dialog box appears.
  2. Press Shift + F10 to bring up a command window.
  3. In the command window, enter the following commands:

    diskpart select disk 0 create partition primary size=100 active format fs=ntfs label="System Reserve" quick create partition primary format fs=ntfs label=OS_8k unit=8192 quick assign exit

  4. Click on Refresh to refresh the Where do you want to install Windows? window.
  5. Select Drive 0 Partition 2: OS_8k , as shown in the following screenshot, and click on Next to begin the installation:

The System Reserve partition is used by Windows to store files critical to the boot process and will not be visible to the end user. These files must reside on a volume that uses a 4 KB cluster size, so we created a small partition solely for that purpose. Windows will automatically detect this partition and use it when performing the Windows installation.

In the event that your storage vendor recommends a different cluster size than shown in the previous example, replace the 8192 in the sample command in step 3 with whatever value the vendor recommends, in bytes, without any punctuation.

Windows OS pre-deployment tasks

The following tasks are unrelated to the other optimization tasks that are described in this article but they should be completed prior to placing the desktop into production.

Installing VMware Tools

VMware Tools should be installed prior to the installation of the View Agent software. To ensure that the master image has the latest version of the VMware Tools software, apply the latest updates to the host vSphere Server prior to installing the tools package on the desktop.

The same applies if you are updating your VMware Tools software. The View Agent software should be reinstalled after the VMware Tools software is updated to ensure that the appropriate View drivers are installed in place of the versions included with VMware Tools.

Cleaning up and defragmenting the desktop hard disk

To minimize the space required by the Virtual Desktop master image and ensure optimal performance, the Virtual Desktop hard disks should be cleaned of nonessential files and optimized prior to deployment into production. The following actions should be taken once the Virtual Desktop master image is ready for deployment:

  • Use the Windows Disk Cleanup utility to remove any unnecessary files.
  • Use the Windows Defragment utility to defragment the virtual hard disk.

    If the desktop virtual hard disks are thinly provisioned, you may wish to shrink them after the defragmentation completes. This can be performed with utilities from your storage vendor if available, by using the vSphere vmkfstools utility, or by using the vSphere storage vMotion feature to move the virtual machine to a different datastore. Visit your storage vendor or the VMware vSphere Documentation (http://www.vmware.com/support/pubs/vsphere-esxi-vcenter-server-pubs.html) for instructions on how to shrink virtual hard disks or perform a storage vMotion.

Implementing VMware Horizon View 5.2 A practical guide to designing, implementing, and administrating an optimized Virtual Desktop solution with VMware Horizon View book and ebook
Published: May 2013
eBook Price: €23.99
Book Price: €38.99
See more
Select your format and quantity:

Windows OS optimizations

A default installation of Microsoft Windows contains a number of configuration settings, components, and scheduled tasks that may not be required or are not desirable in a Virtual Desktop environment. This section will detail these settings, and provide instructions on how to make the recommended changes.

Many of these optimizations are implemented using Windows Group Policies, which can be applied to the Virtual Desktop master image prior to deployment, or by using domain-enforced Active Directory Group Policies. It is recommended to apply the majority of the policies directly to the master image when using linked-clone desktops. Doing this allows the refresh or recompose operation to proceed more quickly, as the majority of the settings the desktop requires will already have been applied. Were the necessary policies to be applied using only domain-based Group Policy templates, a refresh or recompose is likely to take more time and resources to complete as each desktop must process the policy updates and make the necessary configuration changes. In addition, the desktops may require a reboot to fully implement the policy changes.

Most of the information in this section applies to both Windows 7 and Windows 8. If a specific recommendation applies only to Windows 8, it will be identified.

Disabling Windows Error Reporting

Windows Error Reporting compiles error reports that occur when an application crashes and, if configured to, forwards the information on to Microsoft. Linked-clone desktops, both persistent and non-persistent, are less likely to require this feature, as the underlying OS is likely to be refreshed or recomposed on a regular basis. This feature may be needed when using full-clone desktops, though, as those desktops generally have a much longer life cycle that may require occasional application troubleshooting. The following steps outline how to disable Windows Error Reporting:

  1. Using the Group Policy console, edit the local desktop or domain-based Group Policy.
  2. Select the Computer Configuration | Administrative Templates | Windows Components | Windows Error Reportingpolicy object.
  3. Set Disable Windows Error Reporting to Enabled.

Disabling automatic updates

Linked-clone desktops are typically updated using a recompose operation, which negates the need for the Windows update service. To prevent linked-clone desktops from installing updates, which would significantly grow the linked-clone OS disk size, this Windows feature should be disabled.

If your environment uses full-clone View desktops, which are deployed using a vSphere template, you should regularly update the template with the latest Windows patches or other required configuration changes. This ensures that as new desktops are deployed, they will require little or no additional configuration as the template will already have been updated. By default, any new linked-clone desktops in a given desktop pool will automatically be created using either the virtual machine snapshot selected during the most recent recompose operation, or the original virtual machine snapshot if no recompose operations have been performed.

The following steps outline how to disable Windows Updates:

  1. Using the Group Policy console, edit the local desktop or domain-based Group Policy.
  2. Select the Computer Configuration | Administrative Templates | Windows Components | Windows Update policy object.
  3. Set the Configure Automatic Updates to Disabled .

Delete the C:\Windows\SoftwareDistribution\Download folder to remove any update packages that may already been downloaded to the desktop.

Do not disable Automatic Updates in environments that use System Center Configuration Manager ( SCCM ), as it will prevent updates deployed using SCCM from being installed.

Removing unnecessary application updaters

A number of applications install their own updater utility, such as Adobe AIR, Adobe Acrobat Reader, and the Java Runtime Environment. If linked-clone desktops are being used, and regular recomposes are being performed, these updater utilities should be disabled to reduce the growth of the linked-clone OS disk. Full-clone desktops may wish to leave these updaters enabled, unless they will be installed using alternative methods, such as Microsoft SCCM and other similar desktop management platforms.

The procedure used to disable or remove these components will vary based on the architecture of the individual application. The following are examples of how to disable the application updaters that were mentioned in this section, which include Adobe AIR, Adobe Acrobat Reader, and the Java Runtime Environment.

Disabling the Adobe AIR updater

The following steps outline how to disable the Adobe AIR updater:

  1. Download and install the Adobe AIR Settings Manager application, which is available from the www.adobe.com website.
  2. Launch the AIR Settings Manager application, click on the Disable Updates button, and then close the application.

Disabling the Adobe Acrobat automatic updater

The following steps outline how to disable the Adobe Acrobat automatic updater:

  1. From a Windows command prompt, load the regedit.exe application.
  2. Navigate to HKLM | SOFTWARE | Microsoft | Windows | Current Version | Run .
  3. Right-click on the Adobe ARM registry key shown in the following screenshot, and click on Delete :

The HKLM | SOFTWARE | Microsoft | Windows | Current Version | Run registry key will contain other programs that are executed upon system startup. Review the entries in this registry key, and if the program is not required, delete the key to prevent the application from loading upon system startup. Prior to making any changes, research the key being removed to ensure that the parent program will continue to operate properly were this component of the program not executed at startup.

If you wish to prevent users from performing manual updates within the Acrobat Reader application itself, you can use the Adobe Acrobat Group Policy templates referenced in the Adobe Acrobat Enterprise Administration Guide located at http://www.adobe.com/devnet-docs/acrobatetk/tools/AdminGuide/index.html. These Group Policy objects enable you to completely disable the ability to update Acrobat Reader using the application menus.

Disabling the Java updater utility

The following steps outline how to disable the Java updater utility:

  1. From a Windows command prompt, load the regedit.exe application.
  2. Navigate to HKLM | SOFTWARE | Microsoft | Windows | Current Version | Run .
  3. Right-click on the SunJavaUpdateSched registry key and click on Delete . This registry key is shown in the screenshot in the previous section beneath the Adobe ARM registry key.

Removing unneeded Windows components

There are a number of Windows components that are installed by default that may not be needed in a Virtual Desktop environment. To further reduce the resources required by the desktop, remove any Windows components that are not required. Some components that may not be required include Indexing Service, Internet Printing Client, Media Features, Tablet PC Components, and Windows Search.

The following steps outline how to remove unneeded Windows components:

  1. Open the Windows Control Panel.
  2. Navigate to Programs | Turn Windows features on or off .
  3. Remove any unneeded components.

Changing NTFS filesystem settings

There are several NTFS options than can be optimized using the fsutil command to minimize filesystem overhead. These options include the ability to disable the creation of DOS style 8.3 filenames and disabling the last accessed timestamp. The "last accessed" option reduces write workload for users who run applications that access many files.

  • Applications or shortcuts that access files using file or folder short names may not function properly if 8.3 names are disabled. Do not change this setting without researching if your applications require that functionality.
  • Do not disable last accessed timestamps if think that your organization might need to audit the usage of any files that reside on the Virtual Desktop filesystem.

These features can be disabled from a Windows command prompt using the following commands:

fsutil behavior set disablelastaccess 1 fsutil 8dot3name set 1

Additional information about the fsutil command is available from Microsoft TechNet (http://technet.microsoft.com/en-us/library/cc753059(v=ws.10).aspx).

Pre-compiling .NET Framework assemblies

Microsoft .NET compiles framework assemblies on an as-needed basis when .NET-dependent programs are launched for the first time. This process can be both CPU-and disk-intensive, so you should pre-compile all .NET Framework assemblies on the Virtual Desktop master image prior to deployment. The following steps outline how to pre-compile all versions of the .NET Framework assemblies:

  1. Open an elevated Windows command prompt.
  2. Navigate to the C:\Windows\Microsoft.NET\Framework\v4.0.30319 directory.
  3. Type ngen.exe executequeueditems and hit Enter. This process may require several minutes to complete.

    Microsoft .NET 3.5 is not installed by default on Windows 7 or Windows 8. If Microsoft .NET 3.5 is required on the desktop image, it should be installed prior to running the ngen.exe executequeueditems command. Microsoft .NET 3.5 can be installed using the Control Panel entry Control Panel | Programs | Turn Windows features on or off.

Disabling Windows hibernation

When the Windows OS goes into hibernation mode, a significant amount of storage write I/O is required to write the contents of the systems RAM to the hiberfil.sys file. An equivalent amount of read storage I/O is needed to resume the desktop from hibernation. During periods of heavy use, this additional I/O may affect the performance of other desktops that share the same storage. In addition to that, the hiberfile.sys file requires disk space equivalent to that of the desktops configured RAM, which further increases the amount of per-desktop space required. To reduce desktop storage utilization, hibernation should be disabled.

To disable hibernation, open an elevated Windows command prompt and execute the following command:

powercfg /hibernate off

If required, View can manage workstation power states using native vSphere features. Desktops can be powered down or suspended as required based on the configuration of the desktop pool.

Disabling Windows System Restore

Windows System Restore is used to restore a Windows desktop to a previous state, a useful feature when using a traditional physical desktop. This feature is generally not required when using linked-clone desktops, though, as those desktops can be refreshed as needed to restore them to their original state.

vSphere snapshots can be used in place of System Restore if you need the ability to quickly undo changes made to your Virtual Desktop master images or full-clone Virtual Desktops. vSphere snapshots should not be used with linked-clone desktops, as the snapshot would prevent View Composer maintenance operations from completing successfully.

Generating Windows System Restore snapshots generates intermittent spikes in storage I/O, and also requires additional disk space. To minimize per-desktop storage utilization, this feature should be disabled on all linked-clone desktops and full-clone desktops as well unless the feature is explicitly required. The following steps outline how to disable system restore:

  1. Right-click My Computer and select Properties .
  2. Select Advanced system settings | System Protection .
  3. Click on the Configure button to open the System Protection window.
  4. Under the Restore Settings section, click on the Turn off system protection radio button.

Sizing virtual machine RAM properly

The amount of RAM used for the desktop affects both the amount of storage space required and the likelihood that it will need to swap memory into the Windows page file.

Windows initially sizes the C:\pagefile.sys system file based on the amount of RAM the virtual machine is granted, which is then expanded on demand to meet the virtual memory requirements of the Windows OS. The page file will also increase in size when the desktop RAM is increased.

The amount of RAM assigned to the virtual machine affects whether or not it is likely to need to utilize the Windows page file. Using the page file generates additional storage I/O, which we prefer to avoid in a Virtual Desktop environment where the storage is shared among multiple desktops.The desktop should be assigned sufficient RAM so that under normal circumstances it will not need to use the page file.

The Microsoft TechNet article Pushing the Limits of Windows: Virtual Memory (http://blogs.technet.com/b/markrussinovich/archive/2008/11/17/3155406.aspx) contains additional guidance about how to properly size Windows system RAM.

Setting the Windows page file to a fixed size

By default, Windows dynamically expands and shrinks the Windows page file as required. This leads to fragmentation of the page file, and additional storage I/O. To minimize the storage I/O associated with page file operations, set the page file to a fixed size.

Not every Virtual Desktop configuration will require a page file. If you determine that a desktop pool has low per-desktop memory requirements, common when minimal applications are being used, you can disable the page file entirely. vSphere transparent page sharing, described in the VMware technical paper Understanding Memory Resource Management in VMware vSphere 5.0 (http://www.vmware.com/files/pdf/mem_mgmt_perf_vsphere5.pdf) is enabled by default and will further reduce per-desktop vSphere memory utilization by removing redundant virtual machine memory pages from the vSphere server.

The following steps outline how to configure a fixed size page file:

  1. Right-click My Computer and select Properties .
  2. Select Advanced system settings | Advanced .
  3. Click on the Settings button under Performance to open the Performance Options window.
  4. In the Performance Options window, click on the Advanced tab.
  5. In the Advanced tab, click on the Change button.
  6. Click on the Custom size radio button, and populate the Initial size and Maximum size fields with the same value in MB.
  7. Click on the Set button to implement the changes, and then click on OK three times to complete the action. Reboot the desktop if prompted.

Refer to the Microsoft TechNet article Pushing the Limits of Windows: Virtual Memory for additional guidance about how to determine the fixed page file size.

Disabling paging the executive

By default, Windows writes kernel-mode drivers and system code to the Windows page file when not in use, which leaves more RAM available for the system. This action generates additional storage I/O, which we prefer to limit in a Virtual Desktop environment.

If the virtual machine is assigned sufficient memory, this feature is unneeded and therefore should be disabled to reduce the per-desktop storage I/O. The following steps outline how to disable paging of the executive:

  1. From a Windows command prompt, load the regedit.exe application.
  2. Navigate to HKLM | System | CurrentControlSet | Control | Session Manager | Memory Management .
  3. Double-click on the DisablePagingExecutive registry key to edit the value.
  4. Change the value from 0 (default) to 1 to disable the feature.

Disabling Content Indexing of the C drive

Content Indexing creates storage I/O overhead for a desktop, as it builds the desktop content index cache. If Content Indexing is not required, or if the desktop is a linked-clone, this feature should be disabled to reduce desktop storage I/O.

Linked-clone desktops would require a content index each time they are refreshed or recomposed, significantly increasing the storage I/O required to complete these operations. Content Indexing should be disabled when using linked-clone desktops.

The following steps outline how to disable indexing of the local disk:

  1. Open the My Computer window, right-click on C:, and click on Properties .
  2. On the General tab, clear the Allow files on this drive to have contents indexed in addition to file properties checkbox.
  3. Click on OK to initiate the change, and click on OK again to update the indexing settings using the default option ( Apply changes to Drive C:\, subfolders and files ).

During the application of the new indexing settings, an error message stating that a file is in use may occur. If this happens, select Ignore All . If the desktop has additional hard disks, repeat this process for each of those disks.

Disabling the content indexing of the remaining file locations

Windows indexes a number of system and user-specific folders by default. To reduce the storage I/O overhead associated with these indexing operations, remove any unneeded folder locations from the index list.

When using linked-clone desktops, it is suggested to uncheck all file locations from the Indexed Locations window.

The following steps outline how to disable indexing of the remaining default locations:

  1. Open the Windows Control Panel .
  2. Navigate to Indexing Options .
  3. Click on the Modify button to open the Indexed Locations window.
  4. Deselect any locations or folders in the list that you do not want indexed, and click on OK .

Disabling unnecessary services

There are multiple Windows services that are not useful in Virtual Desktop environments; to reduce desktop resource requirements, they should be disabled. Services are disabled by launching the Services MMC plugin, which can be launched from a Windows command prompt by executing the command services.msc.

The following is a list of services that are generally not required in a Virtual Desktop environment. A description for each of these services is provided in the Services MMC plugin:

  • Diagnostic Policy Service
  • IP Helper
  • Network Location Awareness
  • Security Center
  • Shell Hardware Detection
  • SSDP Discovery
  • SuperFetch (disable only when using non persistent desktops; additional information about SuperFetch follows this section)
  • Telephony
  • Themes
  • Touch Keyboard and Handwriting Panel Service
  • Windows Defender Service (disable only when using alternative antivirus or anti-malware platforms)
  • Remote Registry
  • Windows Audio
  • Windows Connect Now (Config Registrar; Windows 8 only)
  • Windows Update
  • WLAN AutoConfig
  • WWAN AutoConfig

For a comprehensive list of Windows services and configuration options, review the Windows 7 Service Configurations and Windows 8 Service Configurations guides at www.blackviper.com.

SuperFetch

SuperFetch analyzes desktop usage patterns and pre-populates system RAM with programs the user is likely to launch. When using non-persistent desktops, this results in unnecessary storage I/O as the optimizations will not persist and will be repeated each time the desktop is used. SuperFetch also allocates more of the system RAM for its use, increasing the amount of per-desktop RAM required.

For persistent desktops with larger memory configurations, it is recommended to leave SuperFetch enabled so that Windows can optimize the disk layout of the prefetch data and proactively load user binaries into memory, which will make the desktop more responsive.

Removing unnecessary scheduled tasks

Windows has a number of scheduled tasks that are either undesirable or not required in a Virtual Desktop environment. These tasks can be removed or disabled using the Windows Control Panel Schedule tasksutility or an elevated command prompt. The following is a list of tasks that should be reviewed to determine if they are required within the Virtual Desktop environment; if not, they should be disabled or removed. Details about each task are available in the Schedule tasksWindows Control Panel utility.

  • \Microsoft\Windows\Application Experience\AitAgent
  • \Microsoft\Windows\Application Experience\ProgramDataUpdater
  • \Microsoft\Windows\Application Experience\StartupAppTask: Windows 8 only
  • \Microsoft\Windows\Autochk\Proxy
  • \Microsoft\Windows\Bluetooth\UninstallDeviceTask
  • \Microsoft\Windows\Customer Experience Improvement Program\BthSQM: Windows 8 only
  • \Microsoft\Windows\Customer Experience Improvement Program\Consolidator
  • \Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask
  • \Microsoft\Windows\Customer Experience Improvement Program\UsbCeip
  • \Microsoft\Windows\Defrag\ScheduledDefrag
  • \Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector
  • \Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticResolver
  • \Microsoft\Windows\FileHistory\File History (maintenance mode): Windows 8 only
  • \Microsoft\Windows\Live\Roaming\MaintenanceTask: Windows 8 only
  • \Microsoft\Windows\Live\Roaming\SynchronizeWithStorage: Windows 8 only
  • \Microsoft\Windows\Maintenance\WinSAT: Windows 8 only
  • \Microsoft\Windows\Mobile Broadband Accounts\MNO Metadata Parser: Windows 8 only
  • \Microsoft\Windows\MobilePC\HotStart: Windows 8 only
  • \Microsoft\Windows\Power Efficiency Diagnostics\AnalyzeSystem
  • \Microsoft\Windows\Ras\MobilityManager
  • \Microsoft\Windows\SideShow\AutoWake
  • \Microsoft\Windows\SideShow\GadgetManager
  • \Microsoft\Windows\SideShow\SessionAgent
  • \Microsoft\Windows\SideShow\SystemDataProviders
  • \Microsoft\Windows\SpacePort\SpaceAgentTask: Windows 8 only
  • \Microsoft\Windows\SystemRestore\SR
  • \Microsoft\Windows\UPnP\UPnPHostConfig
  • \Microsoft\Windows\Windows Defender\Windows Defender Cache Maintenance: Windows 8 only
  • \Microsoft\Windows\Windows Defender\Windows Defender Cleanup: Windows 8 only
  • \Microsoft\Windows\Windows Defender\Windows Defender Scheduled Scan: Windows 8 only
  • \Microsoft\Windows\Windows Defender\Windows Defender Verification: Windows 8 only
  • \Microsoft\Windows\Windows Error Reporting\QueueReporting
  • \Microsoft\Windows\Windows Media Sharing\UpdateLibrary
  • \Microsoft\Windows\WindowsBackup\ConfigNotification

To remove a task using an elevated Windows command prompt, use a command similar to the following example:

SCHTASKS /Delete /TN "\Microsoft\Windows\Application Experience
\AitAgent" /F

Removing unnecessary Windows 8 Metro applications

Windows 8 includes a number of Metro applications that may not be required in a Virtual Desktop environment. In addition, some of the Metro applications are active even if they are not being used by the end user, placing unnecessary load on the View infrastructure. The full list of installed applications can be reviewed using the PowerShell command Get-AppxPackage.

The following PowerShell commands will uninstall Windows Metro applications related to Microsoft Bing, Xbox, Zune, and SkyDrive. Additional Metro applications are removed by using the same command syntax and replacing the –name portion of the command with the name of the application you wish to remove:

get-appxpackage -name Microsoft.Bing* | Remove-AppxPackage get-appxpackage -name Microsoft.XBox* | Remove-AppxPackage get-appxpackage -name Microsoft.Zune* | Remove-AppxPackage get-appxpackage -name microsoft.microsoftsky* | Remove-AppxPackage

Disabling login success logging

By default, Windows records both successful and failed login attempts. For some environments, the overhead required to log successful logons is not required and the setting can be disabled. Non-persistent desktops generally do not require this setting, as they are destroyed after each use.

Disabling account login event auditing is considered a potential security issue, as this information may be required in order to fully audit access to the desktop.

The following steps outline how to disable successful login events so that they are not written to the security log:

  1. Using the Group Policy console, edit the local desktop or domain-based group policy.
  2. Select the Computer Configuration | Windows Settings | Security Settings | Local Policies | Audit Policy policy object.
  3. Double-click the Audit account logon events policy to open the Policy Properties window.
  4. Click on the Failure checkbox, and uncheck the Success checkbox if it is checked. Click on OK to close the window.

Changing the Group Policy refresh interval

By default, all computers in an Active Directory domain attempt to refresh their Group Policy settings every 90 minutes with a 30 minute offset. This is extended to limit the peak amount of network bandwidth that is consumed when refreshing the Group Policies. By default, Group Policy is also updated at every boot of the OS. The following steps outline how to change the Group Policy refresh interval:

  1. Using the Group Policy console, edit the local desktop or domain-based Group Policy.
  2. Select the Computer Configuration | Administrative Templates | System | Group Policy policy object.
  3. Double click the Group Policy refresh internal for computers policy to open the policy properties window.
  4. Click on the Enabled radio button to enable the policy.
  5. In the Options area, set how often the Group Policy will be applied to computers by typing or selecting the number of Minutes .
  6. In the same area, set the amount of random time to be added to the Group Policy refresh interval by again typing or selecting the number of Minutes . This randomizes the policy refresh interval to prevent the desktops from refreshing the policies at the same time.

Disabling the Windows boot animation

Windows displays a start-up animation during the boot process. As this animation cannot be seen by users who are not connected to the virtual machine console, and additional vSphere Server resources are required to render it, it should be disabled. The following steps outline how to disable the Windows boot animation:

  1. From a Windows command prompt, load the msconfig.exe application.
  2. Select the Boot tab.
  3. Under Boot options , check the No GUI boot and Base video checkboxes as shown in the following screenshot. Click on OK to finalize the changes.

Optimizing the Windows profile

There are various Windows settings that cannot be changed using normal Group Policies, or other post-installation customizations such as those we have already described in this article. To implement these additional settings, we can customize the default Windows local user profile, implementing changes that will be applied to all users who log on to the desktop for the first time.

In most cases, it is possible to create customized scripts or Group Policies that make these changes after a user has already logged into the account. This generally requires changes to the desktop system registry and an in-depth understanding of how the settings are recorded and updated within Windows.

As we discussed earlier, and this is particularly the case with linked-clone desktops, it is preferable to apply as much of your customization as you can to the Virtual Desktop master image. This ensures that the desktops are prepared using the minimum system resources required and are fully configured prior to their use. Policies that apply after the desktops are deployed may require an additional reboot to fully implement, which is not ideal for Virtual Desktop environments.

The process used to customize the default local user profile is outlined in the Microsoft KB article Customize the default local user profile when preparing an image of Windows (http://support.microsoft.com/kb/973289). The following settings, each of which helps reduce desktop resource utilization, are recommended to be made to the default local user profile.

The changes in this section will only apply to other desktop users if they are applied using the default user profile. The changes will not affect any profiles that are already present on the desktop image.

Adjusting for best performance

Some of the more advanced UI features, such as menu fading and animations, require additional desktop CPU and memory resources. The following steps outline how to disable these effects:

  1. Right-click on My Computer and click on Properties .
  2. Click on Advanced system settings to open the System Properties window.
  3. In the System Properties window, click on the Advanced tab.
  4. Under Performance , click on the Settings button.
  5. Click on the Adjust for best performance radio button and then click on OK twice to close the window and update the settings.

Turning off system sounds

System sounds require additional server and network resources and may not be required in every Virtual Desktop environment. If sounds are required, the View administrator may want to configure a custom sound scheme based on the specific needs of the organization. The following steps outline how to turn off the system sounds:

  1. Navigate to Control Panel | Sound | Sounds .
  2. Set Sound Scheme: to No Sounds , or create and then select a custom sound scheme.

Disabling the Windows background and screen saver

Displaying a custom Windows wallpaper or screen saver requires additional server and network resources. The Windows wallpaper should be changed to either none, or a solid color, choosing the appropriate option based on the version of Windows being used. The screen saver should be disabled, or set to a blank screen, by choosing the appropriate option based on the version of Windows being used.

Summary

In this article, we have learned about how to configure the Virtual Desktop master image and about what makes it different from configuring a traditional desktop.

We discussed recommended Virtual Desktop hardware settings, how to customize the Windows file system during the installation process, optimizations that can reduce the desktop resource requirements, and when to use a custom Windows default user profile.

Resources for Article:


Further resources on this subject:


Implementing VMware Horizon View 5.2 A practical guide to designing, implementing, and administrating an optimized Virtual Desktop solution with VMware Horizon View book and ebook
Published: May 2013
eBook Price: €23.99
Book Price: €38.99
See more
Select your format and quantity:

About the Author :


Jason Ventresco

Jason Ventresco is a 14-year veteran of the IT field, currently working for EMC2 as a Principal Solutions Engineer. In this role, he architects, builds, and tests the latest end user computing solutions to validate their performance and provide guidance to EMC2 customers and partners. Jason previously worked as a member of the Global Infrastructure team for FHI 360, and as an IT consultant for WorkSmart and Xerox Global Services. He has also published the book, Implementing VMware Horizon View 5.2, Packt Publishing.

Jason lives in Raleigh, North Carolina with his wife Christine and daughter Amanda. He holds two degrees, a Master of Science in Information Assurance from Norwich University, and a Bachelors of Science in Information Technology from the University of Phoenix. In his free time, he likes to travel, ride his WaveRunner, and is a Carolina Hurricanes season ticket holder. You can follow him on Twitter at @jasonventresco.

Books From Packt


VMware View 5 Desktop Virtualization Solutions
VMware View 5 Desktop Virtualization Solutions

VMware ThinApp 4.7 Essentials
VMware ThinApp 4.7 Essentials

Instant VMware vCloud Starter [Instant]
Instant VMware vCloud Starter [Instant]

VMware View Security Essentials
VMware View Security Essentials

VMware Workstation - No Experience Necessary
VMware Workstation - No Experience Necessary

Instant VMware Player 5.0 for Virtualization [Instant]
Instant VMware Player 5.0 for Virtualization [Instant]

Getting Started with Microsoft Application Virtualization 4.6
Getting Started with Microsoft Application Virtualization 4.6

Microsoft Application Virtualization Advanced Guide
Microsoft Application Virtualization Advanced Guide


Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software