Udostępnij za pomocą


Wdrażanie urządzeń przy użyciu dyskretnego przypisania urządzenia

Przypisanie Dyskretnych Urządzeń pozwala fizycznemu sprzętowi PCIe na bezpośredni dostęp z wnętrza maszyny wirtualnej (VM). W tym artykule omówiono typ urządzeń, które mogą być używane, wymagania systemowe hosta, ograniczenia nałożone na maszyny wirtualne i implikacje dotyczące zabezpieczeń.

W przypadku przypisywania urządzeń dyskretnych firma Microsoft obsługuje dwie klasy urządzeń: karty graficzne i urządzenia pamięci masowej NVMe. Inne urządzenia prawdopodobnie działają, a dostawcy sprzętu mogą oferować instrukcje pomocy technicznej dla tych urządzeń. W przypadku innych urządzeń skontaktuj się z określonymi dostawcami sprzętu w celu uzyskania pomocy technicznej.

Aby dowiedzieć się więcej o innych metodach wirtualizacji procesora GPU, zobacz Planowanie przyspieszania procesora GPU w systemie Windows Server. Jeśli jesteś gotowy do wypróbowania Dyskretnego Przypisania Urządzeń, możesz przejść do pozycji Wdrażanie urządzeń graficznych przy użyciu Dyskretnego Przypisania Urządzeń lub Wdrażanie urządzeń magazynujących NVMe przy użyciu Dyskretnego Przypisania Urządzeń.

Obsługiwane maszyny wirtualne i systemy operacyjne gościnne

Dyskretne przypisanie urządzenia jest obsługiwane dla maszyn wirtualnych generacji 1 lub 2. Wspierani goście to:

  • Windows 10 lub nowszy
  • Windows Server 2016 lub nowszy

Aby uzyskać więcej informacji, zobacz Obsługiwane maszyny wirtualne z systemami Linux i FreeBSD dla Hyper-V w systemach Windows Server i Windows.

Wymagania systemowe

System musi spełniać wymagania sprzętowe systemu Windows Server i wymagania systemowe dotyczące Hyper-V w systemie Windows Server. Przypisanie dyskretnych urządzeń wymaga również sprzętu klasy serwera, który umożliwia systemowi operacyjnemu kontrolowanie struktury PCIe (natywna kontrola PCI Express). Ponadto główny kompleks PCIe musi obsługiwać usługi kontroli dostępu (ACS), co umożliwia Hyper-V wymuszenie całego ruchu PCIe przez jednostkę zarządzania pamięcią Input-Output.

Te możliwości zwykle nie są widoczne bezpośrednio w systemie BIOS serwera i są często ukryte za innymi ustawieniami. Jeśli te same funkcjonalności są wymagane do obsługi SR-IOV i w systemie BIOS, może być konieczne ustawienie "Włącz SR-IOV". Skontaktuj się z producentem systemu, jeśli nie możesz zidentyfikować poprawnego ustawienia w systemie BIOS.

Aby upewnić się, że sprzęt jest w stanie obsługiwać dyskretne przypisanie urządzeń, można uruchomić skrypt profilu komputera na hoście z obsługą Hyper-V. Skrypt sprawdza, czy serwer jest poprawnie skonfigurowany i które urządzenia mogą być używane w ramach dyskretnego przypisania urządzeń.

Wymagania dotyczące urządzeń

Nie każde urządzenie PCIe może być używane z dyskretnym przydziałem urządzeń. Starsze urządzenia korzystające z dziedzicznych przerwań PCI typu INTx nie są obsługiwane. Aby uzyskać więcej informacji, zobacz Dyskretne przypisywanie urządzeń — maszyny i urządzenia. Można również uruchomić skrypt profilu komputera , aby wyświetlić, które urządzenia mogą być używane do przypisywania dyskretnych urządzeń.

Producenci urządzeń mogą skontaktować się ze swoim przedstawicielem firmy Microsoft, aby uzyskać więcej informacji.

Sterownik urządzenia

