<

Go Premium for a chance to win a PS4. Enter to Win

x

Implementing RemoteFX in Windows 2012 Hyper-V

Published on
24,843 Points
18,143 Views
2 Endorsements
Last Modified:

Introduction

RemoteFX is already in use today, but you're probably not aware of it.  With the advent of Windows 2012 and Windows 8, RDP has gotten a whole lot better due to the fact that RDP now uses even more RemoteFX technologies to make desktop sessions a lot smoother, faster and feature rich.  You could even stream a 720p video without RDP skipping a beat - how cool is that?

Of course, RemoteFX does rely on the underlying hardware to make things a bit zippy, but when you're delivering content through a server which generally has a poor graphics card, then the performance isn't that great.  Try it!  RDP to a physical Windows 2012 Server, and try to play a 720p video.  Performance is poor and choppy, despite you having a gigabit connection to the server.  That's because the server isn't designed for multimedia, and the graphics card is a built-in bog standard one with virtually no hardware acceleration.

Of course, the solution to this is to add a GPU.  So, take the same server, chuck in a reasonably decent graphics card, and play the same video - then voilà!  Brilliant display.  Lack of sound?  You probably should have remembered to enable the Windows Audio service!

Thing is - most organizations are retiring their physical servers running Remote Desktop, and replacing them with bigger, beefier servers which are becoming part of Hyper-V clusters and they're now running Virtual Servers to provide the Remote Desktop solutions.  

This article is intended to help these people be able to re-provide a great desktop experience by utilizing Hyper-V's RemoteFX feature.

Prerequisites

You will need:

One or more Physical Servers which has a CPU that supports SLAT (EPT).  Don't know if your server supports SLAT?  Run Coreinfo with the -v switch
Windows 2012 with Hyper-V installed.  Need to know how to install Hyper-V on Windows 2012?  No problem, there's an article for that too!
One or more professional desktop graphics cards.
Remote Desktop License Server configured and ready to use.
A virtual machine on which you will be performing tests via RDP.

Performance Testing (Before)

Before we go ahead and do all the good stuff, let's take a look at the performance of a Windows 8 Workstation which has been given 1 GB RAM and a single vCPU (yes, I'm stingy) on top of a Windows 2012 Hyper-V Server.

Unfortunately, I was unsuccessful in trying to get a Performance Rating in Windows 8, I would just receive the following error while trying to "Rate this computer"

Performance Rating and Tools ErrorI surmise this error is as a result of the fact that it doesn't have a "good" graphics card, or it's a virtual machine.

Fortunately for us, 3rd party software is here to save the day! Using PassMark Performance Test 8, we can do a thorough performance test.

I noticed that when I started the software, the FPS for the animation was around 11-20 fps - occasionally jumping up to around 30.  This isn't so bad, considering it's RDP.

Performance Test Startup
After running "all tests" I am able to get a baseline.  The test completes although I get some really nasty errors regarding 3D performance - but this is hardly a surprise since there is virtually no 3D capabilities in a regular RDP session.

My 2D Graphics Mark is reasonably good with a result of 404.5 - bear in mind that this is via RDP, it's actually quite good.

2D Graphics Mark
My 3D Graphics Mark is so bad that it doesn't even give it an overall score - the only score it gives me is for DirectX 9 Simple, and I think you'll agree it's not very pleasing to the eye.

3D Graphics Mark

Installing My Hardware

I ordered the cheapest possible Enterprise level GPU to use for my server - an NVIDIA Quadro 2000 PCI-Express, 1GB GDDR5 card (shown below)

NVIDIA Quadro 2000HP do their own edition of the card, and as I'm going to be putting it into an HP server, I thought I'd get that card.  The installation was fairly easy - just had to slot it into a spare PCI Express slot which was on the riser. Here it is, in place and running nicely.

Card in PCI Riser Cage
Like with all graphics cards, drivers need to be installed, so we go ahead and install the display drivers for the GPU on the host server itself.  NVIDIA are really on the ball with their drivers, so we cheerfully download and install the latest WHQL drivers for our Quadro card for Windows 2012.

