Megosztás a következőn keresztül:


Grafikus eszközök üzembe helyezése diszkrét eszközhozzárendeléssel

Megtudhatja, hogyan adhat át egy teljes PCIe-eszközt egy virtuális gépre (VM) a PowerShell használatával a Különálló eszköz-hozzárendelés (DDA) használatával. Ezzel lehetővé teszi a nagy teljesítményű hozzáférést az olyan eszközökhöz, mint az NVMe-tároló vagy a grafikus kártyák egy virtuális gépről, miközben az eszköz natív illesztőprogramjait is alkalmazhatja. A működő eszközökkel és a lehetséges biztonsági következményekkel kapcsolatos további információkért tekintse meg az eszközök különálló eszköz-hozzárendeléssel történő üzembe helyezésének tervét.

Ez a cikk végigvezeti az eszközök DDA-val való használatának lépésein:

  1. A DDA virtuális gépének konfigurálása
  2. Az eszköz eltávolítása a gazdagéppartícióról
  3. Az eszköz hozzárendelése a vendég virtuális géphez

Előfeltételek

Mielőtt a DDA-t használná a grafikus eszközök üzembe helyezéséhez, az alábbiakra van szükség.

  • Windows Server 2016 vagy újabb rendszert futtató Hyper-V gazdagép.

  • Az alábbi operációs rendszerek egyikét futtató virtuális gép:

    • Windows Server 2016 vagy újabb verzió.

    • Windows 10 vagy újabb verzió.

  • Tekintse át az eszközök különálló eszköz-hozzárendeléssel történő üzembe helyezésének tervét , hogy a hardver kompatibilis legyen a DDA-val.

    • Futtassa a SurveyDDA.ps1 PowerShell-szkriptet annak megállapítására, hogy a kiszolgáló megfelelően van-e konfigurálva. A szkript azt is megjeleníti, hogy mely eszközök továbbíthatók diszkrét eszköz-hozzárendeléssel.
  • A Hyper-V gazdagép adminisztrátori jogosultságai.

  • (Nem kötelező) Bár nem szükséges, ha az egygyökéres I/O virtualizálás (SR-IOV) nem engedélyezett vagy támogatott, problémákat tapasztalhat, amikor a DDA-t használja grafikus eszközök üzembe helyezéséhez.

A DDA virtuális gépének konfigurálása

A megoldás első lépése a virtuális gépekre vonatkozó DDA-korlátozások kezelése.

  1. Jelentkezzen be rendszergazdaként a Hyper-V gazdagépre.

  2. Nyisson meg egy emelt szintű PowerShell-parancssort.

  3. Konfigurálja a Automatic Stop Action virtuális gép leállítását a következő PowerShell parancsmaggal:

    Set-VM -Name VMName -AutomaticStopAction TurnOff
    

Virtuális gép előkészítése grafikus eszközökhöz

Egyes hardverek jobban teljesítenek, ha a virtuális gép bizonyos módon van konfigurálva. Arról, hogy szüksége van-e a következő konfigurációkra a hardverhez, forduljon a hardver gyártójához. További információkért tekintse meg az eszközök különálló eszköz-hozzárendeléssel történő üzembe helyezésének tervét és ezt a blogbejegyzést.

  1. Engedélyezze a Write-Combining a processzoron a következő parancsmag használatával:

    Set-VM -GuestControlledCacheTypes $true -VMName VMName
    
  2. Konfigurálja a 32 bites memórialeképezett IO -területet (MMIO) a következő parancsmag használatával:

    Set-VM -LowMemoryMappedIoSpace 3Gb -VMName VMName
    
  3. Konfigurálja a 32 bitnél nagyobb MMIO-tárterületet a következő parancsmag használatával:

    Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName VMName
    

    Jótanács

    A megjelenített MMIO-térértékek ésszerű értékek egyetlen GPU-val való kísérletezéshez. Ha a virtuális gép elindítása után az eszköz nem elegendő erőforrással kapcsolatos hibát jelez, valószínűleg módosítania kell ezeket az értékeket. Az MMIO-követelmények pontos kiszámításával kapcsolatos további információkért tekintse meg az eszközök különálló eszköz-hozzárendeléssel történő üzembe helyezésének tervét.

Az eszközt leválasztani a gazda partícióról

Az eszköz gazdapartícióból való leválasztásához kövesse az ebben a szakaszban található utasításokat.

A particionálási illesztőprogram telepítése (nem kötelező)

A DDA lehetővé teszi a hardvergyártók számára, hogy biztonsági kockázatcsökkentő illesztőprogramot biztosítsanak az eszközeikhez. Ez az illesztőprogram nem ugyanaz, mint a vendég virtuális gépen telepített eszközillesztő. Ennek az illesztőprogramnak a biztosítása a hardvergyártó belátása szerint történik. Ha azonban biztosítják az illesztőprogramot, telepítse, mielőtt leválasztja az eszközt a gazdagép partíciójáról. Forduljon a hardver gyártójához, és ellenőrizze, hogy rendelkezik-e kockázatcsökkentő illesztőprogramval.

