Compartilhar via


Usar GPUs com VMs clusterizados

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

Observação

A maneira recomendada de criar e gerenciar VMs no Azure Stack HCI 23H2 é usando o plano de controle do Azure Arc. Use o mecanismo descrito abaixo para gerenciar suas VMs somente se você precisar de funcionalidades que não estão disponíveis nas VMs do Azure Arc.

Este tópico fornece diretrizes sobre como usar GPUs (unidades de processamento gráfico) com VMs (máquinas virtuais) clusterizados executando o sistema operacional Azure Stack HCI para fornecer aceleração de GPU para cargas de trabalho nas VMs clusterizados.

A partir do Azure Stack HCI versão 21H2, você pode incluir GPUs no cluster do Azure Stack HCI para fornecer aceleração de GPU para as cargas de trabalho em execução nas VMs clusterizadas. Este tópico aborda os pré-requisitos básicos dessa funcionalidade e como implantá-la.

A aceleração de GPU é fornecida por meio da DDA (Atribuição de Dispositivo Discreto), também conhecida como passagem de GPU, que permite dedicar uma ou mais GPUs físicas a uma VM. As VMs clusterizados podem aproveitar a aceleração de GPU e clustering recursos, como alta disponibilidade por meio de failover. Atualmente, não há suporte para VMs de migração dinâmica, 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, você precisará de um cluster do Azure Stack HCI executando o Azure Stack HCI, versão 21H2. Você também precisará de GPUs instaladas fisicamente em todos os servidores do cluster.

Observação

O Catálogo do Azure Stack HCI 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 uso

Esta seção descreve as etapas necessárias para usar Windows Admin Center ou Windows PowerShell para preparar seus servidores de cluster para uso de GPU. Você pode atribuir uma ou mais VMs a um pool de recursos de GPU clusterizado e remover uma VM de um pool de recursos de GPU clusterizado. Você também pode usar o PowerShell para testar a reinicialização automática.

Usar Windows Admin Center

Use Windows Admin Center para preparar o cluster, atribuir uma VM a um pool de recursos de GPU e cancelar a atribuição de uma VM a um pool de recursos de GPU.

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

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

    Captura de tela da ferramenta GPU no Windows Admin Center

  2. Na página main da ferramenta, selecione a guia Pools de GPU e, em seguida, selecione Criar pool de GPU.

    Captura de tela da página Criar pools de GPU no Windows Admin Center

  3. Na página Novo pool de GPU , especifique o seguinte e selecione Salvar:

    1. Nome do servidor
    2. Nome do pool de GPU
    3. GPUs que você deseja adicionar ao pool

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

    Após a conclusão do processo, você receberá um prompt de sucesso que mostra o nome do novo pool de GPU e do servidor host.

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

    1. Nome do servidor
    2. Nome do pool de GPU
    3. Máquina virtual à qual você deseja atribuir a GPU do pool de GPU.

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

    Captura de tela da página Atribuir VM ao pool de GPU no Windows Admin Center em que você atribui uma VM a uma GPU do pool de GPU

    Após a conclusão do processo, você receberá um prompt de confirmação que mostra que você atribuiu com êxito a GPU do pool de recursos de GPU à VM, que é exibida em VMs atribuídas.

    Captura de tela do prompt de êxito mostrando a GPU atribuída a uma VM e a VM exibida em VMs atribuídas

Para cancelar a atribuição de uma VM de um pool de recursos de GPU:

  1. Na guia Pools de GPU , selecione a GPU que você deseja cancelar a atribuição e selecione Cancelar atribuição de VM.

  2. Na página Cancelar atribuição de VM do pool de GPU , na caixa de listagem Máquinas virtuais , especifique o nome da VM e selecione Cancelar atribuição.

    Captura de tela da página Desatribuir VM do pool de GPU mostrando a VM não atribuída

    Após a conclusão do processo, você receberá um prompt de êxito informando que a VM não foi atribuída do pool de GPU e, em Atribuição status a GPU mostrar Disponível (Não atribuída).

Usar o PowerShell

Use o PowerShell para preparar o cluster, atribuir uma VM a um pool de recursos de GPU e testar a reinicialização automática.

Preparar o cluster

Prepare as GPUs em cada servidor instalando drivers de mitigação de segurança em cada servidor, desabilitando as GPUs e desmontando-as do host de acordo com as instruções em Implantar dispositivos gráficos usando atribuição de dispositivo discreta. Dependendo do fornecedor de hardware, talvez você também precise configurar todos os requisitos de licenciamento de GPU.

  1. Crie um novo pool de recursos vazio em cada servidor que conterá os recursos de GPU clusterizados. Certifique-se de fornecer o mesmo nome de pool 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 pool de recursos que você criou na etapa anterior.

    No PowerShell, execute os seguintes cmdlets:

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

Agora você tem um pool de recursos em todo o cluster (chamado GpuChildPool) que é preenchido com GPUs atribuíveis. O cluster usará esse pool para determinar o posicionamento da VM para todas as VMs iniciadas ou movidas atribuídas ao pool de recursos de GPU.

Atribuir uma VM a um pool de recursos de GPU

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

Prepare a VM para DDA definindo seu comportamento de cache, ação de parada e propriedades MMIO (E/S mapeadas pela memória) de acordo com as instruções em Implantar dispositivos gráficos usando a Atribuição de Dispositivo Discreta.

  1. Configure a ação offline padrão 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 pool de recursos que você criou anteriormente à VM. Isso declara ao cluster que a VM requer um dispositivo atribuído do GpuChildPool pool quando é iniciada ou movida.

    No PowerShell, execute o seguinte cmdlet:

     $vm | Add-VMAssignableDevice -ResourcePoolName "GpuChildPool"
    

    Observação

    Se você quiser adicionar mais de uma GPU à VM, primeiro verifique se o pool de recursos tem mais de uma GPU atribuível disponível e execute o comando anterior novamente.

Se você iniciar a VM agora, o cluster garantirá que ela seja colocada em um servidor com recursos de GPU disponíveis desse pool em todo o cluster. O cluster também atribui a GPU à VM por meio do DDA, o que permite que a GPU seja acessada de cargas de trabalho dentro da VM.

Observação

Você também precisa instalar drivers do fabricante da GPU dentro da VM para que os aplicativos na VM possam aproveitar a GPU atribuída a eles.

Você também pode remover uma GPU atribuída de uma VM. Para fazer isso, no PowerShell, execute o seguinte cmdlet:

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

Fazer failover 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 esvaziamento no servidor em que a VM está em execução com uma GPU atribuída. Para esvaziar o servidor, siga as instruções em Procedimentos de manutenção do cluster de failover. O cluster reiniciará a VM em outro servidor no cluster, desde que outro servidor tenha recursos de GPU suficientes disponíveis no pool que você criou.

Próximas etapas

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