Saltar al contenido

Cómo habilitar la compatibilidad con RemoteFX VGPU en Hyper-V

marzo 26, 2021

Bienvenido/a, un nuevo blog de SoporteTIC!

Una función útil que se introdujo no hace mucho para Windows 10 ahora se ha deshabilitado. La función RemoteFX vGPU permite a los usuarios de máquinas virtuales (VM) que ejecutan Windows Server 2008 R2, Server 2012, Server 2016 y Windows 10 que se ejecutan en Hyper-V usar la Unidad de procesamiento de gráficos (GPU) física de la máquina host para representar su gráfico. producción.

A partir de la actualización más reciente de Microsoft para Windows 10, KB4571757, Microsoft decidió suspender esta función debido a una vulnerabilidad crítica descubierta en la ejecución remota de código.

Veamos los detalles de la función, por qué se suspendió y si podemos encontrar una manera de que siga funcionando.

¿Qué es RemoteFX vGPU?

Las máquinas virtuales que se ejecutan en Hyper-V pueden usar la GPU física en la computadora host para ejecutar sus tareas relacionadas con la reproducción de video y el procesamiento de imágenes, utilizando la función RemoteFX vGPU. Esto permite a los usuarios aliviar la carga de su CPU y ejecutar un procesamiento de imágenes pesado en sus máquinas virtuales utilizando la GPU compartida.

Con esta función, no se requiere una GPU dedicada para cada VM y, al mismo tiempo, proporciona una escalabilidad y usabilidad mejoradas de la GPU, así como de las VM. Dirígete a Página web de Microsoft para obtener más información sobre la función.

¿Por qué Microsoft eliminó la función RemoteFX vGPU?

Aunque la función RemoteFX vGPU es antigua, ya que se introdujo en Windows 7, ahora los piratas informáticos la están aprovechando para ejecutar comandos remotos en la máquina host. Esta función no es capaz de autenticar la entrada de un usuario válido en la VM. Un pirata informático puede aprovechar esta vulnerabilidad para ejecutar aplicaciones modificadas en la máquina virtual para aprovechar los controladores de la GPU del host y obtener acceso. Una vez que tienen acceso a la máquina host, pueden ejecutar comandos y scripts remotos.

Aunque Microsoft soluciona estas vulnerabilidades a través de sus actualizaciones periódicas, no pudo hacerlo porque la falla es arquitectónica.

Microsoft comenzó a eliminar esta función para diferentes versiones del sistema operativo en julio de 2020. Sin embargo, la actualización acumulativa de Windows 10 para septiembre de 2020 deshabilitó la función en todas las ediciones de Windows 10 versión 2004.

Microsoft afirma que los usuarios aún podrán volver a habilitar la función hasta febrero de 2021 a través de comandos especiales, pero deberían comenzar a trabajar en métodos alternativos que se discutirán más adelante en el artículo. Aquí hay un notificación de Microsoft sobre la desactivación de RemoteFX vGPU.

Cómo habilitar RemoteFX vGPU en Hyper-V ejecutándose en Windows 10

Aunque Microsoft ha atenuado la función para habilitar RemoteFX vGPU a través de Hyper-V en Windows 10, aún se puede habilitar a través de un comando usando PowerShell. Además, la configuración de la política de grupo todavía está dentro de los sistemas operativos invitados (VM) que se pueden usar para habilitar la función en la VM como antes.

en gris

  1. Primero, encienda la máquina virtual en la que desea configurar esta función y abra el Editor de políticas de grupo escribiendo gpedit.msc en Ejecutar.
  2. En el Editor de políticas de grupo, navegue hasta lo siguiente en el panel izquierdo:
  3. Configuración de la computadora -> Plantillas administrativas -> Componentes de Windows -> Servicios de escritorio remoto -> Host de sesión de escritorio remoto -> Entorno de sesión remota -> RemoteFX para Windows Server
  4. En el panel derecho, haga doble clic en Configurar RemoteFX.
  5. En la ventana Configurar propiedades de RemoteFX, seleccione Activadoy luego haga clic en Aplicar y OK.
    habilitado gp 1
  6. Ahora abra el símbolo del sistema y escriba gpupdate / force para actualizar las Políticas de grupo.
    cmd gpupdate force
  7. Descargue e instale el controlador de GPU recomendado de acuerdo con su GPU física. Aquí hay una revisión detallada de las GPU y cómo administrarlas.
  8. Ahora apague la máquina virtual y vuelva a la computadora de alojamiento que ejecuta Hyper-V.
  9. Desde el Adaptador de video RemoteFX 3D La opción está atenuada en la configuración de la VM, la habilitaremos a través de PowerShell. Ejecute PowerShell con derechos administrativos. Aquí hay una guía completa sobre cómo ejecutar siempre PowerShell en modo administrativo.
  10. Ingrese el siguiente comando mientras reemplaza (nombre) con el nombre de su máquina virtual:
    Add-VMRemoteFX3dVideoAdapter -VMName (name)
    powershell cmd
  11. Ahora abra la Configuración de VM a través del panel de control de Hyper-V y encontrará el Adaptador de video RemoteFX ED en la pestaña Procesador. Haga clic en él y luego realice las configuraciones según sus necesidades.
    configuración de vm remotefx

