Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med diskret enhetstilldelning kan pcIe-maskinvara (Physical Peripheral Component Interconnect Express) vara direkt åtkomlig från en virtuell dator (VM). I den här artikeln beskrivs vilken typ av enheter som kan användas, krav på värdsystem, begränsningar för de virtuella datorerna och säkerhetskonsekvenser.
För diskret enhetstilldelning stöder Microsoft två enhetsklasser: grafikkort och NVMe Storage-enheter. Det är troligt att andra enheter fungerar och maskinvaruleverantörer kan erbjuda stödförklaringar för dessa enheter. För andra enheter kontaktar du specifika maskinvaruleverantörer för support.
Mer information om andra metoder för GPU-virtualisering finns i Planera för GPU-acceleration i Windows Server. Om du är redo att prova diskret enhetstilldelning kan du gå till Distribuera grafikenheter med diskret enhetstilldelning eller Distribuera NVMe-lagringsenheter med diskret enhetstilldelning.
Virtuella datorer och gästoperativsystem som stöds
Diskret enhetstilldelning stöds för virtuella datorer i generation 1 eller 2. De gäster som stöds är:
- Windows 10 eller senare
 - Windows Server 2016 eller senare
 
Mer information finns i Linux- och FreeBSD-virtuella datorer som stöds för Hyper-V på Windows Server och Windows.
Systemkrav
Systemet måste uppfylla maskinvarukraven för Windows Server och systemkrav för Hyper-V på Windows Server. Diskret enhetstilldelning kräver också maskinvara i serverklass som kan ge operativsystemet kontroll över konfigurationen av PCIe-infrastrukturresurserna (inbyggd PCI Express-kontroll). Dessutom måste PCIe Root Complex stödja Access Control Services (ACS), vilket gör det möjligt för Hyper-V att tvinga all PCIe-trafik via Input-Output minneshanteringsenhet.
Dessa funktioner exponeras vanligtvis inte direkt i BIOS på servern och döljs ofta bakom andra inställningar. Om samma funktioner krävs för SR-IOV support och i BIOS kan du behöva ange "Aktivera SR-IOV". Kontakta systemleverantören om du inte kan identifiera rätt inställning i DIN BIOS.
För att säkerställa att maskinvaran kan tilldelas diskret enhet kan du köra maskinprofilskriptet på en Hyper-V aktiverad värd. Skriptet testar om servern är korrekt konfigurerad och vilka enheter som kan tilldelas diskreta enheter.
Enhetskrav
Alla PCIe-enheter kan inte användas med diskret enhetstilldelning. Äldre enheter som använder äldre PCI-avbrott (INTx) stöds inte. Mer information finns i Diskret enhetstilldelning – datorer och enheter. Du kan också köra maskinprofilskriptet för att visa vilka enheter som kan användas för diskret enhetstilldelning.
Enhetstillverkare kan kontakta sin Microsoft-representant för mer information.
Drivrutin
Diskret enhetstilldelning skickar hela PCIe-enheten till den virtuella gästdatorn. En värddrivrutin måste inte installeras innan enheten monteras i den virtuella datorn. Det enda kravet på värddatorn är att enhetens PCIe-platssökväg kan identifieras. Enhetens drivrutin kan installeras för att identifiera enheten. En GPU utan att dess drivrutin är installerad på den värd kan visas som en Microsoft Basic Render-enhet. Om enhetsdrivrutinen är installerad visas sannolikt tillverkaren och modellen.
När enheten monteras inuti gästen kan tillverkarens enhetsdrivrutin installeras som vanligt i den virtuella gästdatorn.
Begränsningar för virtuella datorer
På grund av hur diskret enhetstilldelning implementeras begränsas vissa funktioner i en virtuell dator när en enhet är ansluten. Följande funktioner är inte tillgängliga:
- Spara/återställa virtuell dator
 - Direktmigrering av en virtuell dator
 - Användning av dynamiskt minne
 - Lägga till den virtuella datorn i ett högtillgängligt kluster (HA)
 
Security
Diskret enhetstilldelning skickar hela enheten till den virtuella datorn. Det här passet innebär att alla funktioner på enheten är tillgängliga från gästoperativsystemet. Vissa funktioner, till exempel uppdatering av inbyggd programvara, kan påverka systemets stabilitet negativt. Administratören får flera varningar när enheten demonteras från värddatorn. Du bör endast använda Diskret enhetstilldelning där användarna av de virtuella maskinerna är pålitliga.
Om administratören vill använda en enhet med en icke betrodd klientorganisation kan enhetstillverkare skapa en enhetsreduceringsdrivrutin som kan installeras på värden. Kontakta enhetstillverkaren för mer information om huruvida de tillhandahåller en enhetsreduceringsdrivrutin.
Om du vill kringgå säkerhetskontrollerna för en enhet som inte har någon drivrutin för enhetsreducering måste du skicka parametern -Force till cmdleten Dismount-VMHostAssignableDevice . När du gör det här passet har du ändrat systemets säkerhetsprofil. Du bör bara göra den här ändringen under prototyper eller betrodda miljöer.
Sökväg till PCIe-plats
PCIe-platssökvägen krävs för att demontera enheten från värddatorn och montera den igen. Ett exempel på platssökväg är PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000). 
              Maskinprofilskriptet returnerar också platssökvägen för PCIe-enheten.
