Come effettuare l’implementazione di dispositivi grafici utilizzando RemoteFX vGPU
L’installazione dell’accelerazione video e di una scheda grafica su un computer fisico per migliorare le prestazioni e la qualità dell’immagine è un’operazione comune. Ma cosa fare quando è necessario eseguire applicazioni per il rendering video o la modellazione 3D su una VM e occorrono l’accelerazione video hardware e una scheda grafica?
Quando si tratta di VM, le risorse hardware sono condivise tra le VM per un utilizzo flessibile e razionale delle risorse. Se una VM esegue applicazioni pesanti, può consumare più risorse di CPU e memoria rispetto ad altre VM inattive o che eseguono operazioni meno intensive in termini di risorse. Inoltre, le VM utilizzano solo funzionalità video di base per visualizzare i dati per impostazione predefinita. In un ambiente Microsoft Hyper-V, è possibile utilizzare Hyper-V RemoteFX per consentire alle VM di condividere le risorse di una scheda video e l’accelerazione 3D.
Leggi questo post sul blog per saperne di più su Hyper-V RemoteFX e su come configurare RemoteFX su macchine Windows.
Che cos’è RemoteFX
RemoteFX è una funzione che consente alle VM Hyper-V di condividere una GPU (unità di elaborazione grafica) fisica. Le risorse di una scheda video vengono condivise tra più VM. Questo è lo scenario ottimale per carichi di lavoro ad alta intensità quando le risorse dedicate di una scheda video non sono necessarie in ogni momento. Hyper-V RemoteFX può essere utilizzato per implementare una VDI (infrastruttura desktop virtuale). Una GPU RemoteFX è un dispositivo virtuale collegato a una VM che condivide le risorse di una scheda video fisica installata su un host Hyper-V (condivide la GPU e la memoria video).
RemoteFX è stato introdotto in Windows 7 ed è disponibile in Windows 8, Windows 10, Windows Server 2008 R2 SP1, Windows Server 2012 e Windows Server 2016. Questa funzione non è presente in Hyper-V Manager nell’ultima versione di Windows Server 2019: non è possibile abilitare Hyper-V RemoteFX nell’interfaccia utente grafica (GUI). L’utilizzo di RemoteFX riduce il carico della CPU (unità di elaborazione centrale) e aumenta la scalabilità in un ambiente virtuale. Non è necessario collegare una GPU dedicata per ogni VM quando si utilizza Hyper-V RemoteFX, poiché le VM possono condividere dinamicamente la GPU per il carico di lavoro.
Il rendering video, l’elaborazione di immagini pesanti, l’utilizzo di applicazioni CAD e la modellazione 3D sono alcuni dei casi in cui potrebbe essere necessaria l’accelerazione 3D e una GPU RemoteFX in una VM. Una GPU moderna è più adatta all’elaborazione parallela rispetto alla CPU, gestisce più minacce contemporaneamente e dispone di più core di elaborazione. Il numero di monitor e le risoluzioni utilizzate dipendono dalla memoria video e dalle prestazioni della GPU di una scheda video. Utilizzare Desktop remoto, non VMConnect (Virtual Machine Connection), per connettersi alle VM utilizzando RemoteFX.
Il vantaggio di RemoteFX è che può essere utilizzato sulle versioni desktop e server di Windows. Sebbene l’acquisto di una scheda video supportata e compatibile con l’hardware del server possa non essere facile, la maggior parte dei computer desktop che di solito eseguono sistemi operativi Windows client hanno schede grafiche PCI Express installate.
Fine del supporto
Esiste una vulnerabilità (CVE-2020-1036) che può essere utilizzata dai criminali informatici per l’esecuzione di codice remoto. Gli hacker possono eseguire codice remoto su una macchina host utilizzando applicazioni appositamente create su una VM con GPU RemoteFX per attaccare i driver video su un host Hyper-V. In questo caso, un server host non è in grado di convalidare correttamente gli input provenienti da un utente autenticato su un sistema operativo guest. Microsoft non fornisce una patch per correggere questa vulnerabilità e afferma che si tratta di un problema architettonico. A causa di questi problemi di sicurezza, Microsoft ha deciso di disabilitare e rimuovere RemoteFX da tutte le versioni di Windows utilizzando gli aggiornamenti automatici:
- RemoteFX vGPU è stato disabilitato il 14 luglio 2020 per tutte le versioni di Windows.
- RemoteFX vGPU è stato rimosso il 13 aprile 2021.
RemoteFX funziona su Windows 10 versione 1803 e versioni precedenti di Windows (può essere configurato con pochi clic nella GUI di Hyper-V Manager). Dopo l’aggiornamento KB4571756 (un aggiornamento cumulativo rilasciato nel settembre 2020), questa funzione è disabilitata nell’interfaccia grafica. Di conseguenza, la configurazione di Windows 10 RemoteFX non è disponibile nell’interfaccia grafica di Hyper-V Manager in Windows 10, versione 1809, perché la funzione è stata disabilitata. Fino agli aggiornamenti di aprile 2021, RemoteFX GPU doveva essere abilitato in PowerShell con comandi speciali.
Requisiti di RemoteFX
- Una versione di Windows supportata su un host Hyper-V (Windows 7 Ultimate/Enterprise, Windows 8 Ultimate/Enterprise, Windows 10; Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2016, Windows Server 2019). Non devono essere installati aggiornamenti che rimuovono Hyper-V RemoteFX.
- Una GPU deve essere compatibile con DirectX 11 su una macchina host (DirectX 10 può essere utilizzato su Windows Server 2008 e Windows 7 installati su una macchina fisica). Se sull’host Hyper-V sono installate più schede video, queste devono essere identiche. DirectX 11 è disponibile su Windows 8.1 e versioni più recenti di Windows sulle VM.
- Una CPU deve supportare SLAT (Second Level Address Translation). Il nome di questa funzione è Extended Page Tables (EPT) per i processori Intel e Nested Page Tables (NPT) per i processori AMD.
- I sistemi operativi guest supportati sono Windows 7 SP1, Windows 8 e 8.1, Windows 10 1703 o versioni successive, Windows Server 2008 R2, Windows Server 2012, Windows Server 2016 (solo in una distribuzione a sessione singola).
Come configurare RemoteFX
Preparare la macchina fisica che funge da host Hyper-V. Assicurarsi di aver installato i driver grafici per una scheda grafica sull’host Hyper-V. Si consiglia di installare l’ultima versione stabile dei driver forniti dal vendor della GPU (ad esempio, NVIDIA o AMD).
Preparare una VM che esegue una versione supportata di Windows per utilizzare Hyper-V RemoteFX. Nel mio esempio, il nome della VM è Windows-VM e il nome dell’host Hyper-V è Hyper-V-prim.
Installazione delle funzioni necessarie
Installare il servizio Remote Desktop Virtualization Host sull’host Hyper-V.
Aprire Server Manager, e fare clic su Gestisci > Aggiungi ruoli e funzioni.
Si apre la finestra di dialogo Aggiungi ruoli e funzionalità .
Tipo di installazione. Selezionare Installazione basata su ruoli o funzioni. Premere Avanti ad ogni passaggio della procedura guidata per continuare.
Selezione server. Selezionare un server dal pool di server. Assicurarsi che l’host Hyper-V sia selezionato.
Ruoli server. Selezionare Servizi Desktop remoto nell’elenco dei ruoli. Se il ruolo Hyper-V non è installato, selezionare e installare il ruolo Hyper-V.
Funzioni. Saltare questo passaggio.
Servizi Desktop remoto. Leggere la spiegazione e andare avanti.
Ruolo Services. Seleziona Host di Virtualizzazione Remote Desktop. Puoi leggere la descrizione nel riquadro a destra.
Riavviare l’host Hyper-V al termine dell’installazione del ruolo.
Configurazione delle impostazioni Hyper-V
Aprire Hyper-V Manager eseguendo virtmgmt nella riga di comando o utilizzando l’interfaccia grafica di Windows. Quindi aprire Impostazioni Hyper-V.
Nel riquadro di navigazione della finestra Impostazioni Hyper-V fare clic su GPU fisiche. Nel menu a discesa, selezionare la scheda video, quindi selezionare la casella di controllo Utilizza questa GPU con RemoteFX .
Se non è possibile selezionare questa casella di controllo, significa che la scheda video non può essere utilizzata per RemoteFX oppure che RemoteFX è disabilitato.
Arresta la VM.
Apri Hyper-V Manager, seleziona la tua VM, fai clic con il pulsante destro del mouse sulla VM e apri Impostazioni VM.
Nella finestra Impostazioni VM fare clic su Aggiungi hardware nel riquadro sinistro (il riquadro di navigazione). Nel riquadro destro viene visualizzato un elenco di dispositivi che è possibile aggiungere a una VM. Il flusso di lavoro è simile per le VM di prima generazione e di seconda generazione.
Se un RemoteFX 3D Video Adapter è attivo (viene utilizzato un carattere nero), selezionare questo adattatore e fare clic su Aggiungi. Questa opzione è attiva nelle versioni di Windows fino al 14 luglio 2020, gli aggiornamenti sono installati.
Se Windows è stato aggiornato, l’opzione Scheda video 3D RemoteFX è disattivata (il carattere è grigio) e non è possibile aggiungere questa scheda nell’interfaccia grafica di Hyper-V Manager. Allo stesso tempo, l’opzione GPU fisiche non viene più visualizzata in Impostazioni Hyper-V.
È possibile risolvere questo problema in PowerShell.
Eseguire il comando in PowerShell sull’host Hyper-V per aggiungere una scheda video RemoteFX 3D a una VM:
Add-VMRemoteFx3dVideoAdapter -VMName your_VM_name
Se il comando viene eseguito correttamente, viene visualizzato un messaggio di avvertenza.
AVVISO: Non supportiamo più la scheda video RemoteFX 3D. Se si continua a utilizzare questa scheda, si potrebbe essere esposti a rischi per la sicurezza.
Se viene visualizzato l’errore: Add-VMRemoteFx3dVideoAdapter: Per abilitare questo dispositivo, utilizzare Server Manager per installare il servizio ruolo Host di virtualizzazione desktop remoto
Il servizio di virtualizzazione desktop remoto non è installato sull’host Hyper-V. Vedere Installazione delle funzioni necessarie all’inizio di questo post.
Abilitazione di Windows 10 RemoteFX dopo l’installazione degli aggiornamenti
Come accennato in precedenza, se sono installati gli aggiornamenti di Windows del 14 luglio 2020, Microsoft RemoteFX è disabilitato. Se si dispone di VM configurate per utilizzare RemoteFX, queste non si avvieranno. Quando si tenta di avviare una VM, viene visualizzato il seguente errore di Windows 10 RemoteFX per Windows 10 con l’aggiornamento del 14 luglio 2020:
Si è verificato un errore durante il tentativo di avviare le VM selezionate:
Impossibile avviare “nome VM”.
Controller di visualizzazione 3D sintetico (ID istanza xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx): impossibile accendere con errore “Risorse di sistema insufficienti per completare il servizio richiesto”.
Non è possibile avviare la VM perché tutte le GPU compatibili con RemoteFX sono disabilitate in Hyper-V Manager. È necessario abilitare almeno una GPU.
Un’altra variante dell’errore:
Non è possibile avviare la VM perché il server non dispone di risorse GPU sufficienti.
È possibile risolvere questo problema in PowerShell. Questo metodo è applicabile a Windows 10 e alle versioni appropriate di Windows Server. Utilizzare i comandi in PowerShell per correggere questo errore e abilitare RemoteFX. Eseguire questo comando per verificare le informazioni relative alla scheda video sull’host Hyper-V:
Get-VMRemoteFXPhysicalVideoAdapter
Trovare questa stringa:
Enabled: False
Significa che RemoteFX è disabilitato. Modificare questo valore in True.
Copia il nome della scheda video (nel mio esempio, NVIDIA GeForce GTX 1060).
Esegui il comando:
Enable-VMRemoteFXPhysicalVideoAdapter -Name "video_card_name"
Inserisci il nome della tua scheda grafica.
Prova ad avviare nuovamente la tua VM utilizzando RemoteFX. La VM dovrebbe ora avviarsi.
Prendi nota anche di questi cmdlet PowerShell per gestire una scheda video RemoteFX 3D:
Set-VMRemoteFx3dVideoAdapter
Get-VMRemoteFXPhysicalVideoAdapter
Dopo aver aggiunto una scheda video RemoteFX 3D a una VM, questa scheda dovrebbe essere visibile nell’elenco dell’hardware della VM con le opzioni per impostare la risoluzione, il numero di monitor e la memoria video dedicata.
Se queste opzioni non sono visibili nella GUI di Hyper-V Manager, utilizzare parametri aggiuntivi quando si aggiunge una scheda video RemoteFX a una VM in PowerShell, ad esempio:
Set-VMRemoteFx3dVideoAdapter -VMName Windows-VM -MaximumResolution 1024x768 -VRAMSizeBytes 536870912
Se Microsoft RemoteFX è stato configurato correttamente, nel sistema operativo Windows guest in esecuzione sulla VM, è possibile visualizzare un dispositivo Microsoft RemoteFX Graphics Device – WDDM nel segmento Schede video di Gestione dispositivi. Questa scheda video RemoteFX 3D è un dispositivo virtuale che condivide le risorse della scheda video fisica installata sull’host Hyper-V fisico utilizzando RemoteFX.
Risoluzione dei problemi
A volte possono verificarsi ulteriori errori. Vi spiego un errore comune che si verifica quando un utente non riesce a connettersi a una VM in esecuzione utilizzando Remote Desktop RemoteFX.
Sintomi:
- La connessione video remota è stata interrotta e viene visualizzato il messaggio appropriato.
- Impossibile connettersi tramite RDP: La sessione di Desktop remoto è stata terminata, probabilmente per uno dei seguenti motivi.
Se questo errore si è verificato sulla VM, modificare un criterio di gruppo nel sistema Windows guest sulla VM.
Fare clic su Start > Run > gpedit.msc per aprire l’Editor criteri di gruppo per un computer locale.
Nel riquadro sinistro della finestra Editor criteri di gruppo , passare a
Configurazione computer > Modelli di amministrazione > Componenti di Windows > Servizi Desktop remoto > Host sessione Desktop remoto > Ambiente sessione remota > RemoteFX per Windows Server. Fare doppio clic su Configura RemoteFX nel riquadro destro della finestra.
Si apre una finestra con Configurare RemoteFX proprietà. Selezionare Abilitatoe premere OK per salvare le impostazioni.
Fai doppio clic su Usa il driver grafico WDDM per le connessioni desktop remoto (disponibile per Windows 10 versione 1903 e versioni successive di Windows).
Nella finestra che si apre, seleziona Disabilitato, quindi premi OK.
Aggiorna la configurazione dei criteri di gruppo per applicare le nuove impostazioni con il comando:
gpupdate /force
Riavvia la VM. Prova a connetterti alla tua VM utilizzando la modalità di sessione avanzata.
Come impedire la disabilitazione di RemoteFX su un host Hyper-V
Dopo l’installazione dell’aggiornamento di Windows rilasciato nell’aprile 2021, le VM che utilizzano una scheda video RemoteFX 3D non riescono ad avviarsi. È possibile disabilitare gli aggiornamenti automatici sui computer Windows a proprio rischio per continuare a utilizzare RemoteFX. Si noti che le patch di sicurezza non vengono installate automaticamente sui computer Windows se gli aggiornamenti di Windows sono disabilitati. Le vulnerabilità non corrette rappresentano una minaccia per i computer, che sono quindi a rischio di essere infettati da ransomware, virus e altro malware.
È possibile scaricare manualmente gli aggiornamenti di Windows (patch) da Microsoft e installarli. Scoprite quali aggiornamenti di Windows sono destinati a rimuovere RemoteFX e non installateli. Valutate la possibilità di implementare WSUS (Windows Server Update Services) nella vostra organizzazione e deselezionate gli aggiornamenti che non vi servono.
Non dimenticate di eseguire il backup dei vostri server Windows e delle VM Hyper-V. In caso di disastro o attacco ransomware, avere un backup vi consente di ripristinare i vostri dati, ripristinare i carichi di lavoro e riprendere le operazioni in breve tempo. Utilizza NAKIVO Backup & Replication per eseguire il backup delle tue macchine fisiche e virtuali.
Alternative a Hyper-V RemoteFX
Microsoft consiglia ai clienti di utilizzare DDA invece di RemoteFX dopo aprile 2021.
DDA (Discrete Device Assignment) è una funzione che consente di collegare un dispositivo (nel mio caso, un dispositivo PCI Express) direttamente a una VM. Nel caso di una scheda grafica, la scheda deve essere scollegata dalla macchina host e collegata a una VM. Solo una VM può utilizzare una scheda video con DDA in un dato momento.
Un driver video per una GPU deve essere installato sul sistema operativo guest di una VM, non su una macchina host. In questo caso, funzioni come DirectX 12 e CUDA (Compute Unified Device Architecture) sono disponibili su una VM (CUDA non è disponibile su una VM quando si utilizza RemoteFX). Quando si utilizza Direct Device Assignment, la migrazione delle VM tra host Hyper-V non è possibile.
Valutare l’utilizzo di alternative VMware per server e desktop che eseguono VM. Utilizza Virtuale Shared Graphics Acceleration (vSGA) e Virtuale Shared Pass-Through Graphics Acceleration in VMware vSphere per condividere la GPU con più VM. Utilizzare schede video compatibili che supportano la virtualizzazione della GPU e dispongono delle funzioni hardware appropriate:
- nVidia GRID vGPU
- GPU multiutente AMD
È possibile abilitare la grafica 3D accelerata per una VM in VMware Estación de trabajo se si utilizza un computer desktop anziché un server.
Conclusione
Hyper-V RemoteFX è una funzione utile che consente alle VM di condividere le risorse hardware di una scheda video fisica installata su un host Hyper-V e di utilizzare l’accelerazione 3D per le applicazioni sulle VM. Per configurare RemoteFX su una VM, installare il servizio Host di virtualizzazione desktop remoto sull’host Hyper-V, modificare le impostazioni generali di Hyper-V per selezionare la GPU che deve essere utilizzata per l’accelerazione video e aggiungere una scheda video 3D RemoteFX nelle opzioni hardware virtuali della VM. Purtroppo, Hyper-V RemoteFX è stato deprecato da Microsoft e l’utilizzo di RemoteFX è possibile solo fino all’installazione degli aggiornamenti di Windows di aprile 2021.






