Sdílet prostřednictvím


Nasazení grafických zařízení pomocí diskrétního přiřazení zařízení

Zjistěte, jak pomocí DDA (Diskrétní přiřazení zařízení) předat celé zařízení PCIe do virtuálního počítače pomocí PowerShellu. To umožňuje vysoký výkon zařízení, jako je například úložiště NVMe nebo grafické karty z virtuálního počítače, a zároveň umožňuje použít nativní ovladače zařízení. Další informace o zařízeních, která fungují, a možných dopadech na zabezpečení najdete v tématu Plánování nasazení zařízení pomocí diskrétního přiřazení zařízení.

Tento článek vás provede postupem použití zařízení s DDA:

  1. Konfigurace virtuálního počítače pro DDA
  2. Odpojení zařízení od hostitelského oddílu
  3. Přiřazení zařízení k virtuálnímu počítači hosta

Prerequisites

Než budete moct použít DDA k nasazení grafických zařízení, musíte mít následující.

  • Hostitel Hyper-V se systémem Windows Server 2016 nebo novějším.

  • Virtuální počítač s jedním z následujících operačních systémů:

    • Windows Server 2016 nebo novější

    • Windows 10 nebo novější

  • Zkontrolujte plán nasazení zařízení pomocí diskrétního přiřazení zařízení a ujistěte se, že je hardware kompatibilní s DDA.

    • Spusťte SurveyDDA.ps1. Skript PowerShellu, který identifikuje, jestli je server správně nakonfigurovaný. Skript také zobrazí, která zařízení je možné předat pomocí diskrétního přiřazení zařízení.
  • Práva správce k hostiteli Hyper-V.

  • (Volitelné) I když není vyžadováno, pokud není povolená nebo podporovaná virtualizace vstupně-výstupních operací (SR-IOV), může dojít k problémům při nasazování grafických zařízení pomocí DDA.

Konfigurace virtuálního počítače pro DDA

Prvním krokem v řešení je řešení omezení DDA pro virtuální počítače.

  1. Přihlaste se k hostiteli Hyper-V jako správce.

  2. Otevřete příkazový řádek PowerShellu se zvýšenými oprávněními.

  3. Automatic Stop Action Nakonfigurujte virtuální počítač tak, aby povolil TurnOff pomocí následující rutiny PowerShellu:

    Set-VM -Name VMName -AutomaticStopAction TurnOff
    

Příprava virtuálního počítače na grafická zařízení

Hardware funguje lépe, pokud je virtuální počítač nakonfigurovaný určitým způsobem. Podrobnosti o tom, jestli pro hardware potřebujete následující konfigurace, se obraťte na dodavatele hardwaru. Další informace najdete v tématu Plánování nasazení zařízení pomocí diskrétního přiřazení zařízení a v tomto blogovém příspěvku.

  1. Pomocí následující rutiny povolte Write-Combining procesoru:

    Set-VM -GuestControlledCacheTypes $true -VMName VMName
    
  2. Nakonfigurujte 32bitovou pamětí mapovaný prostor pro vstupně-výstupní operace (MMIO) pomocí následujícího příkazu typu cmdlet:

    Set-VM -LowMemoryMappedIoSpace 3Gb -VMName VMName
    
  3. Pomocí následující rutiny nakonfigurujte větší než 32bitový prostor MMIO:

    Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName VMName
    

    Tip

    Zobrazené hodnoty prostoru MMIO jsou přiměřené hodnoty, které je možné nastavit pro experimentování s jedním GPU. Pokud po spuštění virtuálního počítače zařízení hlásí chybu týkající se nedostatek prostředků, budete pravděpodobně muset tyto hodnoty upravit. Další informace o tom, jak přesně vypočítat požadavky MMIO, naleznete v tématu Plánování nasazení zařízení pomocí diskrétního přiřazení zařízení.

Odpojte zařízení od hostitelského oddílu

Podle pokynů v této části odmontujte zařízení z hostitelského oddílu.

Instalace ovladače dělení (volitelné)

DDA poskytuje dodavatelům hardwaru možnost poskytnout ovladači pro zmírnění rizik zabezpečení se svými zařízeními. Tento ovladač není stejný jako ovladač zařízení nainstalovaný na virtuálním počítači hosta. Je na uvážení dodavatele hardwaru poskytnout tento ovladač. Pokud ale poskytují ovladač, nainstalujte ho před odpojením zařízení z hostitelského oddílu. Spojte se s dodavatelem hardwaru a zjistěte, jestli má ovladač pro zmírnění rizik.

Pokud není k dispozici žádný ovladač dělení, musíte použít možnost -Force k obejití bezpečnostního upozornění při odpojování. Další informace o dopadech na zabezpečení najdete v tématu Plánování nasazení zařízení pomocí diskrétního přiřazení zařízení.

Najděte cestu k umístění zařízení

K odpojení a připojení zařízení z hostitele se vyžaduje cesta k umístění PCI. Příklad cesty k umístění vypadá takto: PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000). Další informace o nalezení cesty umístění naleznete v tématu Plánování nasazení zařízení pomocí diskrétního přiřazení zařízení.

Zakázání zařízení

Pomocí Správce zařízení nebo PowerShellu se ujistěte, že je zařízení zakázané.

