Installation and Configuration of VMware Horizon 7 for NVIDIA GRID and Blast Extreme!
Yesterday VMware released to web Horizon 7, which will likely be the most significant product launch for their End User Computing portfolio this year. Along with Horizon 7 come a number of very exciting new features that have been outlined in great detail in the following blogs:
- What’s New With VMware Horizon 7
- Introducing True SSO (Single Sign-On) in VMware Horizon 7
- Network Ports Diagram Updated for Horizon 7
- Taking a Closer Look at Horizon 7: Desktop & App Virtualization Reimagined
- VMware Horizon Blast Extreme Acceleration with NVIDIA GRID
- VMware Instant Clone Technology for Just-In-Time Desktop Delivery in Horizon 7 Enterprise Edition
- VMware Horizon 7: Your High Performance, Ultra-Secure, Throwaway Laptop Is Waiting For You
Additionally, there’s a very good, must read white paper for Deploying Hardware-Accelerated Graphics with View Virtual Desktops in Horizon 6 that I highly recommend reading. The whitepaper is focused on Horizon 6.2, but much of it still applies.
App Volumes 3.0 and User Environment Management (UEM) 9.0 also released, and Horizon Air Hybrid-Mode is pending release sometime soon. For this blog post I’m going to be focusing on Horizon 7 deployment and specifically the installation and configuration of Horizon 7 for NVIDIA GRID and Blast Extreme!
I’m most excited about Blast Extreme in this release as it’s the first protocol on the market from Citrix, Microsoft, or VMware to properly leverage the NVIDIA GPUs for hardware offloading of the encode stream (NVIDIA NVENC). The following visual characterizes the ideal scenario for getting frames rendered, captured, and encoded directly from the GPU Framebuffer (Memory):
You can read more about this process in my section about Click to Photon in my previous blog post. The NVIDIA team are truly mad scientists and have been trying tirelessly for years to educate the remote protocol and broker vendors (Citrix, Microsoft, VMware, NICE, Frame, etc.) on proper use of their APIs to grab the frames in the most efficient manner. I’m really excited to see VMware’s finally done it with Blast Extreme! The net result ultimately leads to lower CPU overhead to deliver a better user experience with more frames per second as there’s less general system overhead as the GPU takes on the heavy lifting. Lots of stats coming out from VMware and NVIDIA showing just how effective Blast Extreme and NVENC can truly be.
Let’s get started with the installation!
For my basic environment I’ll start with three systems: One View Connection Server, One View Security Server, and One Windows 7 Master Image.
I’ve pre-downloaded all the installation binaries that will be needed throughout the installation. On the View Connection Server, we’ll start using Run As Administrator for VMware-viewconnectionserver-x86_64-7.0.0-3633490.exe.
The splash screen for Horizon 7 is displayed:
Accept and click Next:
Leave Horizon 7 Standard Server, HTLM Access, and IPv4 selected click Next:
Enter a password and hint and click Next:
Configure Windows Firewall and click Next:
Authorize a group or user for administration and click Next:
Participate (or don’t) in the user experience improvement program:
When completed, click Finish:
A new icon will appear on the desktop:
You can launch this locally from the View Connection Server, or from an Administrative workstation since Flash is required. From an admin workstation, navigate to https://%viewconnectionserver.fqdn%/admin
Launch and login to the Horizon 7 Administrator Console using required credentials.
On the View Security Server we’ll repeat the same installation process. When asked, we’ll select Horizon 7 Security Server for the installation type:
When prompted, enter the FQDN of the View Connection Server:
Next, we need to generate a password for pairing. This can be done from the Horizon 7 Administration Console previously opened on the Connection Server. Navigate to View Configuration -> Servers -> Connection Servers. Select the default/first connection server and click More Commands -> Specify Security Server Pairing Password:
Specify a password and click OK:
Go back to the View Security Server installation and enter the password you specified:
Click OK to continue without IPsec:
Enter the External URL, PCoIP External URL (Public IP Address) and Blast External URL:
Configure Firewall and click Next:
After a couple minutes, click Finish:
We can verify the servers are correctly paired in the Administration Console under the Security Servers tab:
Navigate to View Configuration -> Product Licensing and Usage and apply your appropriate Horizon 7 license key:
Next, I prefer to use a publicly signed SSL certificate on the View Connection Server and View Security Server for secured communicationsTo do this, I simply need to launch the Certificates MMC snap-in for the Local Computer and browse to Personal -> Certificates. The default certificate will be listed, which we can delete:
Next, I’ll import my public certificate (*.demo.entisys.com). The important thing is to ensure the certificate property for ‘Friendly Name’ is changed to ‘vdm’:
This field is on the General tab of the certificate’s properties:
To apply the updated certificate for each of the web services, you can either restart all services starting with ‘VMware*’ or simply reboot the server:
Repeat this process on both the View Connection Server and View Security Server.
Next, we’ll configure the vCenter Server connection for power management. For the time being I’ll forego configuring Composer, that can be added at a later time. Under vCenter Servers, we’ll click Add:
Enter connection details and credentials. Most settings we’ll leave default for now:
Click View Certificate:
For now, we’ll select ‘Do not use View Composer‘:
Leave defaults and click Next:
The newly configured vCenter connection will be shown:
Next, I’ll build my master gold image from a Windows 7 template VM. This VM already has a number of Adobe and Microsoft applications installed.
Additionally, since I’ll be testing NVIDIA GRID with Blast Extreme, I have provisioned a K2 card to my host and a K260Q profile to my VM. This blog post is by no means the definitive guide for NVIDIA GRID with vSphere 6.0u2 or Horizon 7, as a primer I’d highly recommend reading the NVIDIA GRID VGPU DEPLOYMENT GUIDE FOR VMWARE HORIZON 6.1. Jeff Weiss, Jeremy Main, Luke Wignall and many others worked their butts off on this guide, and it’s a tremendous resource if you’re just getting started with NVIDIA GRID and Horizon.
A couple additional summary details about my master VM and general environment:
- Windows 7 (64-bit) fully patched with Service Pack 1
- CPU: 4 vCPU
- Memory: 16GB RAM (Reserve All Guest Memory)
- Disk: 100GB HDD on Flash Storage
- GPU: K260Q vGPU Profile
- VMware Hardware Version 11
- vSphere NVIDIA Host Driver 352.83
Windows NVIDIA VM Driver 354.80
- Both NVIDIA Host and VM drivers can be downloaded from NVIDIA’s Support site and are included in NVIDIA-GRID-vGPU-kepler-vSphere-2015-352.83-354.80.zip package.
When using NVIDIA GRID with Horizon 7, the important thing is to make sure the latest host and VM GRID drivers have been loaded, and that Device Manager displays the display adapters properly:
Once the master VM has been fully setup, we’ll install the Horizon 7 agent using the following package (VMware-viewagent-x86_64-7.0.0-3634043.exe):
Horizon Agent splash screen is displayed:
Accept and click Next:
We’ll notice there are a number of new features that we’ll come back to at a later time, including the Horizon Instant Clone Agent:
Additional features available:
For now we’ll just leave the default features selected and click Next. Click Install:
Once completed, click Finish:
Click Yes to reboot:
Now that we have a Master VM setup, let’s test access from the outside world to validate everything is working with Blast Extreme before creating desktop pools. To do this, we need to create a pool in the Administration Console. Navigate to Catalog -> Desktop Pools and click Add:
Select vCenter Virtual Machines:
Select the vCenter server:
Provide an ID and Name:
From the defaults, we’ll change display protocol to VMware Blast (available options are PCoIP, RDP, and Blast), 3D Renderer to NVIDIA GRID VGPU, and enable HTML Access:
We’ll select our Master VM and click Add to move it to the bottom:
Leave defaults and click Next:
Check Entitle users after this wizard finishes and review the pool configuration:
Click Add and provision the account for testing. When finished, click OK:
To validate functionality, I’ve created an external DNS record, a NAT on the firewall, along with the following access control list for the various Horizon ports, all pointing at the View Security Server:
access-list 100 extended permit tcp any4 host x.x.x.x eq 4172
access-list 100 extended permit udp any4 host x.x.x.x eq 4172
access-list 100 extended permit tcp any4 host x.x.x.x eq https
access-list 100 extended permit tcp any4 host x.x.x.x eq www
access-list 100 extended permit tcp any4 host x.x.x.x eq 4173
access-list 100 extended permit udp any4 host x.x.x.x eq 4173
access-list 100 extended permit tcp any4 host x.x.x.x eq 8443
access-list 100 extended permit icmp any4 host x.x.x.x
Access can also be easily tested from within the LAN/WAN, but in my case all my client devices for testing are external to the network and about 85 miles away typically.
Horizon clients for the various platforms can be downloaded from here. For my simple single VM external test, I’ll be using the Horizon Client for 64-bit (v18.104.22.1687). For the client installation, I just used all defaults and specified my fully qualified URL for the Connection Server.
Once installed, we can launch the Horizon 7 client to connect. Double click the connection to authenticate:
Authenticate using the user that we entitled to the test desktop:
Now we’ll see the default desktop that we had provisioned.
If we want to review or change any settings such as display protocol, we can right click the desktop. You can see that VMware Blast is selected by default based on the pool-wide settings.
Once done reviewing, we can double click to connect to the desktop. Now we have our Windows 7 desktop connected using NVIDIA GRID K260Q vGPU and Blast Extreme:
In the Administrator Console if we examine the Sessions tab of the Desktop Pool, the far right column shows the Display Protocol as ‘BLAST’:
Note the max resolution for this vGPU profile is 2560×1600 as we can see in the NVIDIA Control Panel:
Running dxdiag will tell us a little bit about the system. Here’s the System tab:
Here’s the Display tab:
Watching YouTube Ultra HD content using Horizon 7 and Blast Extreme for 2160p (4K) content was absolutely brilliant, event at 60-100ms latencies (85 miles away). Unfortunately my K260Q profile doesn’t quite go up to 4K on my monitor, but it looked great even with a letterbox black bar effect on the sides and top. 🙂
At some point I’ll capture and upload a couple videos to use for demonstration purposes. For now you’ll just have to take my word for it!
Finally, it wouldn’t be an NVIDIA GRID test without running the obligatory Unigine gaming demo:
The Unigen Heaven benchmark ran beautifully in both DirectX 11 and OpenGL mode:
At this stage I have fully validated my Master VM is working with Blast Extreme and NVIDIA GRID vGPU. I could create automatic desktop pools, configure policies, and perform additional optimizations at this stage. We’ll save that for another blog post!
Moving forward I’ll probably show a bit more demo videos of the user experience connected remotely to this environment using Horizon 7 and Blast Extreme with NVIDIA GRID. Also, as I do a little more deep-dive, I’ll share tips and tricks for optimizing and tuning the environment.
I am incredibly impressed with the innovations from VMware in the last 18 months, specifically around Blast Extreme and integration with NVIDIA GRID for hardware encode offloading using NVIDIA’s hardware encoder NVENC. The VMware and NVIDIA teams have absolutely knocked it out of the park with this release, and I’m hopeful to see where Blast Extreme takes us next!
There’s a lot of new features in Horizon 7 that I didn’t have time to cover in this blog post. Hopefully it was useful and effective in helping you quickly get up to speed with Horizon 7, what’s new, and the awesome innovations with Blast Extreme as a new remote protocol option. Until next time, have fun with your NVIDIA GRID GPUs and Horizon 7!
As always, if you have any comments, questions, or simply want to leave feedback, feel free to do so in the comments section below!
Thanks and enjoy,