Utilizar GPUs com VMs em cluster

Aplica-se a: Azure Stack HCI, versões 23H2 e 22H2

Nota

A forma recomendada de criar e gerir VMs no Azure Stack HCI 23H2 é utilizar o plano de controlo do Azure Arc. Utilize o mecanismo descrito abaixo para gerir as VMs apenas se precisar de funcionalidades que não estejam disponíveis nas VMs do Azure Arc.

Este tópico fornece orientações sobre como utilizar unidades de processamento de gráficos (GPUs) com máquinas virtuais em cluster (VMs) a executar o sistema operativo Azure Stack HCI para fornecer aceleração de GPU a cargas de trabalho nas VMs em cluster.

A partir do Azure Stack HCI, versão 21H2, pode incluir GPUs no cluster do Azure Stack HCI para fornecer aceleração de GPU às cargas de trabalho em VMs em cluster. Este tópico aborda os pré-requisitos básicos desta capacidade e como implementá-la.

A aceleração de GPU é fornecida através de DDA (Discrete Device Assignment), também conhecida como pass-through de GPU, que lhe permite dedicar uma ou mais GPUs físicas a uma VM. As VMs agrupadas podem tirar partido da aceleração da GPU e das capacidades de clustering, como a elevada disponibilidade através da ativação pós-falha. Atualmente, as VMs de migração em direto não são suportadas, mas as VMs podem ser reiniciadas e colocadas automaticamente onde os recursos de GPU estão disponíveis em caso de falha.

Pré-requisitos

Para começar, precisará de um cluster do Azure Stack HCI com o Azure Stack HCI, versão 21H2. Também vai precisar de GPUs que estejam fisicamente instaladas em todos os servidores do cluster.

Nota

O Catálogo HCI do Azure Stack ainda não indica informações de compatibilidade ou certificação de GPU. Siga as instruções do fabricante para a instalação da GPU.

Instruções de utilização

Esta secção descreve os passos necessários para utilizar Windows Admin Center ou Windows PowerShell para preparar os servidores de cluster para utilização da GPU. Pode atribuir uma ou mais VMs a um conjunto de recursos de GPU em cluster e remover uma VM de um conjunto de recursos de GPU em cluster. Também pode utilizar o PowerShell para testar o reinício automático.

Utilizar Windows Admin Center

Utilize Windows Admin Center para preparar o cluster, atribuir uma VM a um conjunto de recursos de GPU e anular a atribuição de uma VM a um conjunto de recursos de GPU.

Para preparar o cluster e atribuir uma VM a um conjunto de recursos de GPU:

  1. No menu Ferramentas , em Extensões, selecione GPUs para abrir a ferramenta.

    Captura de ecrã da ferramenta GPU no Windows Admin Center

  2. Na página principal da ferramenta, selecione o separador Conjuntos de GPU e, em seguida, selecione Criar conjunto de GPU.

    Captura de ecrã da página Criar conjuntos de GPU no Windows Admin Center

  3. Na página Novo conjunto de GPU , especifique o seguinte e, em seguida, selecione Guardar:

    1. Nome do servidor
    2. Nome do conjunto de GPU
    3. GPUs que pretende adicionar ao conjunto

    Captura de ecrã da página Novo conjunto de GPU no Windows Admin Center para especificar servidores, nome do conjunto e GPUs

    Após a conclusão do processo, receberá um pedido de êxito que mostra o nome do novo conjunto de GPU e do servidor anfitrião.

  4. Na página Atribuir VM ao conjunto de GPU , especifique o seguinte e, em seguida, selecione Atribuir:

    1. Nome do servidor
    2. Nome do conjunto de GPU
    3. Máquina virtual à qual pretende atribuir a GPU a partir do conjunto de GPU.

    Também pode definir valores de definição avançados para espaços de E/S (MMIO) mapeados pela memória para determinar os requisitos de recursos de uma única GPU.

    Captura de ecrã da página Atribuir VM ao conjunto de GPU no Windows Admin Center em que atribui uma VM a uma GPU a partir do conjunto de GPUs

    Após a conclusão do processo, receberá um pedido de confirmação que mostra que atribuiu com êxito a GPU do conjunto de recursos da GPU à VM, que é apresentada em VMs Atribuídas.

    Captura de ecrã do pedido de êxito a mostrar a GPU atribuída a uma VM e a VM a apresentar em VMs atribuídas

