Today I consulted a company that implemented a VMware Horizon View 6 environment with the whole shebang: Multiple HP hosts with local striped SSD’s for the desktops, ThinApp for Application Virtualization, Nvidia Grid cards for GPU acceleration, Teradici Apex cards for PCoIP offloading, etc.
If you purely look at the specs, it seems like a pretty nice infrastructure that will be used for a customer with 75 concurrent users. Workload-wise it looks like an average customer. Most of the users have office apps and occasionally start Google Earth. And only a couple of them run heavy graphical applications like Photoshop or SCAD. Until so far, no challenges..
So, of course you are wondering where it went wrong? Well, to start off: although it looks like that, no user is the same, no company is the same, no infrastructure is the same. So indeed, Horizon View implementations aren’t the same either.
The customer was quite unhappy because their Horizon environment didn’t perform well.
Applications didn’t perform, vSGA was used for Graphical Acceleration (but isn’t suitable for CAD Apps), Management operations took too long to execute, and so on.
So where to start?
Before building your environment, you need to plan and design it.
One of the dutch VCDX guys always uses the building of houses as a metaphor. Well, imagine building a house without creating a building plan. Indeed, the project is guaranteed to fail.
Specifically for this customer, the pools were wrongly designed(which led to most of the issues). And that’s one of the most important things when implementing Horizon. Create a pool design!
When designing pools, you need to look at the different use cases:
- Are my users only working within the LAN?
- Do I have Remote Workers?
- How many users do I have?
- How many applications do I need to support?
- Are my applications I/O intensive?
- Can my applications be virtualized or do they need to be in the “Golden Image” or deployed in another way?
- What kind of Graphical Acceleration do I need?
- Do I need extra GPU’s?
- What kind of protocol will be sufficient to run my desktops on?
- Do I need enhanced security?
- Do I need connectivity to external devices like USB?
- What kind of business hours does my company have?
- etc, etc, etc.
All these different questions could mean different settings in a pool or multiple pools. So make sure all requirements are discussed and documented.
Also, when looking at the management block, it is very important to calculate the needed resources before actually buying them. In this case, the newly bought management hosts weren’t able to schedule all needed cpu cycles which led to high cpu waits. And if the maintenance operations like refreshing and resetting desktops is scheduled during the day (after logging out the desktop), shit hits the fan.
When considering a VMware Horizon environment, please take these steps:
If any help is needed in designing your VMware based End User Computing environment, please let me know as I am happy to help.