What Is VMware Horizon?
VMware Horizon is VMware’s portfolio of virtual desktop products, which lets IT administrators deploy virtual desktops and applications to end users, via a variety of endpoint devices such as laptops and mobile phones. Horizon is an enterprise-grade virtualization platform that makes it possible to manage thousands of virtual desktops with high utilization of data center hardware.
Horizon delivers the benefits of virtual desktop infrastructure (VDI), including security, reliability, and access, across all types of client devices. It uses golden images, which means administrators need to maintain only a few master images, instead of having a dedicated VM to maintain for each user.
VMware also provides Workspace ONE, which lets end users perform single sign on (SSO) to virtual desktops.
VMware Horizon Concepts
Horizon includes the following components and integrated products:
- Horizon Client—VMware Horizon Client for Windows, macOS, iOS, Linux, Chrome, or Android is installed on each endpoint. The client lets users access virtual desktops and published applications from a variety of end-user devices, including mobile phones, zero clients, and thin clients.
- Unified Access Gateway (UAG)—a secure gateway for users to access desktops and applications from outside the corporate firewall. VMware UAG is an appliance deployed in the DMZ (Demilitarized Zone), which acts as a proxy host for connections within the network of trusted companies.
- Horizon Connection Server—users typically connect to Connection Server through the UAG. The Connection Server checks credentials and routes users to virtual desktops and native, virtual, or RDSH-based applications.
- Desktop and application resources—Horizon can manage Windows resources in single-session desktop pools, or shared-session RDSH server farms. When using Dynamic Environment Manager, configuration files and policy settings are applied to each desktop. When using App Volumes, the App Volumes application package supplements applications installed on the user’s computer.
- Virtual desktop pools—the VMs in these pools are created from golden images. Horizon Agent is installed on each virtual desktop, communicating with Horizon Client on end-user devices, to determine which applications and desktops are available to users. Horizon Agent also provides features such as connection monitoring, client drive redirection, integrated printing, and access to locally attached USB devices.
- Instant clone provisioning—a vSphere technology used to clone desktops and RDSH servers. This allows administrators to quickly create VMs, save disk space, and simplify patch and update management using shared virtual disks.
- vCenter Server and vSphere hosts—VMware Horizon comes with vSphere, VMware ESXi hosts and VMware vCenter Server, designed to build and manage virtual infrastructure. The vCenter Server system provides key management and operations functions essential for VDI, such as provisioning, replication, and VM management functions.
Sizing Best Practices
Now that we are familiar with key concepts of VMware Horizon, let’s see what is involved in deploying VMware Horizon on data center infrastructure.
RAM accounts for most of the server hardware cost, so it is important to determine the correct allocation when planning your virtual desktop deployment. Too little RAM increases Windows paging usage and slows end-user performance. Conversely, if too much RAM is allocated, guest operating system pagefiles, swap files, and stop files can become too large, affecting storage capacity.
When calculating CPU demand, monitor average CPU utilization of the various types of employees in the company. Use utilities like Perfmon or the ESXi Esxtop utility to determine the average and maximum CPU utilization for each group.
If many employees perform the same operation all at one time—for example, scheduled software updates or virus scans—performance can spike on VMs. You’ll need to determine how many users the virtual machine can support without causing any performance issues.
Make sure that each VM has enough storage space for production systems, user content, and applications. Required storage space is usually smaller than the disk size used by a typical employee workstation. Make an effort to reduce the size of the operating system—this saves a lot of storage across the entire data center.
Some considerations when estimating storage space:
- The suspend file size used by ESXi is equal to the RAM allocated to the VM
- Windows pagefile defaults to 150% of RAM
- Each VM has approximately 100MB of log files
Configuration Best Practices
The following best practices can help you deploy and maintain VMware Horizon more effectively.
Prepare for Active Directory
Horizon typically uses Active Directory (AD) for authentication tasks like rights management and certificates. To prepare for Active Directory integration, go through the following steps:
- Join each Horizon Connection Server to an AD domain
- Create an organizational unit (OU) for your remote desktops
- Create AD groups for remote desktop users
- Create a user account for the vCenter Server and View Composer
- Create a user account to enable instant clone of desktops
- Apply the component specific Group Policy Administrative Templates (ADMX) files
Use Public Cloud for Extra Capacity
VMware lets you create virtual desktops known as pods, which you can run on multiple public cloud providers, using VMware Cloud infrastructure on each provider. You can leverage this to migrate to the cloud, to get extra capacity beyond the servers available in your data center, or to deploy desktops closer to the physical locations of your end users.
Provision RDSH Servers Using Instant Clones
If you are using Remote Desktop Server Host (RDSH), use VMware Horizon’s instant clone feature to deploy them. This is faster and makes RDSH servers much easier to maintain compared to traditional deployment. The process involves:
- Creating a new server farm or updating a new server farm
- Publishing golden image—takes between 7-40 minutes
- Provisioning RDSH servers—takes only 1-2 seconds each. Clones are created from a running parent VM.
- When you need to scale up, the only thing that needs to be done is provision additional servers, because images are already published.
RDSH Server Load Balancing
By default, Horizon Connection Server balances new sessions between RDSH servers, by calculating how many sessions (including pending and disconnected) are associated with a server, as a percentage of total sessions.
You may want to define different load balancing behavior. First, check the current load of the server in the Horizon Console > System Health. To create custom load balancing:
- Configure a load balancing policy in the Horizon Console
- Write a load-balancing script
- Set a server’s load index to -1, which disables load balancing
Remote Cached User Profiles
Avoid keeping profile information on desktop VMs. This uses a large amount of storage and is not needed in a non-persistent VDI deployment, because users may get a different RDSH or Windows 10 desktop every time they login. It is best to remove cached user profiles when the user logs out.
Use Horizon Performance Tracker
The Horizon Performance Tracker lets you monitor the desktop user experience. It provides two main types of metrics:
- General utilization metrics such as bandwidth, frames per second (FPS) and CPU usage
- Session details including user location, devices used to connect, and hardware peripherals available on the device
In this article, I covered basic concepts of VMware Horizon, and discussed several best practices that can help you get the most out of your Horizon deployment:
- Optimize memory, CPU, and disk size when planning your deployment
- Prepare for Active Directory integration
- Extend your deployment to the public cloud using VMware cloud
- Provision RDSH servers more easily using instant clones
- Use RDSH server load balancing
- Cache user profiles remotely to improve performance
- Use Horizon performance tracker to monitor utilization and end user performance
I hope this will be useful for improving the operational readiness of your VMware Horizon deployment.