Hämta sökvägen till platsen med hjälp av Enhetshanteraren
              
              
            
- Öppna Enhetshanteraren och leta upp enheten.
 - Högerklicka på enheten och välj Egenskaper.
 - På fliken Information expanderar du den nedrullningsbara menyn Egenskap och väljer Sökvägar för plats.
 - Högerklicka på posten som börjar med PCIROOT och välj Kopiera för att hämta platssökvägen för enheten.
 
MMIO-utrymme
Vissa enheter, särskilt GPU:er, kräver mer MMIO-utrymme som ska allokeras till den virtuella datorn för att enhetens minne ska vara tillgängligt. Som standard börjar varje virtuell dator med 128 MB lågt MMIO-utrymme och 512 MB stort MMIO-utrymme allokerat till den. En enhet kan dock kräva mer MMIO-utrymme, eller så kan flera enheter skickas genom så att de kombinerade kraven överskrider dessa värden. Det är enkelt att ändra MMIO-utrymme och kan utföras i PowerShell med hjälp av följande kommandon:
Set-VM -LowMemoryMappedIoSpace 3Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName $vm
Det enklaste sättet att avgöra hur mycket MMIO-utrymme som ska allokeras är att använda maskinprofilskriptet. Om du vill ladda ned och köra datorprofilskriptet kör du följande kommandon i en PowerShell-konsol:
curl -o SurveyDDA.ps1 https://raw.githubusercontent.com/MicrosoftDocs/Virtualization-Documentation/live/hyperv-tools/DiscreteDeviceAssignment/SurveyDDA.ps1
.\SurveyDDA.ps1
För enheter som kan tilldelas visar skriptet MMIO-kraven för en viss enhet. Följande skriptutdata är ett exempel:
NVIDIA GRID K520
Express Endpoint -- more secure.
    ...
    And it requires at least: 176 MB of MMIO gap space
...
Det låga MMIO-utrymmet används endast av 32-bitars operativsystem och enheter som använder 32-bitarsadresser. I de flesta fall räcker det med att ange ett högt MMIO-utrymme för en virtuell dator eftersom 32-bitarskonfigurationer inte är vanliga.
Important
När du tilldelar MMIO-utrymme till en virtuell dator måste du ange tillräckligt med MMIO-utrymme. MMIO-utrymmet ska vara summan av det begärda MMIO-utrymmet för alla önskade tilldelade enheter plus en buffert för andra virtuella enheter som kräver några MB MMIO-utrymme. Använd standardvärdena för MMIO som tidigare beskrivits som buffert för låg och hög MMIO (128 MB respektive 512 MB).
Tänk på föregående exempel. Om du tilldelar en enda K520 GPU anger du MMIO-utrymmet för den virtuella datorn till värdet som matas ut av datorprofilskriptet plus en buffert: 176 MB + 512 MB. Om du tilldelar tre K520 GPU:er anger du MMIO-utrymmet till tre gånger basmängden på 176 MB plus en buffert, eller 528 MB + 512 MB.
En mer ingående titt på MMIO-utrymme finns i Diskret enhetstilldelning – GPU:er på Tech Community-bloggen.
Datorprofilskript
För att identifiera om servern är korrekt konfigurerad och vilka enheter som kan skickas genom Diskret enhetstilldelning, kör SurveyDDA.ps1. PowerShell-skript.
Innan du använder skriptet kontrollerar du att du har den Hyper-V rollen installerad och kör skriptet från ett PowerShell-kommandofönster som har administratörsbehörighet.
Om systemet är felaktigt konfigurerat för att stödja diskret enhetstilldelning visar verktyget ett felmeddelande med information om problemet. Om systemet är korrekt konfigurerat räknar verktyget upp alla enheter som finns på PCIe Bus.
För varje enhet som hittas visar verktyget om det kan användas med diskret enhetstilldelning. Om en enhet identifieras som inkompatibel med diskret enhetstilldelning ger skriptet en orsak. När en enhet har identifierats som kompatibel visas enhetens platssökväg. Om enheten dessutom kräver MMIO-utrymme visas den också.