Zaczynając wpis o RemoteFX warto wpierw przytoczyć termin VDI. VDI to skrót od angielskiego terminu Virtual Desktop Infrastructure, czyli Infrastruktura wirtualnych pulpitów. Jest to zbiór technologii pozwalających na centralizacje środowiska pracy użytkownika(dane, aplikację) poprzez wirtualizację klienckich systemów operacyjnych. Użytkownicy do takiego środowiska („swoich pulpitów”) dostają się zdalnie z komputerów, terminali (thin client), urządzeń mobilnych. Dla użytkowników w teorii nieśnie to duży komfort pracy, ponieważ niezależnie od miejsca pracy i urządzenia mają dostęp do swoich danych i aplikacji. Czemu w teorii? Ponieważ zawsze muszą mieć dostęp online do VDI. Dla firmy i IT VDI zmniejsza koszty obsługi użytkownika i wprowadza standaryzację stacji. Niestety koszty początkowe wejścia w to rozwiązanie są wysokie.

Na rynku są dostępne trzy wiodące rozwiązania:

  • Microsoft Virtual Desktop Infrastructure
  • Citrix XenDesktop
  • VMware View

Czym jest RemoteFX?

RemoteFX to technologia sprzętowej akceleracji grafiki w maszynach wirtualnych hostowanych na Hyper-V wykorzystywana przy połączeniach protokołem RDP(połączenia pulpitu zdalnego). Rozwiązanie to wykorzystuje potencjał nowoczesnych kart graficznych poprzez wykorzystanie ich do przetwarzania grafiki z maszyn wirtualnych i jednoczesnym odciążeniu procesorów. RemoteFX wspiera także od początku swojego istnienia przekierowanie USB. Pozował to na podłączenie urządzeń z USB(kamerki, telefony komórkowe) do maszyny wirtualnej poprzez RDP, czyli łącząc się z jakiegoś komputera do maszyny wirtualnej możemy podłączyć do niej na przykład telefon lub tablet z IOS i iTunes poprawnie połączy się z nim.

RemoteFX został wprowadzony w SP1 dla Windows Server 2008R2, jako części roli Remote Desktop Services w celu rozszerzenie możliwości VDI Microsoftu. RemoteFX może także zostać użyty w przypadku wykorzystania Citrix XenDesktop razem z Hyper-V.

