개별 디바이스 할당을 사용하여 디바이스 배포 계획

적용 대상: Windows Server 2022, Microsoft Hyper-V Server 2019, Windows Server 2019, Microsoft Hyper-V Server 2016, Windows Server 2016

개별 디바이스 할당을 사용하면 물리적 주변 장치 구성 요소 상호 연결 Express(PCIe) 하드웨어를 VM(가상 머신) 내에서 직접 액세스할 수 있습니다. 이 문서에서는 사용할 수 있는 디바이스 유형, 호스트 시스템 요구 사항, VM에 적용되는 제한 사항 및 보안에 미치는 영향에 대해 설명합니다.

불연속 디바이스 할당의 경우 Microsoft는 그래픽 어댑터와 NVMe Storage 디바이스라는 두 가지 디바이스 클래스를 지원합니다. 다른 디바이스가 작동할 가능성이 높으며 하드웨어 공급업체는 해당 디바이스에 대한 지원 명세서를 제공할 수 있습니다. 다른 디바이스의 경우 특정 하드웨어 공급업체에 지원을 요청하세요.

GPU 가상화의 다른 방법에 대한 자세한 내용은 Windows Server의 GPU 가속 계획을 참조하세요. 불연속 디바이스 할당을 시도할 준비가 되면 개별 디바이스 할당을 사용하여 그래픽 디바이스 배포로 이동하거나 불연속 디바이스 할당을 사용하여 NVMe Storage 디바이스를 배포할 수 있습니다.

지원되는 VM 및 게스트 운영 체제

개별 디바이스 할당은 1세대 또는 2세대 VM에 대해 지원됩니다. 지원되는 게스트는 다음과 같습니다.

자세한 내용은 Windows Server 및 Windows에서 Hyper-V용 지원되는 Linux 및 FreeBSD 가상 머신을 참조하세요.

시스템 요구 사항

시스템은 Windows Server의 하드웨어 요구 사항 및 Windows Server의 Hyper-V에 대한 시스템 요구 사항을 충족해야 합니다. 또한 개별 디바이스 할당에는 PCIe 패브릭(네이티브 PCI Express Control) 구성에 대한 운영 체제 제어를 부여할 수 있는 서버 클래스 하드웨어가 필요합니다. 또한 PCIe 루트 복합체는 HYPER-V가 입력 출력 메모리 관리 단위를 통해 모든 PCIe 트래픽을 강제로 적용할 수 있도록 하는 ACS(Access Control Services)를 지원해야 합니다.

이러한 기능은 일반적으로 서버의 BIOS에 직접 노출되지 않으며 다른 설정 뒤에 숨겨져 있는 경우가 많습니다. SR-IOV 지원 및 BIOS에서 동일한 기능이 필요한 경우 "SR-IOV 사용"을 설정해야 할 수 있습니다. BIOS에서 올바른 설정을 식별할 수 없는 경우 시스템 공급업체에 문의하세요.

하드웨어에서 개별 디바이스 할당을 수행할 수 있도록 Hyper-V 사용 호스트에서 컴퓨터 프로필 스크립트를 실행할 수 있습니다. 스크립트는 서버가 올바르게 설정되었는지와 개별 디바이스 할당을 수행할 수 있는 디바이스를 테스트합니다.

디바이스 요구 사항

모든 PCIe 디바이스를 불연속 디바이스 할당과 함께 사용할 수 있는 것은 아닙니다. 레거시(INTx) PCI 인터럽트를 사용하는 이전 디바이스는 지원되지 않습니다. 자세한 내용은 개별 디바이스 할당 - 컴퓨터 및 디바이스를 참조 하세요. 컴퓨터 프로필 스크립트실행하여 불연속 디바이스 할당에 사용할 수 있는 디바이스를 표시할 수도 있습니다.

디바이스 제조업체는 Microsoft 담당자에게 문의하여 자세한 내용을 확인할 수 있습니다.

디바이스 드라이버

개별 디바이스 할당은 전체 PCIe 디바이스를 게스트 VM에 전달합니다. VM 내에 디바이스를 탑재하기 전에 호스트 드라이버를 설치할 필요가 없습니다. 호스트의 유일한 요구 사항은 디바이스의 PCIe 위치 경로를 확인할 수 있다는 것입니다. 디바이스의 드라이버를 설치하여 디바이스를 식별할 수 있습니다. 호스트에 디바이스 드라이버가 설치되지 않은 GPU는 Microsoft Basic Render Device로 표시될 수 있습니다. 디바이스 드라이버가 설치된 경우 해당 제조업체 및 모델이 표시될 수 있습니다.

디바이스가 게스트 내부에 탑재되면 제조업체의 디바이스 드라이버를 게스트 VM 내에서 정상적으로 설치할 수 있습니다.

VM 제한 사항

불연속 디바이스 할당을 구현하는 방법의 특성으로 인해 디바이스가 연결된 동안 VM의 일부 기능이 제한됩니다. 사용할 수 없는 기능은 다음과 같습니다.

  • VM 저장/복원
  • VM의 실시간 마이그레이션
  • 동적 메모리 사용
  • HA(고가용성) 클러스터에 VM 추가

보안

개별 디바이스 할당은 전체 디바이스를 VM에 전달합니다. 이 전달은 게스트 운영 체제에서 해당 디바이스의 모든 기능에 액세스할 수 있음을 의미합니다. 펌웨어 업데이트와 같은 일부 기능은 시스템의 안정성에 부정적인 영향을 줄 수 있습니다. 호스트에서 디바이스를 분리할 때 관리자에게 수많은 경고가 표시됩니다. VM의 테넌트가 신뢰할 수 있는 개별 디바이스 할당만 사용해야 합니다.

