Creating VMs that are powerful enough for heavy graphical programs (e.g. CAD & modelling software) requires a lot of graphics processing power from a capable GPU. In my experience, using XenServer along with the Nvidia GRID graphics cards allows for a compact & powerful solution to virtualising CAD desktops.
The Nvidia GRID cards I had been using were being temperamental with the VMs and upon further digging I found that a firmware update for the cards to fix issues with "multiple monitors on VMs" was released at the end of 2013. It seems that the Nvidia GRID card will not function with XenServer if this firmware update is not installed.
Symptoms Link to heading
There aren't any noticeable symptoms to this problem however there are a couple of ways of identifying differences between the GRID cards.
Detailed PCI Information Link to heading
- Identify card bus ID
[root@asuka ~]# lspci |grep -i nvid
00:06.0 VGA compatible controller: NVIDIA Corporation GK107GL [GRID K1] (rev a1)
- Show verbose information about card (Check the lines starting with Region to see if the memory has a mapped address, question marks indicate a passthrough issue)
[root@asuka ~]# lspci -vvv -s 00:06.0 # Note: Replace 00:06.0 with the bus ID in the output from above command
Identify Version of VGA BIOS Link to heading
- Boot up a VM with the issue GRID card passed through
- Find the BIOS version from the VMs command line
[root@asuka ~]# grep VideoBIOS /var/log/Xorg.0.log
VideoBIOS Versions Link to heading
From the output in Xorg.0.log above it will identify the VideoBIOS version, the versions below are ones that I have encountered on GRID cards along with info on whether or not they worked.
80.04.60.00.31 - GRID K2 - Doesn't work with a VM
80.04.d4.00.0a - GRID K2 - Works with a VM
80.07.6d.00.15 - GRID K1 - Doesn't work with a VM
80.07.be.00.0{2/3/4/5} - GRID K1 - Works with a VM
Firmware Update Link to heading
- Download the firmware from the link at the bottom of the page
- On the XenServer, change to the location of the tarfile
- Untar the file
[root@asuka ~]# tar xvzf GRID_UPDATE_K1_K2.tar.gz
- Change into the new directory
[root@asuka ~]# cd GRID_UPDATE_K1_K2/
- Run the non-automated installation script
[root@asuka GRID_UPDATE_K1_K2]# ./gridpro-update_R1.0.run
- Respond to the prompts as shown in the below output, lines in bold have user responses Note: The first 2 firmware updates are skipped as the version numbers differ from the desired firmware version
[root@glatz GRID_UPDATE_K1_K2]# ./gridpro-update_R1.0.run
NVIDIA Firmware Update Utility
Version 5.151g
Press 'y' to confirm ('s' to skip, 'a' to abort): y
Do not turn off the computer or attempt to reboot your computer while the NVIDIA firmware is being updated. If the computer is turned off, or power is lost, you may be unable to restart your computer.
Searching for display adapters to update...
VGA BIOS Version: F0.47.1D.00.B0 REV:00000000
Found display adapter suitable for this upgrade.
CONFIRM: You are about to update the firmware of the display adapter. Are you sure you want to do this?
Press 'y' to confirm ('s' to skip, 'a' to abort): s
VGA BIOS Version: 80.04.D4.00.09
Found display adapter suitable for this upgrade.
CONFIRM: You are about to update the firmware of the display adapter. Are you sure you want to do this?
Press 'y' to confirm ('s' to skip, 'a' to abort): s
VGA BIOS Version: 80.04.D4.00.0A
Found display adapter suitable for this upgrade.
CONFIRM: You are about to update the firmware of the display adapter.
Are you sure you want to do this?
Press 'y' to confirm ('s' to skip, 'a' to abort): y
The display may go *BLANK* on and off for up to 10 seconds or more during the update process depending on your display adapter and output device.
Clearing original firmware image...
.Storing updated firmware image...
.........
Verifying update...
Update successful.
No more matches found.
- Once the update has finished, reboot the XenServer
[root@asuka GRID_UPDATE_K1_K2]# /sbin/init 6
Download Link Link to heading
http://www.dell.com/support/home/us/en/19/Drivers/DriversDetails?driverId=1YCT8