Ahora puede iniciar y conectarse a la máquina virtual y ahora usará la GPU de la máquina host para procesar su carga de trabajo. También puede configurar varias máquinas virtuales para que se ejecuten en una GPU física compartida.

Alternativa para RemoteFX vGPU

Microsoft planea eliminar permanentemente la función para febrero de 2021. Sin embargo, no han dejado a sus usuarios varados. Microsoft también ha propuesto una solución alternativa para montar directamente la GPU física en el puerto PCIe a una VM a través del Asignación discreta de dispositivos (DDA).

Este método tiene tres fases que deben completarse para proporcionar una máquina virtual con una GPU dedicada:

  1. Configurar la máquina virtual para DDA
  2. Desmontar la GPU de la computadora host
  3. Asignar la GPU a la VM

Configurar la máquina virtual para DDA

En la computadora host, ejecute los siguientes comandos uno tras otro para configurar sus ajustes. Reemplace (nombre) con el nombre de la máquina virtual:

  1. Set-VM -Name (name) -AutomaticStopAction TurnOff
  2. Set-VM -GuestControlledCacheTypes $true -VMName (name)
  3. Set-VM -LowMemoryMappedIoSpace 3Gb -VMName (name)
  4. Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName (name)

Desmontar la GPU de la computadora host

En primer lugar, debe deshabilitar la GPU en el puerto PCIe y luego desmontarla. Pero antes de eso, necesitará la dirección física del puerto. Esto se puede determinar realizando lo siguiente:

  1. Dirígete al Administrador de dispositivos escribiendo devmgmt.msc en Ejecutar.
  2. Ahora expanda Adaptadores de pantalla y haga clic con el botón derecho en la GPU. Seleccione Propiedades en el menú contextual.
    deshabilitar gpu
  3. Vaya a la pestaña Detalles y seleccione Rutas de ubicación en el menú desplegable en Propiedad.
  4. Tenga en cuenta que la entrada comienza con «PCIROOT», ya que será necesario al desmontar la GPU del dispositivo host.
    camino

Ahora realice lo siguiente para desmontar el dispositivo:

  1. Dirígete a la ventana Propiedades de la GPU desde el Administrador de dispositivos.
  2. Vaya a la pestaña Controlador y luego haga clic en Desactivar dispositivo.
    deshabilitar dispositivo

Ahora que el dispositivo se ha desactivado, debe desmontarlo.

Ingrese el siguiente comando en el símbolo del sistema:
Dismount-VMHostAssignableDevice -force -LocationPath $(LocationPath)
Reemplace (LocationPath) con la ruta PCIe que anotó anteriormente.

Una vez hecho esto, puede pasar a la siguiente fase.

Asignar la GPU a la VM

Ahora todo lo que necesita hacer es programar Hyper-V para permitir que la VM especificada use la GPU física. Esto se puede hacer ejecutando el siguiente comando en el símbolo del sistema:
Add-VMAssignableDevice -LocationPath $locationPath -VMName (name)
Reemplace (nombre) con el nombre de la máquina virtual.

Ahora puede iniciar el sistema operativo invitado y ver que el adaptador de video que está usando ahora será el físico en su computadora host.

Si en algún momento desea devolver la GPU al dispositivo host, simplemente ejecute los dos comandos siguientes en el mismo orden, uno tras otro, en el símbolo del sistema mientras reemplaza (nombre) con el nombre de la máquina virtual:
Remove-VMAssignableDevice -LocationPath $locationPath -VMName VMName
Mount-VMHostAssignableDevice -LocationPath $locationPath

Palabras de cierre

La vGPU RemoteFX no ha existido mucho para la versión 2004. Sin embargo, a la gente le gustó la idea. Verlo ir podría no ser tan problemático como se anticipó a menos que agregue el factor de costo.

Aunque Microsoft ha ofrecido una alternativa para usar GPU designadas para cada máquina virtual, no sería ideal colocar tantas GPU en la placa base de la computadora host como las máquinas virtuales. Los costos serían demasiado altos y el consumo de energía no sería ideal.

Microsoft necesita encontrar una solución para el problema, ya que la solución proporcionada no es viable para la mayoría de los usuarios.

Y hasta aquí, nos vemos en el próximo blog, si lo compartís con los vuestros, os lo agradeceremos mucho 😃.