Demontáž zařízení

V závislosti na tom, jestli dodavatel poskytl ovladač pro zmírnění rizik, musíte buď použít -Force volbu, nebo ne, jak je znázorněno níže.

  • Pokud byl nainstalován ovladač pro zmírnění rizik, použijte následující cmdlet:

    Dismount-VMHostAssignableDevice -LocationPath $locationPath
    
  • Pokud nebyl nainstalován zmírňující ovladač, použijte následující cmdlet:

    Dismount-VMHostAssignableDevice -Force -LocationPath $locationPath
    

Přiřazení zařízení k virtuálnímu počítači hosta

Posledním krokem je informovat Hyper-V, že virtuální počítač by měl mít k zařízení přístup. Zadejte cestu k umístění a název virtuálního počítače.

Add-VMAssignableDevice -LocationPath $locationPath -VMName VMName

Dokončení úloh na virtuálním počítači

Po úspěšném připojení zařízení k virtuálnímu počítači teď můžete spustit tento virtuální počítač a pracovat s ním, jako kdybyste byli spuštěni na holém systému. Teď můžete do virtuálního počítače nainstalovat ovladače dodavatele hardwaru a aplikace uvidí hardware. Můžete ho ověřit tak, že na virtuálním počítači hosta otevřete Správce zařízení a zjistíte, že je hardware dostupný.

Odebrání zařízení a jeho vrácení hostiteli

Pokud chcete vrátit zařízení zpět do původního stavu, musíte virtuální počítač zastavit a vydat tento příkaz:

# Remove the device from the VM
Remove-VMAssignableDevice -LocationPath $locationPath -VMName VMName

# Mount the device back in the host
Mount-VMHostAssignableDevice -LocationPath $locationPath

Potom můžete zařízení znovu povolit ve Správci zařízení a hostitelský operační systém bude moct se zařízením znovu pracovat.

Příklad – připojení GPU k virtuálnímu počítači

Tento příklad pomocí PowerShellu nakonfiguruje virtuální počítač s názvem ddatest1 tak, aby převzal první GPU dostupný výrobcem NVIDIA a přiřadil ho k virtuálnímu počítači.

# Configure the VM for a Discrete Device Assignment
$vm = "ddatest1"
# Set automatic stop action to TurnOff
Set-VM -Name $vm -AutomaticStopAction TurnOff
# Enable Write-Combining on the CPU
Set-VM -GuestControlledCacheTypes $true -VMName $vm
# Configure 32 bit MMIO space
Set-VM -LowMemoryMappedIoSpace 3Gb -VMName $vm
# Configure Greater than 32 bit MMIO space
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName $vm

# Find the Location Path and disable the Device
# Enumerate all PNP Devices on the system
$pnpdevs = Get-PnpDevice -presentOnly
# Select only those devices that are Display devices manufactured by NVIDIA
$gpudevs = $pnpdevs | Where-Object {$_.Class -like "Display" -and $_.Manufacturer -like "NVIDIA"}
# Select the location path of the first device that's available to be dismounted by the host.
$locationPath = ($gpudevs | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths).data[0]
# Disable the PNP Device
Disable-PnpDevice -InstanceId $gpudevs[0].InstanceId

# Dismount the Device from the Host
Dismount-VMHostAssignableDevice -Force -LocationPath $locationPath

# Assign the device to the guest VM.
Add-VMAssignableDevice -LocationPath $locationPath -VMName $vm

Řešení potíží s připojením GPU

Pokud do virtuálního počítače předáte GPU, ale služba Vzdálená plocha nebo aplikace nerozpozná GPU, zkontrolujte následující běžné problémy.

  • Ujistěte se, že jste nainstalovali nejnovější verzi ovladače podporovaného dodavatelem GPU a že ovladač nehlásí chyby. Můžete to udělat tak, že zkontrolujete stav zařízení ve Správci zařízení.

  • Ujistěte se, že má vaše zařízení dostatek prostoru MMIO přiděleného v rámci virtuálního počítače. Další informace naleznete v tématu MMIO Space.

  • Ujistěte se, že používáte GPU, které dodavatel podporuje v této konfiguraci. Někteří dodavatelé například brání tomu, aby při předávání do virtuálního počítače fungovaly jejich uživatelské karty.

  • Ujistěte se, že aplikace podporuje provoz uvnitř virtuálního počítače a že aplikace podporuje GPU i jeho přidružené ovladače. Některé aplikace mají seznamy povolených grafických procesorů a prostředí.

  • Pokud na hostu používáte roli Hostitel relace vzdálené plochy nebo službu Windows Multipoint Services, musíte se ujistit, že je nastavená konkrétní položka Group Policy tak, aby umožňovala použití výchozího GPU. Použijte objekt zásad skupiny použitý u hosta (nebo editor místních zásad skupiny na hostu). Přejděte na následující položku zásad skupiny:

    Konfigurace počítače\Šablony správce\Součásti systému Windows\Vzdálená plocha\Hostitel relace vzdálené plochy\Vzdálené prostředí relace\Použít hardwarové grafické adaptéry pro všechny relace služby Vzdálená plocha.

    Nastavte hodnotu Zásady skupiny na Povoleno a po použití zásad restartujte virtuální počítač.