Compartir a través de


Uso de GPU con VM en clúster

Se aplica a: Azure Stack HCI, versiones 23H2 y 22H2

Nota

La manera recomendada de crear y administrar máquinas virtuales en Azure Stack HCI 23H2 es usar el plano de control de Azure Arc. Use el mecanismo que se describe a continuación para administrar las máquinas virtuales solo si necesita funcionalidad que no está disponible en máquinas virtuales de Azure Arc.

En este tema encontrará una guía sobre el uso de unidades de procesamiento gráfico (GPU) con máquinas virtuales (VM) en clúster que ejecutan el sistema operativo Azure Stack HCI para proporcionar aceleración de GPU a las cargas de trabajo de las VM en clúster.

A partir Azure Stack HCI, versión 21H2, puede incluir GPU en el clúster de Azure Stack HCI para proporcionar aceleración de GPU a las cargas de trabajo que se ejecutan en VM en clúster. En este tema se tratan los requisitos previos básicos de esta funcionalidad y cómo implementarla.

La aceleración de GPU se proporciona a través de asignación discreta de dispositivos (DDA), también conocida como paso a través de GPU, que permite dedicar una o varias GPU físicas a una VM. Las VM en clúster pueden aprovechar la aceleración de GPU y las funcionalidades de agrupación en clústeres, como la alta disponibilidad a través de la conmutación por error. Actualmente no se admite la migración en vivo de VM, pero estas se pueden reiniciar y colocar automáticamente donde los recursos de GPU están disponibles en caso de error.

Prerrequisitos

Para empezar, necesitará un clúster de Azure Stack HCI que ejecute Azure Stack HCI, versión 21H2. También necesitará GPU que estén instaladas físicamente en cada servidor del clúster.

Nota

El Catálogo de Azure Stack HCI todavía no indica la información de certificación ni compatibilidad de GPU. Siga las instrucciones del fabricante para la instalación de las GPU.

Instrucciones de uso

En esta sección se describen los pasos necesarios para usar Windows Admin Center o Windows PowerShell para preparar los servidores de clústeres para el uso de las GPU. Puede asignar una o varias máquinas virtuales a un grupo de recursos de GPU en clúster y quitar una máquina virtual de un grupo de recursos de GPU en clúster. También puede usar PowerShell para probar el reinicio automático.

Uso de Windows Admin Center

Use Windows Admin Center para preparar el clúster, asignar una máquina virtual a un grupo de recursos de GPU y cancelar la asignación de una máquina virtual a un grupo de recursos de GPU.

Para preparar el clúster y asignar una máquina virtual a un grupo de recursos de GPU, haga lo siguiente:

  1. En el menú Herramientas, en Extensiones, seleccione GPU para abrir la herramienta.

    Captura de pantalla de la herramienta de GPU en Windows Admin Center

  2. En la página principal de la herramienta, seleccione la pestaña GPU pools (Grupos de GPU) y, a continuación, seleccione Create GPU pool (Crear grupo de GPU).

    Captura de pantalla de la página de creación de grupos de GPU en Windows Admin Center

  3. En la página New GPU pool (Nuevo grupo de GPU), especifique lo siguiente y, a continuación, seleccione Guardar:

    1. Nombre del servidor
    2. Nombre del grupo de GPU
    3. Las GPU que desea agregar al grupo

    Captura de pantalla de la página de nuevo grupo de GPU en Windows Admin Center para especificar los servidores, el nombre del grupo y las GPU

    Una vez completado el proceso, recibirá un mensaje de confirmación que muestra el nombre del nuevo grupo de GPU y el servidor host.

  4. En la página Assign VM to GPU pool (Asignar máquina virtual a un grupo de GPU), especifique lo siguiente y, a continuación, seleccione Asignar:

    1. Nombre del servidor
    2. Nombre del grupo de GPU
    3. La máquina virtual a la que desea asignar la GPU del grupo de GPU

    También puede definir valores de configuración avanzada para espacios de E/S asignadas a la memoria (MMIO) a fin de determinar los requisitos de recursos para una sola GPU.

    Captura de pantalla de la página de asignación de máquinas virtuales a un grupo de GPU en Windows Admin Center, donde se asigna una máquina virtual a una GPU de un grupo de GPU

    Una vez completado el proceso, recibirá un mensaje de confirmación que muestra que ha asignado correctamente la GPU del grupo de recursos de GPU a la máquina virtual, que se muestra en Assigned VMs (Máquinas virtuales asignadas).

    Captura de pantalla del mensaje de confirmación que muestra la GPU asignada a una máquina virtual, que se muestra en Assigned VMs (Máquinas virtuales asignadas)