Ha nincs megadva particionálási illesztőprogram, a biztonsági figyelmeztetés megkerüléséhez a leválasztás során használja az -Force opciót. A biztonsági következményekkel kapcsolatos további információkért tekintse meg az eszközök különálló eszköz-hozzárendeléssel történő üzembe helyezésének tervét.

Az eszköz helyelérési útvonalának megkeresése

A PCI-hely elérési útja szükséges az eszköz leválasztásához és a gazdagépről való csatlakoztatásához. Egy példa hely elérési útja így néz ki: PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000). A hely elérési útjának helyével kapcsolatos további információkért tekintse meg az eszközök különálló eszköz-hozzárendeléssel történő üzembe helyezésének tervét.

Az eszköz letiltása

Az Eszközkezelő vagy a PowerShell használatával győződjön meg arról, hogy az eszköz le van tiltva.

Az eszköz leszerelése

Attól függően, hogy a szállító biztosított-e kockázatcsökkentési illesztőprogramot, vagy használja ezt a -Force lehetőséget, vagy nem, ahogy itt látható:

  • Ha telepített egy hibaelhárítási illesztőprogramot, használja a következő parancsmagot:

    Dismount-VMHostAssignableDevice -LocationPath $locationPath
    
  • Ha a hibaelhárítási illesztőprogram nincs telepítve, használja a következő parancsmagot:

    Dismount-VMHostAssignableDevice -Force -LocationPath $locationPath
    

Az eszköz hozzárendelése a vendég virtuális géphez

Az utolsó lépés annak tudatása Hyper-V, hogy egy virtuális gépnek hozzá kell férnie az eszközhöz. Adja meg a hely elérési útját és a virtuális gép nevét.

Add-VMAssignableDevice -LocationPath $locationPath -VMName VMName

Feladatok végrehajtása a virtuális gépen

Miután sikeresen csatlakoztatta az eszközt egy virtuális géphez, elindíthatja a virtuális gépet, és úgy kezelheti az eszközt, mintha operációs rendszer nélküli rendszeren fut. Most már telepítheti a hardvergyártó illesztőprogramjait a virtuális gépen, és az alkalmazások láthatják a hardvert. Ezt úgy ellenőrizheti, hogy megnyitja az Eszközkezelőt a vendég virtuális gépen, és látja, hogy a hardver elérhető.

Az eszköz eltávolítása és visszaküldése a host-ra

Ha vissza szeretné állítani az eszközt az eredeti állapotába, le kell állítania a virtuális gépet, és ki kell adnia ezt a parancsot:

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

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

Ezután újra engedélyezheti az eszközt az Eszközkezelőben, és a gazdagép operációs rendszere újra képes az eszköz használatára.

Példa – GPU csatlakoztatása virtuális géphez

Ez a példa a PowerShell használatával konfigurál egy ddatest1 nevű virtuális gépet, hogy a gyártó NVIDIA által elérhető első GPU-t a virtuális géphez rendelje.

# 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

GPU csatlakoztatásával kapcsolatos problémák elhárítása

Ha gpu-t ad át egy virtuális gépnek, de a Távoli asztali szolgáltatások vagy egy alkalmazás nem ismeri fel a GPU-t, ellenőrizze az alábbi gyakori problémákat.

  • Győződjön meg arról, hogy a GPU-gyártó által támogatott illesztőprogram legújabb verzióját telepíti, és hogy az illesztőprogram nem jelent hibákat. Ehhez ellenőrizze az eszköz állapotát a Device Managerben.

  • Győződjön meg arról, hogy az eszköz rendelkezik elegendő MMIO-tárterülettel a virtuális gépen belül. További információ: MMIO Space.

  • Győződjön meg arról, hogy olyan GPU-t használ, amelyet a gyártó támogat ebben a konfigurációban. Egyes szállítók például megakadályozzák, hogy a fogyasztói kártyáik működjenek, amikor átadják őket egy virtuális gépnek.

  • Győződjön meg arról, hogy az alkalmazás támogatja a virtuális gépen belüli futtatásokat, és hogy az alkalmazás támogatja a GPU-t és a hozzá tartozó illesztőprogramokat is. Egyes alkalmazások gpu-k és környezetek engedélyezési listájával rendelkeznek.

  • Ha a vendégen a Távoli asztali munkamenetgazda szerepkört vagy a Windows Multipoint Servicest használja, győződjön meg arról, hogy egy adott csoportházirend-bejegyzés engedélyezi az alapértelmezett GPU használatát. Használjon a vendégre alkalmazott csoportházirend-objektumot (vagy a vendég helyi csoportházirend-szerkesztőjét). Lépjen a következő csoportházirend-elemre:

    Számítógép konfigurációja\Rendszergazdai sablonok\Windows-összetevők\Távoli asztali szolgáltatások\Távoli asztali munkamenetgazda\Távoli munkamenet-környezet\Hardveres grafikus adapterek használata minden távoli asztali szolgáltatás-munkamenethez.

    Állítsa a csoportházirend értékét Engedélyezve értékre, majd indítsa újra a virtuális gépet a szabályzat alkalmazása után.