VMware homelab build of materials and configuration

William Lam has started a great initiative. William asked (link) everyone who owns a homelab to share there build of materials (BOM) and configuration so the vCommunity can benefit and learn from. I have a simple homelab configuration. Here an overview of the materials I used and configuration:


Cable modem in bridge mode with 250 Mbit/s down and 25 Mbit/s upload.


Ubiquiti EdgeRouter Lite 3-Port router

Access Point

Ubiquiti UniFi AP AC PRO

Layer 2 switches

2 x HP ProCurve 1810G (8 x 1GbE) manageable switches.


Shuttle SH370R6 Plus and Shuttle SH370R8 Plus. Each barebone has:

  • 500 W Plus Silver PSU
  • Intel Core i7 8700 with 6 cores and 12 threads
  • 64 GB memory
  • Samsung 970 EVO 1 TB m.2
  • Kingston datatraveler 100 G3 32 GB USB disk
  • 2 x 1 GbE Network cards

Network Attached Storage (NAS)

QNAP TS-251+ NAS with two Western Digital (WD) Red 8 TB disk in a RAID-1 configuration.


  • VMware vSphere 7 (ESXi, vCenter)
  • VMware vSAN
  • VMware Horizon
  • VMware NSX-V /
  • VMware NSX-T
  • vRealize

Build of materials (BOM)

Components Costs ~  Link to blog post
Ubiquiti EdgeRouter Lite 3-Poort Router € 93
Ubiquiti UniFi AP AC PRO € 136
HP ProCurve 1810G € 75 each. Not available anymore.
Shuttle SH370R6 Plus € 1200 Link
Shuttle SH370R8 € 1200 Link
QNAP TS-251+ € 314
2 x Western Digital (WD) Red 8 TB € 258 each. Total € 516


ControlUp 8.1 Native VMware Horizon integration

In part 2 we highlight the native support for VMware Horizon 7 and higher environments in ControlUp 8.1. The integration is based on the SOAP API. Adding a VMware Horizon environment is easy, click on the Add EUC environment and enter the name a Horizon Connection Server and click ‘OK’. ControlUp discovers Horizon components such as Connection Servers, Cloud Pod Architecture (CPA), desktop pools and sessions automatically.

Horizon Connection Servers

On the top level, you see the stress of all the Horizon Connection Servers and in the view below that each individually Horizon Connection Server is listed with there metrics.

For all the Connection Servers, the following metrics are added to the view:

  • Horizon Pods
  • Stress Level
  • Connection Servers
  • Connection Server health
  • Connection Server Max connections
  • Average machine memory
  • Machine disk IO average latency
  • Machine Disk Transfers/sec
  • Machine Net Total

Per Horizon Connection Server, the following metrics are added such as:

  • Connection server Health
  • Amount of connection Servers
  • Active connections
  • Connection Server health
  • External URL
  • Connection Server certificate valid
  • Connection Server certificate expiration date
  • License model
  • Connection Server version
  • Horizon Pod
  • Horizon Site

When installing the ControlUp agent on the Connection Servers or VDI desktop, the hypervisor and in-guest metrics are combined with the Horizon metrics.

Desktop Pools

Below the Connection Servers, the desktop pools are displayed.

Each Desktop pool in the Horizon environment is displayed with metrics such as:

  • Pool name
  • Pools type
  • Stress level
  • Pool state
  • Provisioning enabled
  • Number of machines
  • Number of machines enabled
  • Sessions
  • Disconnects
  • Problem machines
  • Default protocol
  • Power policy
  • Logoff timeout

Per Horizon pool you can view the VDI desktop and Horizon Session with metrics such as:

  • Pool name
  • Session type
  • Machine name
  • State
  • Session start time
  • Protocol
  • Desktop source
  • Client name
  • Horizon client version
  • Horizon agent version

And from the Horizon session, you can dive deeper into the processes view to troubleshoot further.

The Virtual Expert in ControlUp includes Horizon specific suggestions such as for example the available desktops remaining in a desktop pool.

As you can see, the Horizon integration adds a lot of Horizon specific metrics. All these metrics gives great insight into what happens in the Horizon environment.


ControlUp can use automation to solve Horizon issues for you. For example, it is possible the check the Horizon agent state of each VDI desktop. If the Horizon agent state goes bad (such as agent unreachable, error, unknown and already used for example) an automated action can be configured to resolve the problem. To configure automated actions, triggers are used in ControlUp.

In this example (demoed by Trentent Tyle), 3 automation triggers are created:

  • Trigger 1 operate at 10 minutes, action: Horizon Agent restart if the horizon state is wrong
  • Trigger 2 operate at 15 minutes, action: VM restart if the horizon state is wrong
  • Trigger 3 operate at 20 minutes, action: Cold Boot VM if the horizon state is wrong