Driver Installation via RDP session
Now that the server has a good graphics card, and the relevant driver installed, the next step is to enable RemoteFX in Hyper-V.  RemoteFX has a prerequisite of the Remote Desktop Virtualization Host role service, so if you've not installed it yet, go ahead and install just that role.  Unfortunately, the server will require a reboot at this point.

Remote Desktop Virtualization Host
Open up Hyper-V Manager, right click your Hyper-V server and select "Physical GPUs".  Here you can select the GPU and then the checkbox "Use this GPU with RemoteFX"

Hyper-V Settings - RemoteFX
Lastly, we're going to go ahead and enable RemoteFX on our Client PC.  This is done in the Virtual Machine Settings by adding new hardware, and selecting the RemoteFX 3D Graphics Card.

NOTE: If this is greyed out then it means you did not meet all the hardware requirements!  Most likely, your CPU does not support SLAT.

RemoteFX 3D Video Adapter Add
RemoteFX 3D Video Adapter Settings
After adding the card, we power the virtual machine back on, and perform the exact same tests we just did.  No need to install any drivers!  They're already there because they're part of the Hyper-V tools.

Performance Testing (After)


Here we have the startup - as you can see, a lot faster than it was earlier.

Performance Test 8.0 Startup (After)
The results of the 2D Mark - an improvement of at least 50% from previous.

2D Graphics Mark
And the results of the 3D Mark - as you can see it's much better than it was before.

3D Graphics Mark

Proof of the pudding

Earlier, I was boasting that you can play HD videos through RDP.  Don't believe me?  Well, here's me playing The Aurora through VLC and you can clearly see that this is HD quality.  Not Full HD mind you, but 720p without skipping any frames.

Video Playback through VLC
The video featured is The Aurora (Northern Lights) and can be seen on Vimeo (link below)

Limitations and Caveats

You should be aware of the following before running to your boss asking for money to buy some awesome graphics cards:

All the testing done in this article is based on Windows 8 or Windows 2012.  RDP in both of these products use RDP version 8.  If you have Windows 2008 R2 or Windows 7 clients or servers, then the performance won't be as amazing.
Microsoft has tested 12 vGPU's per GPU Core.  This means that if you put in the maximum supported amount of 4 graphics cards, you can effectively run 48 virtual machines which have RemoteFX enable per physical machine. You are not however limited to this amount, so if your hardware can handle it, you can do even more.
NOT ALL GRAPHICS CARDS ARE SUITABLE!  Be sure to check the Windows Server Catalogue (link below) for graphics cards
Don't be tempted to buy a Desktop Graphics card thinking "Surely 3072 CUDA Cores is a lot better than a piffling 192 CUDA Cores" - because firstly, your monster of a graphics card will probably not even fit in your server, and secondly, the server is not likely to be equipped with the power requirements needed to make it run.  You may however find that Desktop products will work - they're just not recommended or approved for RemoteFX.

Further Reading

Certified Professional Graphics Cards on Windows Server Catalogue
RemoteFX on Wikipedia
Microsoft RemoteFX on Technet
NVIDIA Quadro vs. GeForce GPUs on NVIDIA (PDF)
The Aurora on Vimeo.

All links were correct at the time of publishing.  All hardware and software mentioned are Trademarks of their respective owners. The Aurora is copyright property of TSO Photography.
2
Comment
  • 4
  • 4
9 Comments
 

Expert Comment

by:DangerExperts
Dear LesterClayton

Thanks for your forum article.

Could you tell me your HP server type you used for testing?

Best regards
0
 
LVL 18

Author Comment

by:LesterClayton
The HP Server I was using (pictured) had a CPU that was not compatible (HP DL380 G5), so I ended up testing it on an HP DL380 G6 with an Intel® Xeon® Processor X5650 which has SLAT (EPT) capabilities.
0
 
LVL 24

Expert Comment

by:smckeown777
Hi LesterClayton...trying to follow your guide here and running into an issue...

I've a server running Windows 2012 with the Hyper-V roles installed - on that I then have 2 VM's(2012 Server and a 2008 R2 server) - the 2008 R2 server I'm planning on running as a TS server...

Want to install a graphics card into the host to play with this RemoteFX stuff but when I get to this part

