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.
Спасибо за мануал!
В статье самое важное не сказано: нельзя изменять параметр размера видеопамяти. По умолчанию оно составляет 10-20% от памяти графического(их) адаптера(ов). На выходе вроде и 3д есть в гостевой системе, а полноценно использовать это нельзя.
Изменение этой настройки заявлено только следующей после Windows Server 2012 R2 редакции сервера.
Спасибо за замечание! Думаю, это очень важно для всех тех, кто решился внедрить RemoteFx в продакшн