RemoteFX – расширение возможностей технологии удаленных виртуальных рабочих столов (rdp), позволяющая виртуализовать серверный видеоадаптер. Данная технология была разработана компанией Calista Technologies, которую в дальнейшем приобрела Microsoft.
Технология RemoteFX впервые появилась в ОС Windows Server 2008 R2 SP1 и поддерживается клиентскими ОС Microsoft начиная с Windows 7 SP1. Вместе с выходом Windows Server 2012 и Windows 8, возможности RemoteFX были существенно расширены.
RemoteFX в Windows Server 2012. Что нового?
Что же нового предлагает нам Microsoft в обновлённой версии RemoteFX:
- Multi-Touch: поддержка мульти-тач в RDP сессии (в совместимом клиенте, как минимум RDP 8.0). RDS поддерживает полный набор жестов, которые работают в Windows 8 (например, увеличение или открытия меню настроек) между клиентом и хостом с разрешением до 256 касаний.
- Адаптивная графика: динамический выбор типа компрессионного кодека в зависимости от передаваемого изображения и качества канала
- Специальный API для перенаправления медиа-контента: используется для передачи медиа-нагрузки на клиентское устройство, облегчая тем самым рендеринга аудио-видео контента (на текущий момент используется только в Lync)
- WAN Enhancements: возможность работы на WAN каналоах с сохранением всех преимуществ RemoteFX за чет использования специальных адаптивных расширения для протокола UDP.
- GPU Changes: поддержка как аппаратных так и программно-эмулируемых GPU. Добавлена поддержка DirectX 11.
- Динамическое перенаправление USB-устройств: Возможность добавления локальных USB устройств без необходимости переподключения.
- Восстановление сессий для RemoteApp и Remote Desktop. Возможность переподключения к существующим сессиям с сохранением последнего состояния
- RemoteFX Network Auto Detect: автоматическое определение качества канала для оптимизации качества сессии и производительности
Аппаратные и программные требования для использования RemoteFX в Windows Server 2012
Чтобы полноценно воспользоваться всеми нововведениями в технологии RemoteFX, необходимо, чтобы система соответствовала следующим требованиям:
- Аппаратное соответствие для запуска роли HyperV (поддержка Intel VT или AMD-V, а также XD/NX bit)
- Процессор, совместимые со SLAT (Second-Level Address Translation — преобразование адреса второго уровня). Для процессоров AMD эта технология называется NPT/RVI (Nested Page Tables), для Intel CPU – EPT (Extended Page Tables).
- Графический контроллер (GPU) с большим количеством видеопамяти, поддерживающий DirectX 11 (WDDM 1.2).
- На сервере должны быть установлены роли Remote Desktop Virtualization Host и Remote Desktop Services
- Виртуальная машина Windows 8 Enterprise x64 c драйвером Windows Display Driver Model (WDDM) 1.2 и выше
Развертывание RemoteFX на Windows Server 2012
Перейдем, собственно, к описанию сценария разворачивания и настройки технологии RemoteFX в Windows Server 2012
- Для работы нам понадобится сервер с Windows Server 2012 редакций Standard или Datacenter (Hyper-V возможно развернуть только на них)
- Установите актуальную версию драйвера видеокарты (не все вендоры выпускают драйвера именно под Windows 2012, поэтому подойдет драйвер для Windows 8)
- Установите роль Hyper-V
- Установите компонент Remote Desktop Virtualization Host роли Remote Desktop Services. Это можно сделать с помощью консоли Server Manager или команды Powershell:
Install-WindowsFeature –name RDS-Virtualization -source d:\sources\sxs
(где d:\ диск с дистрибутивом Windows Server 2012)
- С помощью диспетчера Hyper-V новую виртуальную машину с Windows 8 Enterprise (только эта версию Windows 8 поддерживает RemoteFX).
- Установите на гостевую Windows 8 службы интеграции Hyper-V Integration Services (обычно это происходит автоматически, однако следует в этом все-же убедиться)
- Далее нужно разрешить использование виртуальными машинами физического графического процессора (GPU). Для этого в консоли управления Hyper-V перейдите в параметры сервера (Hyper-V Settings), выберите раздел Physical GPUs, затем выберите графический процессор (в данном примере это NVIDIA GeForce GTX 650) и отметьте галочкой, что его можно использовать с RemoteFX (Use this GPU with RemoteFX).
- Затем необходимо включить удаленный рабочий стол (rdp) на гостевой ОС (как включить удаленный рабочий стол в Windows 8).
- Нам осталось добавить трехмерный видеоадаптер RemoteFX в гостевую Windows 8. Это можно сделать в свойствах виртуальной машины. Однако при добавлении трехмерный видеоадаптер RemoteFX из GUI (Установка оборудования -> Трехмерный видеоадаптер RemoteFX) появляется ошибка: Error applying RemoteFX 3D Video Adapter changes.
Как оказалось это баг именно графической консоли, если тоже самое сделать с помощью powershell, то добавление адаптера обрабатывается корректно.
Import-Module RemoteDesktopServices Add-VMRemoteFx3dVideoAdapter -VMName ИмяВиртуальнойМашинысWindows8 Set-VMRemoteFx3dVideoAdapter –VMName ИмяВиртуальнойМашинысWindows8 –MaximumResolution 1920x1200
Примечание. Естественно, если виртуальных машин несколько, эти команды нужно выполнить для каждой из них. - В итоге (после пары перезагрузок), внутри виртуальной машине с Windows 8 в диспетчере устройств в разделе Display Adapters должно появится устройство Microsoft RemoteFX Graphics Device — WDDM.
- Осталось потестировать работу RemoteFX, подключившись к созданной нами виртуальной машине с помощью клиента rdp v8.