Trigger 1: operate at 10 minutes

When the VDI machine boots up it has 10 minutes to register the Horizon agent state in the Horizon Connection server. A normal VDI desktop has a READY state and is available. After 10 minutes, the trigger looks if the  Horizon agent reports the wrong state such as:

  • *ERROR

If the Horizon agent state is wrong, the following action is executed: Restart the VMware Horizon Agent.

The restart VMware Horizon Agent is a PowerShell script that restarts the VMware Horizon Agent service.

It’s easy to create scripts such as PowerShell, VBS, BAT, and CMD. ControlUp itself offers a huge library of predefined/community scripts that can be used also.

Trigger 2: operate at 15 minutes

This trigger looks at the same wrong Horizon Agent states used in the 10 minutes trigger. As an action, the VDI desktop VM is restarted using a simple command.

Trigger 3: operate at 20 minutes

This trigger looks at the same wrong Horizon Agent states used in the 10 minutes trigger. As an action, a hard reboot (cold boot) is executed using a simple command on the VDI Desktop.

Because of all the Horizon metrics available, it is possible to check and repair the Horizon agent states. For IT departments, morning checks can be easily automated to ensure the VDI desktops are ready for accepting connections.

Besides the example above, there is a huge list of other Horizon items/metrics that can be used for automated actions. Here is a short overview of some:

This huge list of  Horizon metrics/items in combination with custom scripted actions that can be used makes ControlUp very powerful.


ControlUp 8.1 adds support for VMware Horizon integration and discovers Horizon components such as Connection Servers, Cloud Pod Architecture (CPA), pools and sessions automatically. This integration gives great insight into what happens in the Horizon environment. Using automated actions (triggers) with the Horizon metrics and scripted actions makes it a very powerful tool for automating actions and solve specific issues as displayed for example in the example above.

More information and a trail can be found here, link.

ControlUp 8.1 Monitor Cluster

Today ControlUp version 8.1 is released with two new major features:

  • Monitor Cluster. This new cluster model adds support for monitoring more VDI endpoints per site.
  • VMware Horizon integration.  ControlUp has now native integration with VMware Horizon environments.

In this part of the blog post, I explain the basics of the new Monitor Cluster.

Monitor Cluster

The new cluster monitor model enables adding more active monitor nodes to the monitor cluster to increase VDI scalability. Each node can support up to 5000 VDI endpoints. The amount of supported VDI endpoint depends on the processes that are active in the VDI. Below is a simple overview of the new cluster monitor model.

Monitors that belong to the same site automatically balance monitoring loads. With this new model, more VDI endpoints per site can be monitored than previous versions.

Adding extra sites allows monitors to monitor resources on an isolated network or on remote networks with low bandwidth links.  All monitors deployed to these sites must be able to route back to the initial site to receive instructions.

For a monitor node with support up to 5000 VDI endpoints ControlUp recommends  the following sizing:

  • Windows Server OS with
  • 8 vCPUs
  • 32 GB memory for up to  5000 VDI endpoints. When designing for High Availability, use the N+1 rule. For example, a customer with 8000 VMs needs three monitor nodes.

The amount of VDI endpoints a monitor node supports depends on the processes that are active in the VDI endpoint. For example, a Windows 7 VDI has an average of 120 processes. For Windows 10 an average is 200 processes.

More information on sizing ControlUp can be found here, link.

In the screenshots below an extra monitor node is added to the monitor cluster. After adding it you see two dedicated monitor nodes in the same site. The loads is automatically balanced between the nodes.

In the Manage ControlUp monitors (see right screenshot above) you have now the ability to manage monitors and sites.

Data Collector

A Data Collector is responsible for collecting metrics from VMware vCenter, VMware Horizon, Citrix Delivery Controllers, XenServer Poolmasters, AHV Clusters, and NetScaler appliances. By default, the ControlUp Monitor/Console will be the Data Collector. In the screenshot below we see that the Data Collector for the VMware Horizon environment is the ControlUp Console / Monitor.

This means when having more Data Collectors for example to the VMware Hypervisor the console initiates several API requests each interval. In larger environment the traffic can be substantial. When managing over 500 VDI endpoints it’s recommended to use dedicated Data Collector(s). Per data collector, you can designate another machine on your network to gather data from the VMware Horizon environment for example. More on sizing Data Collectors can be found here, link.

For a Data Collector make sure the ControlUp agent (including the .NET framework) is installed on the machine(s).

After adding the new Data Collector remove the ControlUp Console/Monitor.

More information on the data collector can be found here, link.


With ControlUp 8.1 it is now possible to add more VDI endpoints with the new Monitor Cluster model. Because of this, it’s now possible to monitor large VMware Horizon environments with ControlUp. In part 2 of this blog post, I will highlight the new VMware Horizon integration.