Now that the server has a good graphics card, and the relevant driver installed, the next step is to enable RemoteFX in Hyper-V.  RemoteFX has a prerequisite of the Remote Desktop Virtualization Host role service, so if you've not installed it yet, go ahead and install just that role.

I can't install the RDP Virtualisation role on the host since it complains that it isn't part of a domain(note the 2 VM's are running on a domain - 2012 being the DC and 2008R2 a member server)

Am I missing something? Surely I can't join the HOST to this domain as it will cause all sorts of issues during a reboot?

Appreciate the guide and hopefully you can assist with this sticking point...

Thanks
Shane
0
Veeam Task Manager for Hyper-V

Task Manager for Hyper-V provides critical information that allows you to monitor Hyper-V performance by displaying real-time views of CPU and memory at the individual VM-level, so you can quickly identify which VMs are using host resources.

 
LVL 18

Author Comment

by:LesterClayton
Oh dear, yes you have run into a "design flaw" in Microsoft's new Remote Desktop Strategy - RDP Session host or RDP Virtualization Host (the one you need) can only be enabled on Servers which are joined to the domain.  This means that your host needs to be a member of the domain.  

Joining it to  your Active Directory domain won't cause any issues though - all the virtual machines thereon will still behave in exactly he same way that they have in the past.  They won't be affected at all, apart from to be able to use the new faster RDP features.

I should also point out that RDP version 8 (That comes with Windows 2012) is best suited for RemoteFX, however, you WILL still see a benefit running RemoteFX on a Windows 2008 R2 terminal server.  Your Guest VM does NOT need to be a member the domain in order to be able to use the host's RemoteFX capabilities.

if you find this article useful, please remember to click the vote button below :)
0
 
LVL 24

Expert Comment

by:smckeown777
Ok, thanks for the quick reply - and I will vote yes ;)

But joining the HOST to the domain means the DC won't be booted during a reboot - is this not going to cause issues? Long as it doesn't then I'll give it a shot...just want to be sure
0
 
LVL 18

Author Comment

by:LesterClayton
It's NOT GOOD PRACTICE to have your only domain controller running as a VM inside a host which needs to communicate with the domain.  Unfortunately our little plan don't work so don't do it!  If you add your host to the domain, your host will not be able to log in (i.e. it won't make a secure channel to the domain), and even though you can log on with local credentials, and be able to start the Domain Controller, the host will never log in to the domain, since it only attempts a login at startup.  You could try to restart the netlogon service (reboot not required), then try to log in as a domain admin, but this sounds like it's going to get a lot messier than you'd like it to be.  I would highly recommend having a secondary domain controller (even if it's a PC) running on a physical machine, so that the domain is always available if your primary host needs to be rebooted for any reason.
0
 
LVL 24

Expert Comment

by:smckeown777
That's what I thought...which is why I was confused when your guide said machine needs to be domain joined...wonder if there is anyone in Microsoft who actually thinks about these things before designing them...

Grand, at this stage this is in test mode so I can spin up another machine to act as a DC for testing purposes...thanks for the info anyways...

I assume I click on 'Was this article helpful' button above to vote? Can't see anywhere else to hit...
0
 
LVL 18

Author Comment

by:LesterClayton
Yes, but I think you may have done it already as I received an e-mail saying "Congratulations! Your article "Implementing RemoteFX in Windows 2012 Hyper-V" was voted helpful by one of your peers, earning 50 bonus points." :)  Thank you.
0
 
LVL 24

Expert Comment

by:smckeown777
Yep I bit the bullet and clicked it!! Cheers...
0

Featured Post

Configuration Guide and Best Practices

Read the guide to learn how to orchestrate Data ONTAP, create application-consistent backups and enable fast recovery from NetApp storage snapshots. Version 9.5 also contains performance and scalability enhancements to meet the needs of the largest enterprise environments.

Join & Write a Comment

Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
In a question here at Experts Exchange (https://www.experts-exchange.com/questions/29062564/Adobe-acrobat-reader-DC.html), a member asked how to create a signature in Adobe Acrobat Reader DC (the free Reader product, not the paid, full Acrobat produ…

Keep in touch with Experts Exchange

Tech news and trends delivered to your inbox every month