Protokół Remote Desktop Protocol w wersji 8 zaimplementowany w Windows Server 2012 oraz Windows 7 i 8 (dla Windows 7 jest dostępna aktualizacja RDP do wersji 8 - http://support.microsoft.com/kb/2592687) przynosi sporo rozszerzenie dla RemoteFX:

  • RemoteFX Adaptive Graphics
  • RemoteFX for WAN
  • RemoteFX Multi-Touch
  • RemoteFX Media Redirection API

Dokładny opis i działanie można obejrzeć w filmie z konferencji TechEd NA 2012 - RemoteFX and RDP Rocking RDS in Windows Server 2012.

RemoteFX działa tylko na maszynach wirtualnych z Windows 7 SP1 i 8 w wersji Enterprise!

Wymaganie sprzętowe

Do uruchomienia RemoteFX musimy spełnić następujące warunki.

Procesor musi pozwalać na uruchomienie Hyper-V, czyli posiadać sprzętowe wsparcie dla wirtualizacji. W Intelu to Intel VT, a w AMD to AMD-V. Następną funkcją wymaganą przez Hyper-V jest Data Execution Prevention, w Intelu to Intel XD, a w AMD - AMD NX. RemoteFX dodatkowo wymaga od procesora obsługi Second Level Address Translation, w skrócie SLAT. Technologia ta zmniejsza zużycie procesora w procesie tłumaczenia adresów pamięci RAM w maszynie wirtualnej na adresy w pamięć fizycznej RAM. W Intelu ta technologia została zaimplementowana pod nazwą Extended Page Tables, a w AMD pod nazwą Rapid Virtualization Indexing.

Karta graficzna użyta z RemoteFX musi obsługiwać DirectX w wersji 11 oraz posiadać sterowniki WDDM w wersji 1.2. Najlepiej do użycia z RemoteFX w zastosowaniach produkcyjnych sprawdzają się karty z serii profesjonalnych takich jak AMD FirePro oraz Nvidia Quadro. Do testów można też użyć kart konsumenckich. Ja testy przeprowadzałem na NVIDIA GeForce GTX 550 Ti, która działa poprawnie z RemoteFX.

Karta graficzna musi posiadać odpowiednia ilość pamięci. Aby to wyliczyć można posłużyć się poniższą tabelą. Powstała ona dla wersji 2008R2, ale jest zgodna z 2012, z tą różnicą, że w 2012 można użyć do 8 monitorów.

Maksymalna rozdzielczość monitora Maksymalna liczba monitorów w ustawieniach maszyny wirtualnej
1 monitor 2 monitory 3 monitory 4 monitory
1024 x 768 75 MB 105 MB 135 MB 165 MB
1280 x 1024 125 MB 175 MB 225 MB 275 MB
1600 x 1200 184 MB 257 MB 330 MB 385 MB
1920 x 1200 220 MB 308 MB 425 MB 495 MB

Instalacja i konfiguracja

Serwer

Aby użyć RemoteFX w Windows Server 2012 lub Hyper-V Server 2012 musimy mieć zainstalować rolę Hyper-V oraz Remote Desktop Virtualization Host.

Można tego dokonać jednym poleceniem w powershell. Po jego wykonaniu serwer automatycznie zrestartuje się, jeśli będzie to wymagane. Polecenie to wykonujemy na uprawnieniach administratora.

Add-WindowsFeature RDS-Virtualization -IncludeManagementTools –Restart

Po wykonaniu polecenia mamy zainstalowany serwer Hyper-V oraz role Remote Desktop Virtualization Host. W Hyper-V konfigurujemy standardowo ścieżki umieszczenia plików maszyny wirtualnych, tworzymy siec typu External. Jak tego dokonać możecie przeczytać w moim wpisie - Podstawy instalacji i konfiguracji Hyper-V Server 2012

Dodatkowym ustawianiem, które dochodzi do Hyper-V w przypadku użycia RemoteFX w jest Physical GPUs. W ustawieniach możemy zobaczyć konfiguracje kart graficznych dostępnych w systemie oraz jeśli chcemy użyć ich do RemoteFX to możemy zaznaczyć checkbox Use this GPU with RemoteFX.

Od strony Hyper-V to koniec konfiguracji.

Maszyny wirtualna

Przejdźmy do stworzenia maszyny wirtualnej wykorzystującej wirtualne GPU dla RemoteFX.

Tworzymy normalnie maszynę wirtualną. Po jej utworzeniu wchodzi w jej ustawienia i z pozycji Add Hardware wybieramy RemoteFX 3D Video Adapter i klikamy Add.

W ustawieniach maszyny wirtualnej pojawią się ustawienia karty graficznej. W nich możemy wybrać maksymalną ilość monitorów i maksymalna rozdzielczość.

Po takim skonfigurowaniu maszyny wirtualnej możemy w niej zainstalować system operacyjny. W moim przypadku to Windows 8 w wersji Enterprise. Możemy również zainstalować Windows 7 z SP1 w wersji Enterprise. Wymagana wtedy będzie instalacją aktualizacji KB2592687.

Po instalacji w systemie operacyjnym na maszynie wirtualnej włączamy możliwość podłączenia pulpitem zdalny. Aby to skonfigurować wchodzimy w Panele Sterowania -> System -> Remote -> Remote Desktop -> Allow remote connections to this computer.

Tak skonfigurowana maszyna wirtualna będzie teraz działać z RemoteFX przy połączeniu poprzez pulpit zdalny.

W ustawieniach klienta pulpitu zdalnego ustawiamy automatyczny dobór ustawień w zależności, od jakości połączenia.

W następnej cześci wpisu pokaże działanie RemoteFX w praktyce.