Przypisanie dyskretnych urządzeń przekazuje całe urządzenie PCIe do maszyny wirtualnej gościa. Sterownik hosta nie jest wymagany do zainstalowania przed zainstalowaniem urządzenia na maszynie wirtualnej. Jedynym wymaganiem na hoście jest to, że można określić ścieżkę lokalizacji PCIe urządzenia. Sterownik urządzenia można zainstalować, aby ułatwić identyfikację urządzenia. Procesor GPU bez sterownika urządzenia zainstalowanego na hoście może być wyświetlany jako podstawowe urządzenie renderowane firmy Microsoft. Jeśli sterownik urządzenia jest zainstalowany, jego producent i model prawdopodobnie będą wyświetlane.

Gdy urządzenie jest zainstalowane wewnątrz gościa, sterownik urządzenia producenta można zainstalować jak zwykle na maszynie wirtualnej gościa.

Ograniczenia maszyn wirtualnych

Ze względu na charakter implementacji dyskretnego przypisania urządzenia niektóre funkcje maszyny wirtualnej są ograniczone podczas dołączania urządzenia. Następujące funkcje nie są dostępne:

  • Zapisywanie/przywracanie maszyny wirtualnej
  • Migracja na żywo maszyny wirtualnej
  • Korzystanie z pamięci dynamicznej
  • Dodawanie maszyny wirtualnej do klastra wysokiej dostępności

Zabezpieczenia

Dyskretne przypisanie urządzenia przekazuje całe urządzenie do maszyny wirtualnej. Ta przepustka oznacza, że wszystkie funkcje tego urządzenia są dostępne w systemie operacyjnym gościa. Niektóre funkcje, takie jak aktualizowanie oprogramowania układowego, mogą niekorzystnie wpłynąć na stabilność systemu. Podczas odinstalowywanie urządzenia z hosta jest wyświetlane wiele ostrzeżeń dla administratora. Należy używać dyskretnego przypisania urządzenia tylko dla zaufanych użytkowników maszyn wirtualnych.

Jeśli administrator chce użyć urządzenia z niezaufanym dzierżawcą, producenci urządzeń mogą utworzyć sterownik ochrony, który można zainstalować na urządzeniu głównym. Skontaktuj się z producentem urządzenia, aby uzyskać szczegółowe informacje na temat tego, czy udostępnia sterownik ograniczania ryzyka urządzenia.

Jeśli chcesz pominąć kontrole zabezpieczeń dla urządzenia, które nie ma Sterownika Redukcji Zagrożeń, musisz przekazać parametr -Force do polecenia Dismount-VMHostAssignableDevice cmdlet. Po utworzeniu tego przebiegu zmieniono profil zabezpieczeń tego systemu. Tę zmianę należy wprowadzić tylko podczas tworzenia prototypów lub zaufanych środowisk.

Ścieżka lokalizacji PCIe

Ścieżka lokalizacji PCIe jest wymagana do odinstalowania i zainstalowania urządzenia z hosta. Przykładowa ścieżka lokalizacji to PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000). Skrypt profilu komputera zwraca również ścieżkę lokalizacji urządzenia PCIe.

Zdobycie ścieżki lokalizacji za pomocą Menedżera urządzeń

Zrzut ekranu przedstawiający menedżera urządzeń z opcjami wyszukiwania ścieżki urządzenia.

  1. Otwórz Menedżera urządzeń i znajdź urządzenie.
  2. Kliknij prawym przyciskiem myszy urządzenie i wybierz polecenie Właściwości.
  3. Na karcie Szczegóły rozwiń menu rozwijane Właściwość i wybierz pozycję Ścieżki lokalizacji.
  4. Kliknij prawym przyciskiem myszy wpis rozpoczynający się od PCIROOT i wybierz polecenie Kopiuj , aby uzyskać ścieżkę lokalizacji dla urządzenia.

Spacja MMIO

Niektóre urządzenia, zwłaszcza procesory GPU, wymagają przydzielenia większej ilości miejsca MMIO na maszynę wirtualną, aby pamięć tego urządzenia była dostępna. Domyślnie każda maszyna wirtualna rozpoczyna się od 128 MB małej ilości miejsca MMIO i przydzielonego do niego 512 MB dużego miejsca MMIO. Jednak urządzenie może wymagać większej ilości miejsca MMIO lub wiele urządzeń może być przekazywane, tak aby łączne wymagania przekroczyły te wartości. Zmiana miejsca MMIO jest prosta i może być wykonywana w programie PowerShell przy użyciu następujących poleceń:

Set-VM -LowMemoryMappedIoSpace 3Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName $vm

Najprostszym sposobem określenia, ile miejsca mmIO należy przydzielić, jest użycie skryptu profilu komputera. Aby pobrać i uruchomić skrypt profilu komputera, uruchom następujące polecenia w konsoli programu PowerShell:

curl -o SurveyDDA.ps1 https://raw.githubusercontent.com/MicrosoftDocs/Virtualization-Documentation/live/hyperv-tools/DiscreteDeviceAssignment/SurveyDDA.ps1
.\SurveyDDA.ps1

W przypadku urządzeń, które można przypisać, skrypt wyświetla wymagania MMIO danego urządzenia. Oto przykładowe dane wyjściowe następującego skryptu:

NVIDIA GRID K520
Express Endpoint -- more secure.
    ...
    And it requires at least: 176 MB of MMIO gap space
...

Niskie miejsce MMIO jest używane tylko przez 32-bitowe systemy operacyjne i urządzenia korzystające z adresów 32-bitowych. W większości przypadków ustawienie dużej przestrzeni MMIO maszyny wirtualnej jest wystarczające, ponieważ konfiguracje 32-bitowe nie są powszechne.

Important

Podczas przypisywania miejsca MMIO do maszyny wirtualnej należy określić wystarczającą ilość miejsca mmIO. Miejsce MMIO powinno być sumą żądanego miejsca MMIO dla wszystkich żądanych przypisanych urządzeń oraz bufor dla innych urządzeń wirtualnych, które wymagają kilku MB miejsca MMIO. Użyj domyślnych wartości MMIO opisanych wcześniej jako bufor dla małych i wysokich MMIO (odpowiednio 128 MB i 512 MB).

Rozważmy poprzedni przykład. Jeśli przypiszesz pojedynczy GPU K520, ustaw przestrzeń MMIO maszyny wirtualnej na wartość uzyskaną ze skryptu profilu maszyny plus bufor: 176 MB + 512 MB. W przypadku przypisania trzech procesorów GPU K520 należy ustawić przestrzeń MMIO na trzy razy przestrzeń bazową 176 MB plus bufor lub 528 MB + 512 MB.

Aby uzyskać bardziej szczegółowe informacje na temat przestrzeni MMIO, zobacz Dyskretne przypisywanie urządzeń — procesory GPU w blogu Społeczności Technicznej.

Skrypt profilu komputera

Aby określić, czy serwer jest poprawnie skonfigurowany i jakie urządzenia mogą być przekazywane za pomocą dyskretnego przypisania urządzenia, uruchom SurveyDDA.ps1. Skrypt programu PowerShell.

Przed użyciem skryptu upewnij się, że masz zainstalowaną rolę Hyper-V i uruchom skrypt z okna poleceń programu PowerShell z uprawnieniami administratora.

Jeśli system jest niepoprawnie skonfigurowany do obsługi dyskretnego przypisania urządzenia, narzędzie wyświetla komunikat o błędzie ze szczegółami dotyczącymi problemu. Jeśli system jest poprawnie skonfigurowany, narzędzie wylicza wszystkie urządzenia znajdujące się w magistrali PCIe Bus.

Dla każdego znalezionego urządzenia narzędzie wyświetla, czy można go używać z dyskretnym przypisaniem urządzenia. Jeśli urządzenie jest identyfikowane jako niezgodne z dyskretnym przypisaniem urządzenia, skrypt podaje przyczynę. Gdy urządzenie zostanie pomyślnie zidentyfikowane jako zgodne, zostanie wyświetlona ścieżka lokalizacji urządzenia. Ponadto, jeśli to urządzenie wymaga miejsca MMIO, jest również wyświetlane.

Zrzut ekranu przedstawiający wymagania wyświetlane w SurveyDDA.ps1.