Para cancelar la asignación de una máquina virtual de un grupo de recursos de GPU, haga lo siguiente:

  1. En la pestaña GPU pools (Grupos de GPU), seleccione la GPU de la que desea cancelar la asignación y, a continuación, seleccione Unassign VM (Cancelar asignación de máquina virtual).

  2. En la página Unassign VM from GPU pool (Cancelar asignación de máquina virtual de un grupo de GPU), en el cuadro de lista Máquinas virtuales, especifique el nombre de la máquina virtual y, a continuación, seleccione Cancelar asignación.

    Captura de pantalla de la página de cancelación de la asignación de una máquina virtual de un grupo de GPU que muestra cómo se cancela la asignación de una máquina virtual

    Una vez completado el proceso, recibirá un mensaje de confirmación que indica que se ha cancelado la asignación de la máquina virtual del grupo de GPU y, en Estado de la asignación, la GPU muestra Available (Not assigned) (Disponible [No asignada]).

Uso de PowerShell

Use PowerShell para preparar el clúster, asignar una máquina virtual a un grupo de recursos de GPU y probar el reinicio automático.

Preparación del clúster

Para preparar las GPU en cada servidor, instale los controladores de mitigación de seguridad en cada servidor, deshabilite las GPU y desmóntelas del host según las instrucciones de Implementación de dispositivos de gráficos mediante la asignación discreta de dispositivos. Según el proveedor de hardware, es posible que también tenga que configurar los requisitos de licencia de GPU.

  1. Cree un nuevo grupo de recursos vacío en cada servidor que contendrá los recursos de GPU en clúster. Asegúrese de proporcionar el mismo nombre de grupo en cada servidor.

    En PowerShell, ejecute como administrador el siguiente cmdlet:

     New-VMResourcePool -ResourcePoolType PciExpress -Name "GpuChildPool"
    
  2. Agregue las GPU desmontadas de cada servidor al grupo de recursos que creó en el paso anterior.

    En PowerShell, ejecute los cmdlets siguientes:

     $gpu = Get-VMHostAssignableDevice
    
     Add-VMHostAssignableDevice -HostAssignableDevice $gpu -ResourcePoolName "GpuChildPool"
    

Ahora tiene un grupo de recursos de todo el clúster (denominado GpuChildPool) que se rellena con las GPU asignables. El clúster usará este grupo para determinar la selección de ubicación de las VM iniciadas o movidas que estén asignadas al grupo de recursos de GPU.

Asignación de una VM a un grupo de recursos de GPU

En primer lugar, cree una nueva VM en el clúster o busque una VM existente.

Para preparar la VM para la asignación discreta de dispositivos, establezca su comportamiento de caché, acción de detención, y las propiedades de E/S asignadas a memoria (MMIO) según las instrucciones de Implementación de dispositivos de gráficos mediante la asignación discreta de dispositivos.

  1. Configure la acción de desconexión predeterminada del recurso de VM del clúster como force-shutdown en lugar de save.

    En PowerShell, ejecute el cmdlet siguiente:

     Get-ClusterResource -name vmname | Set-ClusterParameter -Name "OfflineAction" -Value 3
    
  2. Asigne el grupo de recursos que creó anteriormente a la VM. Esto declara al clúster que la VM requiere un dispositivo asignado del grupo GpuChildPool cuando se inicia o se mueve.

    En PowerShell, ejecute el cmdlet siguiente:

     $vm | Add-VMAssignableDevice -ResourcePoolName "GpuChildPool"
    

    Nota

    Si desea agregar más de una GPU a la máquina virtual, compruebe primero que el grupo de recursos tenga más de una GPU que se pueda asignar disponible y, a continuación, vuelva a ejecutar el comando anterior.

Si inicia la VM ahora, el clúster se asegura de que se coloque en un servidor con recursos de GPU disponibles de este grupo que abarca todo el clúster. El clúster también asigna la GPU a la VM a través de la asignación discreta de dispositivos, lo que permite acceder a la GPU desde cargas de trabajo dentro de la VM.

Nota

También tiene que instalar controladores del fabricante de la GPU dentro de la VM para que las aplicaciones de la VM puedan aprovechar las ventajas de la GPU asignada a ellas.

También puede quitar una GPU asignada de una máquina virtual. Para ello, en PowerShell, ejecute el cmdlet siguiente:

 Get-VMAssignableDevice -VMName $vm | Where-Object { $_.ResourcePoolName -eq "GpuChildPool" } | Remove-VMAssignableDevice

Conmutación por error de una VM con una GPU asignada

Para probar la capacidad del clúster de mantener la carga de trabajo de GPU disponible, realice una operación de purga en el servidor donde se ejecuta la VM con una GPU asignada. Para purgar el servidor, siga las instrucciones indicadas en Procedimientos de mantenimiento de clústeres de conmutación por error. El clúster reiniciará la VM en otro servidor del clúster, siempre y cuando otro servidor tenga suficientes recursos de GPU disponibles en el grupo que creó.

Pasos siguientes

Para obtener más información, vea también: