Windows Server Remote Desktop Services (RDS) is used to present server-based desktop sessions across the network to thin clients or PCs, but it has always been limited by slow graphics rendering, restricting the programs that can be delivered to simple office productivity applications.
Furthermore, in Windows Server 2008 R2 prior to SP1, virtual machines hosted on Hyper-V weren’t able to directly harness the processing power of the server’s physical GPU, limiting the real-world applications of Microsoft’s VDI solution.
But with Microsoft’s 2008 purchase of Calista Technologies, which provides an extension to the remote desktop protocol (RDP) for virtualizing the entire GPU, it’s now possible to stream high-quality 3D graphics and audio over RDP, including multimedia applications, and redirect a wider range of USB devices.
This technology was rebranded by Microsoft as RemoteFX and consists of three main features:
The Hyper-V Remote Desktop (RD) Virtualization Host server role supports all of these RemoteFX features, but the Remote Desktop Session Host (terminal services) role only supports hardware-accelerated compression.
Hardware-accelerated compression for the RDP protocol and GPU-rendered 3D graphics in VMs enable graphic- and multimedia-intensive applications, such as Aero-enabled Windows desktops and 3D CAD programs, to be delivered to thin clients in a virtual desktop infrastructure over a LAN.
While the RDP protocol has supported high-level redirection of USB devices for some time, RemoteFX can redirect previously unsupported devices, such as webcams, scanners and multifunction printers. RemoteFX USB redirection must be enabled using the Allow RDP redirection of other supported RemoteFX USB devices from this computer setting on clients in Group Policy under:
Computer Configuration | Administrative Templates | Windows Components | Remote Desktop Services | Remote Desktop Connection Client | RemoteFX USB Device Redirection
For Windows RD Virtualization Host servers, the CPU must support Second-Level Address Translation (SLAT). This is referred to as Extended Page Tables (EPT) on Intel processors and Nested Page Tables (NPT) on AMD products. The server should have at least one GPU with dedicated video memory that supports both DirectX 9.0c and DirectX 10.0. Check with the GPU’s manufacturer to ensure that the card supports RemoteFX.
If you intend to install multiple GPUs in one server or utilize Hyper-V’s Live Migration feature to move virtual workloads between servers, ensure that the GPUs are all identical. Microsoft states that the current release of RemoteFX can support up to 12 virtual machines per physical GPU. RemoteFX hardware encoders can also be installed in servers for increased scalability.
When installing RemoteFX on a RD Session Host server, the CPU must additionally support Streaming SIMD Extensions 2 (SSE2). Remote Desktop clients need to run Windows 7 Service Pack 1 or another Windows OS that supports the Remote Desktop Connection 7.1 client, such as Windows Thin PC.
This example shows how to configure RemoteFX where the RD Virtualization Host and Session Host server roles are already installed on one server as a basic VDI solution. Before following the instructions below, make sure you have a good understanding of Hyper-V. For more information, see Go Virtual with Hyper-V.
First, start by adding RemoteFX to the RD Virtualization Host:
Figure 1 – Select Role Services (RemoteFX)
While RemoteFX hardware-accelerated compression is supported by RD Session Hosts, RemoteFX is an installable role service for the RD Virtualization Host role only.
Once the server has rebooted, configure the RD Session Host role to enable support for RemoteFX:
Figure 2 – RDP-Tcp Properties
Next, configure the Hyper-V VMs to support RemoteFX. Note that to complete the following procedure, the VM you wish to configure must be shut down. Additionally, ensure that Remote Desktop Services is configured and working in the VM before adding the RemoteFX 3D video adapter hardware so that you can continue to connect to the VM once the RemoteFX video adapter driver has installed:
Figure 3 – Hyper-V Manager VM Settings Dialog
Now start the VM from the Hyper-V Manager console and the driver for the new RemoteFX adapter should install. Restart the VM as prompted. Once the driver for the RemoteFX adapter has installed in the VM, it’s no longer possible to connect to the VM from the Hyper-V Manager console.
Finally, configure the Remote Desktop Connection client on a Windows 7 SP1 machine so that you can connect to the RemoteFX-enabled VM:
Figure 4 – Remote Desktop Connection
You can now connect to the VM by entering its IP address or DNS name on the General tab and enjoy the Aero theme and other capabilities enabled by RemoteFX in the Remote Desktop Connection window.
If you are using the Personal Virtual Desktops or Virtual Desktop Pools features, additional configuration will be required to enable RemoteFX. For more information, see the full documentation on Microsoft’s website.