Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A Atribuição de Dispositivo Discreto permite que o hardware físico PCIe (Peripheral Component Interconnect Express) seja diretamente acessível a partir de uma máquina virtual (VM). Este artigo discute o tipo de dispositivos que podem ser usados, os requisitos do sistema do host, as limitações impostas às VMs e as implicações de segurança.
Para atribuição de dispositivo discreto, a Microsoft suporta duas classes de dispositivo: adaptadores gráficos e dispositivos de armazenamento NVMe. É provável que outros dispositivos funcionem e os fornecedores de hardware podem oferecer declarações de suporte para esses dispositivos. Para outros dispositivos, entre em contato com fornecedores de hardware específicos para obter suporte.
Para saber mais sobre outros métodos de virtualização de GPU, consulte Plan for GPU acceleration in Windows Server. Se estiver pronto para experimentar a Atribuição de Dispositivo Discreto, você pode ir para Implantar dispositivos gráficos usando a Atribuição de Dispositivo Discreto ou Implantar Dispositivos de Armazenamento NVMe usando a Atribuição de Dispositivo Discreto.
VMs suportadas e sistemas operacionais convidados
A Atribuição de Dispositivo Discreto é suportada para VMs de Geração 1 ou 2. Os convidados apoiados incluem:
- Windows 10 ou posterior
- Windows Server 2016 ou posterior
Para obter mais informações, consulte Máquinas virtuais Linux e FreeBSD suportadas para Hyper-V no Windows Server e Windows.
Requisitos do sistema
Seu sistema deve atender aos Requisitos de Hardware para Windows Server e Requisitos do Sistema para Hyper-V no Windows Server. A Atribuição de Dispositivo Discreto também requer hardware de classe de servidor capaz de conceder ao sistema operacional controle sobre a configuração da malha PCIe (Native PCI Express Control). Além disso, o Complexo Raiz PCIe tem de suportar os Serviços de Controle de Acesso (ACS), que permitem que Hyper-V obrigue todo o tráfego PCIe a passar pela Unidade de Gerenciamento de Memória Input-Output.
Esses recursos geralmente não são expostos diretamente no BIOS do servidor e muitas vezes estão ocultos atrás de outras configurações. Se os mesmos recursos forem necessários para o suporte de SR-IOV e no BIOS, talvez seja necessário definir "Ativar SR-IOV". Entre em contato com o fornecedor do sistema se não conseguir identificar a configuração correta no BIOS.
Para ajudar a assegurar que o hardware tenha capacidade para Atribuição de Dispositivo Discreto, pode-se executar o script de perfil de máquina num host com suporte a Hyper-V. O script testa se o servidor está configurado corretamente e quais dispositivos são capazes de Atribuição de Dispositivo Discreto.
Requisitos do dispositivo
Nem todos os dispositivos PCIe podem ser usados com a Atribuição de Dispositivo Discreto. Dispositivos mais antigos que usam interrupções PCI herdadas (INTx) não são suportados. Para obter mais informações, consulte Atribuição de dispositivo discreto - Máquinas e dispositivos. Você também pode executar o Script de Perfil de Máquina para exibir quais dispositivos podem ser usados para Atribuição de Dispositivo Discreto.
Os fabricantes de dispositivos podem entrar em contato com seu representante da Microsoft para obter mais detalhes.
Driver de dispositivo
A Atribuição de Dispositivo Discreto passa todo o dispositivo PCIe para a VM convidada. Não é necessário instalar um driver de host antes de o dispositivo ser montado na VM. O único requisito no host é que o caminho de localização PCIe do dispositivo possa ser determinado. O driver do dispositivo pode ser instalado para ajudar na identificação do dispositivo. Uma GPU sem seu driver de dispositivo instalado no host pode aparecer como um dispositivo de renderização Microsoft Basic. Se o driver de dispositivo estiver instalado, é provável que seu fabricante e modelo sejam exibidos.
Quando o dispositivo é montado dentro da máquina virtual convidada, o driver de dispositivo do fabricante pode ser instalado como normalmente dentro da máquina virtual convidada.
Limitações da VM
Devido à natureza de como a Atribuição de Dispositivo Discreto é implementada, alguns recursos de uma VM são restritos enquanto um dispositivo está conectado. Os seguintes recursos não estão disponíveis:
- Salvar/Restaurar VM
- Migração ao vivo de uma VM
- O uso da memória dinâmica
- Adicionando a VM a um cluster de alta disponibilidade (HA)
Segurança
A Atribuição de Dispositivo Discreto passa o dispositivo inteiro para a VM. Este passo significa que todas as capacidades desse dispositivo estão acessíveis a partir do sistema operativo convidado. Algumas capacidades, como a atualização de firmware, podem afetar negativamente a estabilidade do sistema. Vários avisos são apresentados ao administrador ao desmontar o dispositivo do host. Deve usar a atribuição discreta de dispositivos apenas quando os utilizadores das VMs forem confiáveis.
Se o administrador desejar usar um dispositivo com um locatário não confiável, os fabricantes de dispositivos poderão criar um driver de Atenuação de Dispositivo que possa ser instalado no host. Entre em contato com o fabricante do dispositivo para obter detalhes sobre se eles fornecem um driver de mitigação de dispositivo.
Se você quiser ignorar as verificações de segurança de um dispositivo que não tenha um driver de mitigação de dispositivo, será necessário passar o -Force parâmetro para o Dismount-VMHostAssignableDevice cmdlet. Quando você faz essa passagem, você alterou o perfil de segurança desse sistema. Você só deve fazer essa alteração durante a prototipagem ou ambientes confiáveis.
Caminho de localização PCIe
O caminho de localização PCIe é necessário para desmontar e montar o dispositivo a partir do Host. Um exemplo de caminho de localização é PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000). O script de perfil de máquina também retorna o caminho de localização do dispositivo PCIe.
Obter o caminho de localização utilizando o Gestor de Dispositivos
- Abra o Gestor de Dispositivos e localize o dispositivo.
- Clique com o botão direito do mouse no dispositivo e selecione Propriedades.
- Na guia Detalhes , expanda o menu suspenso Propriedade e selecione Caminhos de localização.
- Clique com o botão direito do mouse na entrada que começa com PCIROOT e selecione Copiar para obter o caminho de localização para o dispositivo.
Espaço MMIO
Alguns dispositivos, especialmente GPUs, exigem mais espaço MMIO para ser alocado à VM para que a memória desse dispositivo seja acessível. Por padrão, cada VM começa com 128 MB de espaço MMIO baixo e 512 MB de espaço MMIO alto alocado a ela. No entanto, um dispositivo pode exigir mais espaço MMIO ou vários dispositivos podem ser passados de tal forma que os requisitos combinados excedam esses valores. A alteração do Espaço MMIO é simples e pode ser executada no PowerShell usando os seguintes comandos:
Set-VM -LowMemoryMappedIoSpace 3Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName $vm
A maneira mais fácil de determinar quanto espaço MMIO alocar é usar o Script de Perfil de Máquina. Para baixar e executar o Script de Perfil de Máquina, execute os seguintes comandos em um console do PowerShell:
curl -o SurveyDDA.ps1 https://raw.githubusercontent.com/MicrosoftDocs/Virtualization-Documentation/live/hyperv-tools/DiscreteDeviceAssignment/SurveyDDA.ps1
.\SurveyDDA.ps1
Para dispositivos que podem ser atribuídos, o script exibe os requisitos MMIO de um determinado dispositivo. A saída de script a seguir é um exemplo:
NVIDIA GRID K520
Express Endpoint -- more secure.
...
And it requires at least: 176 MB of MMIO gap space
...
O baixo espaço MMIO é usado apenas por sistemas operacionais de 32 bits e dispositivos que usam endereços de 32 bits. Na maioria das circunstâncias, definir o espaço MMIO alto de uma VM é suficiente, já que as configurações de 32 bits não são comuns.
Important
Ao atribuir espaço MMIO a uma VM, certifique-se de especificar espaço MMIO suficiente. O espaço MMIO deve ser a soma do espaço MMIO solicitado para todos os dispositivos atribuídos desejados, além de um buffer para outros dispositivos virtuais que exigem alguns MB de espaço MMIO. Use os valores MMIO padrão descritos anteriormente como o buffer para MMIO baixo e alto (128 MB e 512 MB, respectivamente).
Considere o exemplo anterior. Se você atribuir uma única GPU K520, defina o espaço MMIO da VM para o valor gerado pelo script de perfil da máquina mais um buffer: 176 MB + 512 MB. Se você atribuir três GPUs K520, defina o espaço MMIO para três vezes a quantidade base de 176 MB mais um buffer, ou 528 MB + 512 MB.
Para uma visão mais aprofundada do espaço MMIO, consulte Atribuição de dispositivo discreto - GPUs no blog da Comunidade Técnica.
Script de perfil de máquina
Para identificar se o servidor está configurado corretamente e quais dispositivos podem ser passados usando a Atribuição de Dispositivo Discreto, execute o SurveyDDA.ps1. Script do PowerShell.
Antes de usar o script, verifique se você tem a função Hyper-V instalada e se executa o script em uma janela de comando do PowerShell que tenha privilégios de Administrador.
Se o sistema estiver configurado incorretamente para suportar a Atribuição de Dispositivo Discreto, a ferramenta exibirá uma mensagem de erro com detalhes sobre o problema. Se o sistema estiver configurado corretamente, a ferramenta enumera todos os dispositivos localizados no barramento PCIe.
Para cada dispositivo encontrado, a ferramenta exibe se ele pode ser usado com a Atribuição de Dispositivo Discreto. Se um dispositivo for identificado como sendo incompatível com a Atribuição de Dispositivo Discreto, o script fornecerá um motivo. Quando um dispositivo é identificado com êxito como sendo compatível, o caminho de localização do dispositivo é exibido. Além disso, se esse dispositivo exigir espaço MMIO, ele também será exibido.