Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
PowerShell ile tek başına (kümelenmemiş) Hyper-V konaklarda bir PCIe cihazının tamamını bir sanal makineye (VM) geçirmek için Ayrı Cihaz Ataması'nın (DDA) nasıl kullanılacağını öğrenin. Bunun yapılması, nvme depolama veya grafik kartları gibi cihazlara vm içinden yüksek performanslı erişim sağlarken cihazın yerel sürücülerini de uygulayabilir. Çalışan cihazlar ve olası güvenlik etkileri hakkında daha fazla bilgi için bkz. Ayrı Cihaz Ataması Kullanarak Cihazları Dağıtmayı Planlama.
Bu makalede DDA ile cihaz kullanma adımları izlenir:
Önemli
Grafik cihazları kümelenmiş sanal makinelere dağıtıldı mı? Kümelenmiş ortamlarda GPU Havuzları ile DDA kullanma hakkında bilgi edinin. Bkz . Kümelenmiş VM'lerde Ayrı Cihaz Ataması ile GPU'ları kullanma.
Prerequisites
Grafik cihazlarını dağıtmak için DDA'yı kullanabilmeniz için önce aşağıdakilere sahip olmanız gerekir.
Windows Server 2016 veya üzerini çalıştıran bir Hyper-V konağı.
Aşağıdaki işletim sistemlerinden birini çalıştıran bir VM:
Windows Server 2016 veya üzeri.
Windows 10 veya üzeri.
Donanımınızın DDA ile uyumlu olduğundan emin olmak için Ayrı Cihaz Ataması kullanarak Cihazları Dağıtma Planını gözden geçirin.
- SurveyDDA.ps1çalıştırın . Sunucunun doğru yapılandırılıp yapılandırılmamış olduğunu belirlemek için PowerShell betiği. Betik ayrıca Ayrık Cihaz Ataması (Discrete Device Assignment) kullanılarak hangi cihazların iletilebileceğini görüntüler.
Hyper-V konağının yönetim hakları.
(İsteğe bağlı) Gerekli olmasa da, Tek Kök G/Ç Sanallaştırma (SR-IOV) etkinleştirilmediyse veya desteklenmiyorsa, grafik cihazlarını dağıtmak için DDA kullanırken sorunlarla karşılaşabilirsiniz.
VM'yi DDA için yapılandırma
Çözümün ilk adımı, VM'lere yönelik DDA kısıtlamalarını ele almaktır.
Hyper-V ana bilgisayarında yönetici olarak oturum açın.
Yükseltilmiş bir PowerShell istemi açın.
Automatic Stop ActionAşağıdaki PowerShell cmdlet'iyle TurnOff'u etkinleştirmek için vm'yi yapılandırın:Set-VM -Name VMName -AutomaticStopAction TurnOff
Grafik cihazları için VM hazırlığı
Vm'nin belirli bir şekilde yapılandırılması durumunda bazı donanımlar daha iyi performans gösterir. Donanımınız için aşağıdaki yapılandırmalara ihtiyacınız olup olmadığına ilişkin ayrıntılar için donanım satıcısına ulaşın. Daha fazla bilgi için bkz. Ayrı Cihaz Ataması Kullanarak Cihaz Dağıtmayı Planlama ve bu blog gönderisi.
Aşağıdaki cmdlet'i kullanarak CPU'da Write-Combining etkinleştirin:
Set-VM -GuestControlledCacheTypes $true -VMName VMNameAşağıdaki cmdlet'i kullanarak 32-bit bellek eşlemeli GÇ (MMIO) alanını yapılandırın.
Set-VM -LowMemoryMappedIoSpace 3Gb -VMName VMNameAşağıdaki cmdlet'i kullanarak 32 bit MMIO'dan büyük bir alan yapılandırın:
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName VMNameTip
Gösterilen MMIO alanı değerleri, tek bir GPU ile deneme yapmak için ayarlanması gereken makul değerlerdir. VM'yi başlattıktan sonra cihaz yeterli kaynak olmamasıyla ilgili bir hata bildiriyorsa, büyük olasılıkla bu değerleri değiştirmeniz gerekir. MMIO gereksinimlerini hassas bir şekilde hesaplama hakkında daha fazla bilgi için bkz. Ayrı Cihaz Ataması Kullanarak Cihazları Dağıtmayı Planlama.
Cihazı konak bölümünden çıkarma
Cihazı konak bölümünden kaldırmak için bu bölümdeki yönergeleri izleyin.
Bölümleme sürücüsünü yükleme (isteğe bağlı)
DDA, donanım satıcılarına cihazlarıyla bir güvenlik azaltma sürücüsü sağlama olanağı sağlar. Bu sürücü, konuk VM'de yüklü olan cihaz sürücüsüyle aynı değildir. Bu sürücüyü sağlamak donanım satıcısının takdirine bağlıdır. Ancak bir sürücü sağlıyorlarsa, cihazı konak bölümünden çıkarmadan önce yükleyin. Bir azaltma sürücüsü olup olmadığını görmek için donanım satıcısına ulaşın.
Bölümleme sürücüsü sağlanmadıysa, çıkarma sırasında güvenlik uyarısını -Force atlama seçeneğini kullanmanız gerekir. Güvenlik etkileri hakkında daha fazla bilgi için bkz. Ayrı Cihaz Ataması Kullanarak Cihazları Dağıtmayı Planlama.
Cihazın konum yolunu bulma
Cihazı ana bilgisayardan sökmek ve bağlamak için PCI konum yolu gereklidir. Örnek bir konum yolu şuna benzer: PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000). Konum yolunu bulma hakkında daha fazla bilgi için bkz. Ayrı Cihaz Ataması Kullanarak Cihazları Dağıtmayı Planlama.
Cihazı devre dışı bırakma
Cihazın Devre Dışı olduğundan emin olmak için Cihaz Yöneticisi'ni veya PowerShell'i kullanın.
Cihazı çıkarma
Satıcının bir risk azaltma sürücüsü sağlayıp sağlamadığına göre, burada gösterildiği gibi -Force seçeneğini kullanmalısınız veya kullanmamalısınız.
Bir azaltma sürücüsü yüklendiyse aşağıdaki cmdlet'i kullanın:
Dismount-VMHostAssignableDevice -LocationPath $locationPathBir azaltma sürücüsü yüklü değilse aşağıdaki cmdlet'i kullanın:
Dismount-VMHostAssignableDevice -Force -LocationPath $locationPath
Cihazı konuk VM'ye atama
Son adım, Hyper-V bir VM'nin cihaza erişimi olması gerektiğini söylemektir. Konum yolunu ve VM'nin adını belirtin.
Add-VMAssignableDevice -LocationPath $locationPath -VMName VMName
VM'de görevleri tamamlama
Bir cihaz, bir VM'ye başarıyla monte edildikten sonra, bu VM'yi başlatıp sanki fiziksel bir sistemde çalışıyormuşsunuz gibi cihazla etkileşimde bulunabilirsiniz. Artık donanım satıcısının sürücülerini VM'ye yükleyebilirsiniz ve uygulamalar donanımı görebilir. Konuk VM'de Cihaz Yöneticisi'ni açıp donanımın kullanılabilir olduğunu görerek bunu doğrulayabilirsiniz.
Cihazı kaldırın ve ana bilgisayara geri gönderin
Cihazı özgün durumuna geri döndürmek istiyorsanız VM'yi durdurmanız ve şu komutu göndermeniz gerekir:
# Remove the device from the VM
Remove-VMAssignableDevice -LocationPath $locationPath -VMName VMName
# Mount the device back in the host
Mount-VMHostAssignableDevice -LocationPath $locationPath
Ardından Cihaz Yöneticisi'nde cihazı yeniden etkinleştirebilirsiniz ve konak işletim sistemi cihazla yeniden etkileşim kurabilir.
Örnek - VM'ye GPU bağlama
Bu örnekte, üretici NVIDIA tarafından kullanılabilen ilk GPU'yu alıp VM'ye atamak üzere ddatest1 adlı bir VM yapılandırmak için PowerShell kullanılır.
# 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 bağlamayla ilgili sorunları giderme
Bir VM'ye GPU geçirirseniz ancak Uzak Masaüstü Hizmetleri veya bir uygulama GPU'yu tanımıyorsa aşağıdaki yaygın sorunları kontrol edin.
GPU satıcısının desteklenen sürücüsünün en son sürümünü yüklediğinizden ve sürücünün hata bildirmediğinden emin olun. Cihaz Yöneticisi'nde cihaz durumunu denetleyerek bunu yapabilirsiniz.
Cihazınızda VM içinde yeterli MMIO alanı ayrıldığından emin olun. Daha fazla bilgi için bkz. MMIO Space.
Satıcının bu yapılandırmada kullanılmasını desteklediği bir GPU kullandığınızdan emin olun. Örneğin, bazı satıcılar vm'ye geçirildiğinde tüketici kartlarının çalışmasını engeller.
Uygulamanın bir VM içinde çalıştırmayı desteklediğinden ve uygulamanın hem GPU'ları hem de ilişkili sürücülerini desteklediğinden emin olun. Bazı uygulamalarda GPU'ların ve ortamların izin verilenler listesi bulunur.
Konukta Uzak Masaüstü Oturumu Ana Bilgisayarı rolünü veya Windows Multipoint Hizmetleri'ni kullanıyorsanız, belirli bir Grup İlkesi girişinin varsayılan GPU kullanımına izin verecek şekilde ayarlandığından emin olmanız gerekir. Misafire uygulanan bir Grup İlkesi Nesnesi veya misafirin Yerel Grup İlkesi Düzenleyicisi'ni kullanın. Aşağıdaki Grup İlkesi öğesine gidin:
Bilgisayar Yapılandırması\Yönetici Şablonları\Windows Bileşenleri\Uzak Masaüstü Hizmetleri\Uzak Masaüstü Oturumu Ana Bilgisayarı\Uzak Oturum Ortamı\Tüm Uzak Masaüstü Hizmetleri oturumları için donanım grafik bağdaştırıcıları kullanın.
Grup İlkesi değerini Etkin olarak ayarlayın ve ilkeyi uyguladıktan sonra VM'yi yeniden başlatın.