RemoteFX: una estensione del protocollo RDP per scenari VDI e Remote Desktop con Windows 7 e Windows Server 2008 R2
Ieri, durante la keynote della Worldwide Partner Conference, è stato annunciato il rilascio della Beta del Service Pack 1 di Windows Server 2008 R2 e di Windows 7. Potete scaricare la beta del Service Pack 1 registrandovi gratuitamente sul sito TechNet.
Una delle novità del Service Pack 1 riguarda l’implementazione della tecnologia RemoteFX, annunciata per la prima volta a marzo durante il Desktop Virtualization Event, tecnologia arrivata in Microsoft tramite l’acquisizione di Calista Technologies avvenuta a gennaio 2008.
In questo post/articolo vorrei darvi qualche informazione relativa al funzionamento e all’architettura di RemoteFX. Considerando il fatto che siamo ancora in Beta, potrebbero esserci dei cambiamenti alle specifiche o al funzionamento di alcuni compomenti prima del rilascio definitivo sul mercato.
[Update] E’ disponibile per il download la documentazione tecnica relativa ai cambiamenti introdotti con il Service Pack 1.
Le funzionalità del Remote Desktop Protocol 7.0
Come abbiamo già approfondito, la versione 7.0 del Remote Desktop Protocol introdotta con Windows 7 e Windows Server 2008 R2 (ed estesa anche a Windows Vista SP1 e Windows XP SP3 con il Remote Desktop Connection Client 7.0) consente di sfruttare i Virtual Channel presenti nel protocollo RDP per creare una “Windows Experience” di alta qualità per gli utenti.
Il protocollo RDP 7.0 consente infatti (tra macchina locale e macchina VDI remota o sessione RDS/TS remota) la redirezione bidirezionale dell’audio, la redirezione della pipeline Windows Media Foundation e Direct Show abilitando ad esempio il rendering di un video HD direttamente nel client senza sovraccaricare il server , la redirezione di dispositivi come stampanti, dischi locali, drive USB, smartcard, clipboard, fotocamere digitali che supportano il Picture Transfer Protocol, lettori musicali portatili che supportano il Media Transfer Protocol, porte seriali e porte parallele, il supporto multimonitor e le funzionalità di stampa Easy Print.
(Potete approfondire questi argomenti in questi due video di BE IT: Windows Server 2008 R2 e Windows 7: le novità del Remote Desktop Protocol e Windows Server 2008 R2: Le novità dei Remote Desktop Services .)
RemoteFX e Remote Desktop Protocol 7.1
Gli annunci relativi a RemoteFX riguardano l’evoluzione del protocollo RDP, che passerà con il Service Pack 1 di Windows 7 e Windows Server 2008 R2 dalla versione 7.0 alla versione 7.1.
Le funzionalità implementate in RemoteFX rispondono all’esigenza che hanno alcune aziende nello spostare parte del “computing aziendale” all’interno del proprio datacenter, su macchine VDI o su sessioni Remote Desktop (RDS/TS). L’estensione del protcollo RDP portata da RemoteFX consentirà di migliorare ulteriormente l’esperienza utente, in particolare relativamente alle applicazioni 3D e a quelle multimediali, e la qualità “grafica” fruibile tramite connessioni RDP all’interno della LAN.
Inoltre, sfruttando sia le componenti software che hardware legate a RemoteFX, sarà possibile offrire non solo ai “Rich client” ma anche a “Thin client” una Windows Experience completa e di alta qualità.
In fase di connessione il client locale e la macchina remota negozieranno se utilizzare (oppure no) RemoteFX in base alla configurazione del client e alle impostazioni definite dall’amministratore. Se non sarà possibile utilizzare RemoteFX, in modo trasparente verranno utilizzate le “funzionalità classiche” del protocollo RDP.
Codec, GPU/CPU, vGPU, encoder/chip dedicati ASIC
Come abbiamo detto, RemoteFX sfrutta l’architettura basata su Virtual Channel del protocollo RDP, estendendolo con un nuovo canale dedicato. Questo significa che le varie funzionalità del protocollo RDP (sicurezza, compressione, autenticazione) non vengono re-implementate da RemoteFX, che viaggia invece come flusso all’interno della pipe del protocollo base.
Se andiamo ad analizzare il funzionamento di RemoteFX, scopriamo che consiste in un codec software che si prende carico di analizzare i frame generati da ciascuna sessione RDP, di raccogliere le differenze rispetto ai precedenti, comprimere le informazioni raccolte e prepararle per l’invio tramite la connessione RDP.
Visto il funzionamento del codec RemoteFX, vediamo ora sono gli altri elementi che completano la piattaforma.
Hyper-V R2 con il Service Pack 1 metterà a disposizione delle macchine virtuali una vGPU, una GPU virtuale, che sarà riconosciuta dalle macchine virtuali Windows 7 SP1 e dalle applicazioni al loro interno, e verrà sfruttata dai componenti di RemoteFX.
Per poter mettere a disposizione le vGPU, sarà necessario avere sul server (o connesse al server tramite connessioni dedicate) delle GPU fisiche. Quest’ultime saranno utilizzate da RemoteFX, insieme alle CPU del server, per l’elaborazione dei frame grafici prima del loro invio nel tunnel RDP e saranno condivise tra le differenti macchine virtuali.
Per ridurre il carico di lavoro sulle GPU e sulle CPU del server, la piattaforma RemoteFX supporterà inoltre l’utilizzo di chip dedicati che potranno essere utilizzati per effettuare l’offload di alcune delle operazioni che avvengono lato server, come la compressione dei frame prima del loro invio verso i client remoti, consentendo così di aumentare la densità di VM o di sessioni utente ospitabili nello stesso server fisico.
I client remoti
Una volta che il traffico RemoteFX è stato preparato, compresso ed inserito nel tunnel RDP, potrà essere elaborato da client remoti utilizzando differenti opzioni.
I “rich client” potranno optare per una elaborazione solo software, che sfrutterà la CPU della macchina per ricostruire i frame e l’immagine completa del desktop o delle applicazioni; sarà possibile affiancare la GPU alla CPU, riducendo così il carico di lavoro ed ottimizzando le performance; oppure sarà possibile utilizzare dei decoder/chip dedicati che si prenderanno carico di rielaborare l’immagine.
L’utilizzo di chip dedicati di decoding di RemoteFX consentirà di utilizzare “thin client” o dispositivi anche con caratteristiche hardware/software limitate come dispositivi di accesso alle macchine VDI e alle sessioni RDS, abilitando comunque l’accesso ad una “Windows Experience” completa.
Host-side o Client-side rendering?
RemoteFX utilizzando le GPU lato server, è quindi una soluzione di “Host-side rendering”, che consente di sfruttare la potenza di calcolo del server per abilitare una esperienza remota ottimale anche a thin client (con chip hardware dedicato).
Questa soluzione però non andrà a sostituire ma ad affiancare le funzionalità di “Client-side rendering” che il protocollo RDP già mette a disposizione, e che consentono al momento la fruizione anche di contenuti video HD tramite connessione RDP senza sovraccarico lato server, sfruttando però le risorse dei Rich client Windows 7.
[Update] Redirezione completa di dispositivi USB
Mentre con la versione 7.0 del protocollo RDP era possibile redirigere dalla macchina locale alla macchina VDI o alla sessione RDS remota “solo” dispositivi USB come drive esterni, fotocamere digitali che supportano il Picture Transfer Protocol, lettori musicali portatili che supportano il Media Transfer Protocol, ora con RemoteFX è stato implementato il supporto completo per la redirezione di dispositivi USB.
La redirezione tramite RemoteFX avviene a basso livello (USB request block level o URB), a differenza della redirezione “classica” che avviene ad un livello più alto tramite device driver base/emulati. Questo significa che sarà necessario installare sulla macchina VDI remota (o sul server RDS) i device driver dei dispositivi USB che saranno redirezionati tramite RemoteFX, per consentirne l’uso.
Anche in questo caso la tecnologia di RemoteFX andrà ad affiancare (e non a sostituire) quella già implementata e disponibile nel protocollo RDP 7.0, e aprirà nuovi scenari di utilizzo consentendo ad esempio l’utilizzo di Token USB o di device particolari anche in ambiente RDS.
Protocollo estendibile e Partner hardware
Sia il protocollo RDP che RemoteFX sono documentati e sono pensati per poter essere estesi dagli ISV e supportati anche da soluzioni hardware.
Citrix, ad esempio, ha già annunciato il suo supporto per RemoteFX, che sarà esteso sfruttando i componenti di HDX, e NVIDIA, AMD, Dell e HP hanno annunciato GPU, server e thin client pensati per l’utilizzo in ambito VDI con RemoteFX.
[Update] Documentazione tecnica e requisiti di RemoteFX
E’ stata resa disponibile da poco la documentazione tecnica relativa a RemoteFX e le “step by step guides” per l’installazione. Vi riporto qui le principali risorse:
- What’s New in RemoteFX
- Hardware considerations for RemoteFX
- Deploying a Single RemoteFX Server
- Configuring USB Device Redirection with RemoteFX
- Using RemoteFX with “Classic” Remote Desktop Services
- Deploying RemoteFX for Personal Virtual Desktops
- Deploying RemoteFX for Virtual Desktop Pools
Vi terremo aggiornati man mano che arriveranno novità su questa tecnologia, in particolare quando saranno disponibili le prime guide relative al dimensionamento dei server per l’utilizzo di RemoteFX.
Comments
Anonymous
August 27, 2010
Ciao, innanzitutto complimenti per l'ottimo post. Una cosa non mi è chiara: se io volessi utilizzare tutte le feature introdotte con RemoteFX su un normalissimo Remote Desktop Server con Windows Server 2008 R2 SP1 senza virtualizzare i client (come indicato da Microsoft) potrei farlo? O sono costretto a utilizzare le macchine virtuali VDI con Windows 7 SP1 per sfruttare le nuove funzionalità introdotte dal nuovo RDP 7.1? Grazie.Anonymous
August 31, 2010
Ciao Alessandro. Ti ringrazio intanto per i complimenti. Certo, le funzionalità di RDP 7.1 sono utilizzabili in entrambi gli scenari, sia utilizzando i servizi "classici" Terminal Server - Remote Desktop Server, sia in scenari VDI. Nessun problema o limitazione quindi per l'utilizzo in ambiente RDS. Renato