Planen der Bereitstellung von Geräten unter Verwendung der diskreten Gerätezuweisung
Die diskrete Gerätezuweisung ermöglicht den direkten Zugriff auf physische PCIe-Hardware (Peripheral Component Interconnect Express) innerhalb eines virtuellen Computers (Virtual Machine, VM). Dieser Artikel enthält Informationen zur Art der verwendbaren Geräte, zu Hostsystemanforderungen, zu Einschränkungen für die virtuellen Computer und zu Auswirkungen auf die Sicherheit.
Bei der diskreten Gerätezuweisung unterstützt Microsoft zwei Geräteklassen: Grafikadapter und NVMe-Speichergeräte. Andere Geräte funktionieren wahrscheinlich, und Hardwareanbieter können sich zu ihrer Unterstützung äußern. Wenden Sie sich bei anderen Geräten an die spezifischen Hardwareanbieter, um Unterstützung zu erhalten.
Weitere Informationen zu anderen Methoden der GPU-Virtualisierung finden Sie unter Planen der GPU-Beschleunigung in Windows Server. Wenn Sie die diskrete Gerätezuweisung ausprobieren möchten, können Sie zu Deploy graphics devices using Discrete Device Assignment (Bereitstellen von Grafikgeräten mithilfe der diskreten Gerätezuweisung) oder zu Bereitstellen von NVMe-Speichergeräten mithilfe der diskreten Gerätezuweisung wechseln.
Unterstützte virtuelle Computer und Gastbetriebssysteme
Die diskrete Gerätezuweisung wird für virtuelle Computer der Generation 1 oder 2 unterstützt. Zu den unterstützten Gastbetriebssystemen zählen:
- Windows 10 oder höher
- Windows Server 2016 oder höher
- Windows Server 2012 R2 mit dem Update zum Hinzufügen der Unterstützung für diskrete Gerätezuweisungen für Azure
Weitere Informationen finden Sie unter Unterstützte virtuelle Linux- und FreeBSD-Computer für Hyper-V unter Windows Server und Windows.
Systemanforderungen
Ihr System muss die Hardwareanforderungen für Windows Server und die Systemanforderungen für Hyper-V unter Windows Server erfüllen. Für die diskrete Gerätezuweisung ist außerdem Hardware der Serverklasse erforderlich, die dem Betriebssystem die Steuerung der Konfiguration des PCIe-Fabric ermöglicht (native PCI Express-Steuerung). Darüber hinaus muss der PCIe Root Complex Zugriffssteuerungsdienste (Access Control Services, ACS) unterstützen, sodass Hyper-V den gesamten PCIe-Datenverkehr über die IOMMU (Input-Output Memory Management Unit, E/A-Speicherverwaltungseinheit) leiten kann.
Diese Funktionen werden normalerweise nicht direkt im BIOS des Servers verfügbar gemacht und sind oft hinter anderen Einstellungen verborgen. Sind die gleichen Funktionen für die SR-IOV-Unterstützung erforderlich, müssen Sie im BIOS ggf. „SR-IOV aktivieren“ festlegen. Wenden Sie sich an Ihren Systemanbieter, wenn Sie die korrekte Einstellung in Ihrem BIOS nicht identifizieren können.
Um sicherzustellen, dass die Hardware für die diskrete Gerätezuweisung geeignet ist, können Sie das Computerprofilskript auf einem Host mit Hyper-V-Unterstützung ausführen. Das Skript testet, ob Ihr Server ordnungsgemäß eingerichtet ist und welche Geräte in der Lage sind, die diskrete Gerätezuweisung durchzuführen.
Geräteanforderungen
Nicht jedes PCIe-Gerät kann mit diskreter Gerätezuweisung verwendet werden. Ältere Geräte mit Legacy-PCI-Interrupts (INTx) werden nicht unterstützt. Weitere Informationen finden Sie unter Discrete Device Assignment -- Machines and devices (Diskrete Gerätezuweisung: Computer und Geräte). Sie können das Computerprofilskript auch ausführen, um anzuzeigen, welche Geräte für die diskrete Gerätezuweisung verwendet werden können.
Gerätehersteller können sich an ihre Microsoft-Vertretung wenden, um weitere Details zu erhalten.
Gerätetreiber
Die diskrete Gerätezuweisung übergibt das gesamte PCIe-Gerät an den virtuellen Gastcomputer. Es muss kein Hosttreiber installiert werden, bevor das Gerät in den virtuellen Computer eingebunden wird. Die einzige Voraussetzung auf dem Host ist, dass der PCIe-Standortpfad des Geräts bestimmt werden kann. Der Gerätetreiber kann installiert werden, um die Identifizierung des Geräts zu erleichtern. Eine GPU, deren Gerätetreiber auf dem Host nicht installiert ist, wird ggf. als „Microsoft Basic Render Device“ angezeigt. Wenn der Gerätetreiber installiert ist, werden Hersteller und Modell wahrscheinlich angezeigt.
Nachdem das Gerät in den Gast eingebunden wurde, kann der Gerätetreiber des Herstellers wie gewohnt auf dem virtuellen Gastcomputer installiert werden.
Einschränkungen für den virtuellen Computer
Aufgrund der Art der Implementierung der diskreten Gerätezuweisung sind einige Funktionen eines virtuellen Computers eingeschränkt, während ein Gerät angefügt ist. Folgende Features sind nicht verfügbar:
- Virtuellen Computer speichern/wiederherstellen
- Livemigration eines virtuellen Computers
- Die Verwendung des dynamischen Arbeitsspeichers
- Hinzufügen des virtuellen Computers zu einem Hochverfügbarkeitscluster
Sicherheit
Die diskrete Gerätezuweisung übergibt das gesamte Gerät an den virtuellen Computer. Diese Übergabe bedeutet, dass alle Funktionen des Geräts über das Gastbetriebssystem zugänglich sind. Einige Funktionen (z. B. Firmwareupdates) können die Stabilität des Systems beeinträchtigen. Administrator*innen werden zahlreiche Warnungen angezeigt, wenn die Bereitstellung des Geräts vom Host aufgehoben wird. Verwenden Sie die diskrete Gerätezuweisung nur, wenn die Mandanten der virtuellen Computer vertrauenswürdig sind.
Wenn Administrator*innen ein Gerät mit einem nicht vertrauenswürdigen Mandanten verwenden möchten, können Gerätehersteller einen Device Mitigation-Treiber erstellen, der auf dem Host installiert werden kann. Wenden Sie sich an den Gerätehersteller, um zu erfahren, ob er einen Device Mitigation-Treiber bereitstellt.
Wenn Sie die Sicherheitsüberprüfungen für ein Gerät ohne Device Mitigation-Treiber umgehen möchten, müssen Sie den Parameter -Force
an das Cmdlet Dismount-VMHostAssignableDevice
übergeben. Durch diese Übergabe ändert sich das Sicherheitsprofil des Systems. Nehmen sie diese Änderung nur während der Prototyperstellung oder in vertrauenswürdigen Umgebungen vor.
PCIe-Speicherortpfad
Der PCIe-Speicherortpfad ist für die Einbindung des Geräts auf dem Host sowie für deren Aufhebung erforderlich. Ein Beispiel für einen solchen Speicherortpfad ist PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000)
. Das Computerprofilskript gibt auch den Speicherortpfad des PCIe-Geräts zurück.
Abrufen des Speicherortpfads mithilfe von Geräte-Manager
- Öffnen Sie Geräte-Manager, und suchen Sie das Gerät.
- Klicken Sie mit der rechten Maustaste auf das Gerät, und wählen Sie Eigenschaften aus.
- Erweitern Sie auf der Registerkarte Details die Dropdownliste Eigenschaft, und wählen Sie die Option Speicherortpfade aus.
- Klicken Sie mit der rechten Maustaste auf den Eintrag, der mit PCIROOT beginnt, und wählen Sie Kopieren aus, um den Speicherortpfad für das Gerät zu erhalten.
MMIO-Speicherplatz
Bei einigen Geräten – insbesondere GPUs – muss der VM mehr MMIO-Speicherplatz zugewiesen werden, damit auf den Arbeitsspeicher dieses Geräts zugegriffen werden kann. Standardmäßig ist jeder VM anfangs ein Minimalwert von 128 MB und ein Maximalwert von 512 MB MMIO-Speicherplatz zugewiesen. Ein Gerät benötigt jedoch möglicherweise mehr MMIO-Speicherplatz, oder mehrere Geräte werden so übergeben, dass die kombinierten Anforderungen diese Werte übersteigen. Der MMIO-Speicherplatz kann in PowerShell ganz einfach mithilfe folgender Befehle geändert werden:
Set-VM -LowMemoryMappedIoSpace 3Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName $vm
Die einfachste Möglichkeit, zu bestimmen, wie viel MMIO-Speicherplatz zugewiesen werden soll, ist die Verwendung des Computerprofilskripts. Führen Sie zum Herunterladen und Ausführen des Computerprofilskripts die folgenden Befehle in einer PowerShell-Konsole aus:
curl -o SurveyDDA.ps1 https://raw.githubusercontent.com/MicrosoftDocs/Virtualization-Documentation/live/hyperv-tools/DiscreteDeviceAssignment/SurveyDDA.ps1
.\SurveyDDA.ps1
Für Geräte, die zugewiesen werden können, zeigt das Skript die MMIO-Anforderungen des jeweiligen Geräts an. Die folgende Skriptausgabe ist ein Beispiel:
NVIDIA GRID K520
Express Endpoint -- more secure.
...
And it requires at least: 176 MB of MMIO gap space
...
Der geringe MMIO-Speicherplatz wird nur von 32-Bit-Betriebssystemen und Geräten verwendet, die 32-Bit-Adressen verwenden. In den meisten Fällen reicht das Festlegen des Maximalwerts für den MMIO-Speicherplatz einer VM aus, da 32-Bit-Konfigurationen nicht sehr häufig sind.
Wichtig
Wenn Sie einem virtuellen Computer MMIO-Speicherplatz zuweisen, müssen Sie darauf achten, genügend MMIO-Speicherplatz anzugeben. Der MMIO-Speicherplatz muss die Summe aus dem angeforderten MMIO-Speicherplatz für alle gewünschten zugewiesenen Geräte sein und einen zusätzlichen Puffer für andere virtuelle Geräte enthalten, die einige MB an MMIO-Speicherplatz benötigen. Verwenden Sie die oben beschriebenen MMIO-Standardwerte als Puffer für den Minimal- und Maximalwert für MMIO (128 MB bzw. 512 MB).
Sehen Sie sich das vorherige Beispiel an. Wenn Sie eine einzelne K520-GPU zuweisen, müssen Sie den MMIO-Speicherplatz des virtuellen Computers auf einen Wert festlegen, der sich aus dem vom Computerprofilskript ausgegebenen Wert und einem Puffer zusammensetzt: 176 MB + 512 MB. Wenn Sie drei K520-GPUs zuweisen, müssen Sie den MMIO-Speicherplatz auf dreimal die Basismenge von 176 MB plus einen Puffer (also auf 528 MB + 512 MB) festlegen.
Einen ausführlicheren Blick auf den MMIO-Speicherplatz finden Sie im Tech Community-Blog unter Discrete Device Assignment -- GPUs (Diskrete Gerätezuweisung: GPUs).
Computerprofilskript
Führen Sie das PowerShell-Skript SurveyDDA.ps1 aus, um zu ermitteln, ob der Server korrekt konfiguriert ist und welche Geräte über die diskrete Gerätezuweisung übergeben werden können.
Vergewissern Sie sich vor der Verwendung des Skripts, dass die Hyper-V-Rolle installiert ist und Sie das Skript in einem PowerShell-Befehlsfenster mit Administratorberechtigungen ausführen.
Ist das System nicht korrekt für die Unterstützung der diskreten Gerätezuweisung konfiguriert, wird eine Fehlermeldung mit Problemdetails angezeigt. Ist das System korrekt konfiguriert, listet das Tool alle Geräte auf, die sich auf dem PCIe-Bus befinden.
Für jedes gefundene Gerät zeigt das Tool an, ob es mit diskreter Gerätezuweisung verwendet werden kann. Wenn ein Gerät als inkompatibel mit der diskreten Gerätezuweisung identifiziert wird, stellt das Skript einen Grund bereit. Wenn ein Gerät erfolgreich als kompatibel identifiziert wird, wird der Speicherortpfad des Geräts angezeigt. Wenn dieses Gerät MMIO-Speicherplatz benötigt, wird auch dies angezeigt.