Horizon 6–– vGPU with RHEL 7.1

With this post, I will be going over vGPU setup on Linux. First of all, the most up to date information can be found at product documentation. As of writing this post, the latest Horizon version is 6.2.1, and with this release, the supported guest OS versions for 3D Graphics are as follows:

vSGA : RHEL 7.1 Workstation x64 with NVIDIA GRID K1 or K2 graphics cards.

: RHEL 7.1 Workstation x64 with NVIDIA GRID K1 or K2 graphics cards. vDGA : RHEL 6.6 Workstation x64 with NVIDIA GRID K1 or K2 graphics cards.

: RHEL 6.6 Workstation x64 with NVIDIA GRID K1 or K2 graphics cards. vGPU : RHEL 6.6 Workstation x64 with NVIDIA Maxwell M60 graphics cards.

: RHEL 6.6 Workstation x64 with NVIDIA Maxwell M60 graphics cards. vGPU: RHEL 7.1 Workstation x64 with NVIDIA Maxwell M60 graphics cards.

Just to prevent any confusion, Linux guest OS versions supported with Horizon 6.2.1 are;

As I will be configuring vGPU, I am going to use RHEL 7.1 with Maxwell M60 graphics card.

Quick Overview

PREP

First, RHEL includes open VMware tools so no need to install VMware tools.

Make sure a proper DNS resolution.

The run level must be 5 for the Linux desktop to work.

Make sure that an HD audio device is not present in the virtual hardware settings for the VM.

AD integration and SSO is out of scope for this post, please refer to the documentation.

Make sure View agent is not installed before NVIDIA drivers.

Information about Bulk deployment can be found here.

Install NVIDIA Drivers

Once you install OS, attach NVIDIA as shared PCI device with vGPU Profile and make sure that VM’s memory is all reserved.

Check Controller with: lspci | grep VGA

Check nouveue. The driver should be running;

lsmod | grep nouveau

We need to disable nouveau; edit /etc/default/grub and add rdblacklist=nouveau to the Linux options;

Then we need to run grub2-mkconfig –o /boot/grub2/grub.cfg

Lastly, we need to blacklist nouveau: edit /etc/modprobe.d/blacklist.conf and add “blacklist nouveau”. If the file does not exist, create it.

Now its time to reboot and verify nouveau is not running with lsmod |grep nouveau.

Install prerequisites for NVIDIA driver ;

yum install gcc-c++ kernel-devel-$(uname -r) kernel-headers-$(uname -r) –y

Copy the driver with WinSCP, and run chmod +x

Switch to “init 3”

install the driver

Select yes for X config, and once done switch to run level 5 and then reboot.

Once installed, we will not be able to use console.

Install View Agent:

Create an “View administrator” account in AD and enable reverse encryption. This account should have “View administrator” privileges on Horizon View.

Extract the files; tar -xzvf VMware-viewagent-linux-build##.tar.gz

an install using ./install_viewagent.sh with the options below :

-b BROKER FQDN

-d domainname (eg, demo.local)

-u AD User Account

-p password. (You need to escape special characters with \)

and reboot once done.

Now you should see the VM under Registered machines section in Horizon View

To check View agent service: service viewagent status

You can now create a Desktop Pool and access the VM via Horizon Client.

Licensing On Linux

As you might be aware, NVIDIA now requires a licensing server and VMs check-in/out licenses. To specify license server to connect from the VM, edit

sudo vi /etc/nvidia/gridd.conf as seen in the picture

Then, restart the service; sudo service nvidia-gridd restart

You can verify that the VM gets license by sudo grep gridd /var/log/messages

Once everything is working, you can login to the VM with Horizon Client and run

glxinfo | grep NVIDIA to verify GPU is running.

An lastly, here is a short demo (FRL is removed);

Keywords: Linux, VDI, GPU, vGPU,