관리자가 신뢰할 수 없는 테넌트가 있는 디바이스를 사용하려는 경우 디바이스 제조업체는 호스트에 설치할 수 있는 디바이스 완화 드라이버를 만들 수 있습니다. 디바이스 완화 드라이버를 제공하는지 여부에 대한 자세한 내용은 디바이스 제조업체에 문의하세요.

디바이스 완화 드라이버가 없는 디바이스에 대한 보안 검사 무시하려는 경우 매개 변수를 cmdlet에 Dismount-VMHostAssignableDevice 전달 -Force 해야 합니다. 이 패스를 만들 때 해당 시스템의 보안 프로필을 변경했습니다. 프로토타입 또는 신뢰할 수 있는 환경 중에만 이 변경을 수행해야 합니다.

PCIe 위치 경로

호스트에서 디바이스를 분리하고 탑재하려면 PCIe 위치 경로가 필요합니다. 위치 경로의 예는 다음과 같습니다 PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000). 컴퓨터 프로필 스크립트PCIe 디바이스의 위치 경로도 반환합니다.

장치 관리자 사용하여 위치 경로 가져오기

Screenshot of the device manager, showing the selections for finding a device path.

  1. 장치 관리자 열고 디바이스를 찾습니다.
  2. 장치를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
  3. 세부 정보 탭에서 속성 드롭다운 메뉴를 확장하고 위치 경로를 선택합니다.
  4. PCIROOT로 시작하는 항목을 마우스 오른쪽 단추로 클릭하고 복사를 선택하여 디바이스의 위치 경로를 가져옵니다.

MMIO 공간

일부 디바이스, 특히 GPU는 해당 디바이스의 메모리에 액세스할 수 있도록 VM에 더 많은 MMIO 공간을 할당해야 합니다. 기본적으로 각 VM은 128MB의 낮은 MMIO 공간과 512MB의 높은 MMIO 공간으로 시작합니다. 그러나 디바이스에 더 많은 MMIO 공간이 필요하거나 결합된 요구 사항이 이러한 값을 초과하도록 여러 디바이스가 전달될 수 있습니다. MMIO 공간 변경은 간단하며 다음 명령을 사용하여 PowerShell에서 수행할 수 있습니다.

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

할당할 MMIO 공간을 결정하는 가장 쉬운 방법은 컴퓨터 프로필 스크립트사용하는 것입니다. 컴퓨터 프로필 스크립트를 다운로드하고 실행하려면 PowerShell 콘솔에서 다음 명령을 실행합니다.

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

할당할 수 있는 디바이스의 경우 스크립트는 지정된 디바이스의 MMIO 요구 사항을 표시합니다. 다음 스크립트 출력은 예제입니다.

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

낮은 MMIO 공간은 32비트 운영 체제 및 32비트 주소를 사용하는 디바이스에서만 사용됩니다. 대부분의 경우 32비트 구성이 일반적이지 않으므로 VM의 높은 MMIO 공간을 설정하는 것으로 충분합니다.

Important

VM에 MMIO 공간을 할당하는 경우 충분한 MMIO 공간을 지정해야 합니다. MMIO 공간은 원하는 모든 할당된 디바이스에 대해 요청된 MMIO 공간과 몇MB의 MMIO 공간이 필요한 다른 가상 디바이스에 대한 버퍼의 합계여야 합니다. 이전에 낮은 MMIO 및 높은 MMIO에 대한 버퍼로 설명된 기본 MMIO 값을 사용합니다(각각 128MB 및 512MB).

이전 예제를 생각해 보세요. 단일 K520 GPU를 할당하는 경우 VM의 MMIO 공간을 컴퓨터 프로필 스크립트에서 출력한 값과 버퍼(176MB + 512MB)로 설정합니다. K520 GPU 3개를 할당하는 경우 MMIO 공간을 기본 크기인 176MB와 버퍼의 3배 또는 528MB + 512MB로 설정합니다.

MMIO 공간에 대한 자세한 내용은 기술 커뮤니티 블로그에서 불연속 디바이스 할당 - GPU 를 참조하세요.

컴퓨터 프로필 스크립트

서버가 올바르게 구성되었는지, 불연속 디바이스 할당을 사용하여 전달할 수 있는 디바이스를 식별하려면 SurveyDDA.ps1을 실행합니다. PowerShell 스크립트.

스크립트를 사용하기 전에 Hyper-V 역할이 설치되어 있는지 확인하고 관리이스트레이터 권한이 있는 PowerShell 명령 창에서 스크립트를 실행합니다.

시스템이 불연속 디바이스 할당을 지원하도록 잘못 구성된 경우 이 도구는 문제에 대한 세부 정보가 포함된 오류 메시지를 표시합니다. 시스템이 올바르게 구성된 경우 이 도구는 PCIe Bus에 있는 모든 디바이스를 열거합니다.

찾은 각 디바이스에 대해 이 도구는 개별 디바이스 할당과 함께 사용할 수 있는지 여부를 표시합니다. 디바이스가 불연속 디바이스 할당과 호환되는 것으로 확인되면 스크립트에서 이유를 제공합니다. 디바이스가 호환되는 것으로 성공적으로 식별되면 디바이스의 위치 경로가 표시됩니다. 또한 해당 디바이스에 MMIO 공간이 필요한 경우 디바이스도 표시됩니다.

Screenshot of the requirements displayed in SurveyDDA.ps1.