Para anular a atribuição de uma VM a partir de um conjunto de recursos de GPU:

  1. No separador Conjuntos de GPU , selecione a GPU que pretende anular a atribuição e, em seguida, selecione Anular a atribuição de VMs.

  2. Na página Anular a atribuição da VM do conjunto de GPU , na caixa de listagem Máquinas virtuais , especifique o nome da VM e, em seguida, selecione Anular a atribuição.

    Captura de ecrã a mostrar a opção Anular a atribuição de VMs a partir da página do conjunto de GPU que mostra a VM a não ser atribuída

    Após a conclusão do processo, receberá um pedido de êxito a indicar que a VM não foi atribuída a partir do conjunto de GPU e, em Estado de atribuição , a GPU mostra Disponível (Não atribuída).

Utilizar o PowerShell

Utilize o PowerShell para preparar o cluster, atribuir uma VM a um conjunto de recursos de GPU e testar o reinício automático.

Preparar o cluster

Prepare as GPUs em cada servidor, instalando controladores de mitigação de segurança em cada servidor, desativando as GPUs e desmontando-as do anfitrião de acordo com as instruções em Implementar dispositivos gráficos com a Atribuição discreta de dispositivos. Consoante o fornecedor de hardware, também poderá ter de configurar quaisquer requisitos de licenciamento da GPU.

  1. Crie um novo conjunto de recursos vazio em cada servidor que contenha os recursos de GPU em cluster. Certifique-se de que fornece o mesmo nome do conjunto em cada servidor.

    No PowerShell, execute o seguinte cmdlet como administrador:

     New-VMResourcePool -ResourcePoolType PciExpress -Name "GpuChildPool"
    
  2. Adicione as GPUs desmontadas de cada servidor ao conjunto de recursos que criou no passo anterior.

    No PowerShell, execute os seguintes cmdlets:

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

Tem agora um conjunto de recursos em todo o cluster (com o nome GpuChildPool) preenchido com GPUs atribuíveis. O cluster utilizará este conjunto para determinar a colocação da VM para quaisquer VMs iniciadas ou movidas atribuídas ao conjunto de recursos de GPU.

Atribuir uma VM a um conjunto de recursos de GPU

Primeiro, crie uma nova VM no cluster ou localize uma VM existente.

Prepare a VM para DDA ao definir o comportamento da cache, a ação de paragem e as propriedades de E/S (MMIO) mapeadas pela memória de acordo com as instruções em Implementar dispositivos gráficos com Atribuição discreta de dispositivos.

  1. Configure a ação offline predefinida do recurso de VM do cluster como force-shutdown em vez de save.

    No PowerShell, execute o seguinte cmdlet:

     Get-ClusterResource -name vmname | Set-ClusterParameter -Name "OfflineAction" -Value 3
    
  2. Atribua o conjunto de recursos que criou anteriormente à VM. Isto declara ao cluster que a VM necessita de um dispositivo atribuído do GpuChildPool conjunto quando é iniciado ou movido.

    No PowerShell, execute o seguinte cmdlet:

     $vm | Add-VMAssignableDevice -ResourcePoolName "GpuChildPool"
    

    Nota

    Se quiser adicionar mais do que uma GPU à VM, verifique primeiro se o conjunto de recursos tem mais do que uma GPU atribuível disponível e, em seguida, execute novamente o comando anterior.

Se iniciar a VM agora, o cluster garante que é colocado num servidor com recursos de GPU disponíveis deste conjunto de todo o cluster. O cluster também atribui a GPU à VM através do DDA, o que permite que a GPU seja acedida a partir de cargas de trabalho dentro da VM.

Nota

Também tem de instalar controladores do fabricante da GPU dentro da VM para que as aplicações na VM possam tirar partido da GPU que lhes foi atribuída.

Também pode remover uma GPU atribuída de uma VM. Para tal, no PowerShell, execute o seguinte cmdlet:

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

Ativação pós-falha de uma VM com uma GPU atribuída

Para testar a capacidade do cluster de manter a carga de trabalho de GPU disponível, execute uma operação de drenagem no servidor onde a VM está em execução com uma GPU atribuída. Para drenar o servidor, siga as instruções em Procedimentos de manutenção do cluster de Ativação Pós-falha. O cluster reiniciará a VM noutro servidor no cluster, desde que outro servidor tenha recursos de GPU suficientes disponíveis no conjunto que criou.

Passos seguintes

Para obter mais informações, consulte também: