VMware Horizon deployments can use VMware HA clusters to guard against physical server failures.

vSphere and vCenter Server provide a rich set of features for managing clusters of servers that host virtual machine desktops. The cluster configuration is also important because each virtual machine desktop pool must be associated with a vCenter Server resource pool. Therefore, the maximum number of desktops per pool is related to the number of servers and virtual machines that you plan to run per cluster.

In very large VMware Horizon deployments, vCenter Server performance and responsiveness can be improved by having only one cluster object per data center object, which is not the default behavior. By default, vCenter Server creates new clusters within the same data center object.

Note: For the latest updates to the VMware Horizon sizing limits and recommendations, see the VMware Knowledge Base (KB) article https://kb.vmware.com/s/article/2150348.

For more information, see the chapter about creating desktop pools, in the Setting Up Virtual Desktops in Horizon document. Networking requirements depend on the type of server, the number of network adapters, and the way in which VMotion is configured.

Determining Requirements for High Availability

vSphere, through its efficiency and resource management, lets you achieve industry-leading levels of virtual machines per server. But achieving a higher density of virtual machines per server means that more users are affected if a server fails.

Requirements for high availability can differ substantially based on the purpose of the desktop pool. For example, a non-persistent desktop pool might have different recovery point objective (RPO) requirements than a persistent desktop pool. For a non-persistent pool, we recommend to have users log in to a different desktop if the desktop they are using becomes unavailable.

In cases where availability requirements are high, proper configuration of VMware HA is essential. If you use VMware HA and are planning for a fixed number of desktops per server, run each server at a reduced capacity. If a server fails, the capacity of desktops per server is not exceeded when the desktops are restarted on a different host.

For example, in an 8-host cluster, where each host is capable of running 128 desktops, and the goal is to tolerate a single server failure, make sure that no more than 128 * (8 - 1) = 896 desktops are running on that cluster. You can also use VMware DRS (Distributed Resource Scheduler) to help balance the desktops among all 8 hosts. You get full use of the extra server capacity without letting any hot-spare resources sit idle. Additionally, DRS can help rebalance the cluster after a failed server is restored to service.

You must also make sure that storage is properly configured to support the I/O load that results from many virtual machines restarting at once in response to a server failure. Storage IOPS has the most effect on how quickly desktops recover from a server failure.