-
하이퍼-V GPU 패스스루란?
-
Hyper-V GPU Passthrough를 위한 사전 요구 사항
-
Windows Server에서 DDA로 GPU 투과를 활성화하는 방법은?
-
Windows 10/11 호스트에서 GPU-P를 사용한 GPU 퍼스트루 설정 방법
-
안정적인 Hyper-V GPU 퍼스루 배포를 위한 모범 사례
-
하이퍼-V GPU 패스스루의 일반적인 문제 해결
-
Vinchin Backup & Recovery로 Hyper-V VM 보호하기
-
Hyper-V GPU Passthrough 자주 묻는 질문
-
결론
하이퍼-V GPU 패스스루는 조직이 고부하 작업을 하이퍼-V 가상 환경에서 실행하는 방식을 변화시키고 있습니다. 가상 머신(VM)이 물리 GPU에 직접 액세스하거나 이를 효율적으로 공유할 수 있도록 함으로써 AI 학습이나 3D 렌더링과 같은 새로운 사용 사례를 하이퍼-V 인프라의 안정성에서 벗어나지 않고도 활용할 수 있게 해줍니다. 하지만 이 기술은 어떻게 작동할까요? 또 어떤 함정이 있을까요? 하이퍼-V GPU 패스스루에 대해 기초부터 고급 배포까지 필요한 모든 정보를 알아보겠습니다.
하이퍼-V GPU 패스스루란?
하이퍼-V GPU 패스스루는 호스트 서버의 물리적 GPU를 가상 머신에 직접 할당할 수 있게 해주며, 이로 인해 가상 머신이 에뮬레이트된 그래픽이 아닌 실제 GPU 성능을 사용할 수 있습니다. 이는 머신 러닝, CAD 모델링, 동영상 인코딩 또는 과학 컴퓨팅과 같은 자원을 많이 소비하는 작업에 필수적입니다.
Hyper-V GPU Passthrough를 위한 사전 요구 사항
Hyper-V GPU Passthrough를 설정하기 전에 하드웨어 및 소프트웨어 요구 사항을 꼼꼼히 확인하십시오. 단 하나의 세부 사항이라도 빠뜨리면 오류가 발생할 수 있습니다.
하드웨어/소프트웨어 검증 체크리스트
개별 장치 할당(DDA)을 위한 사항:
OS: 하이퍼-V 역할이 활성화된 Windows Server 2016 이상 버전
GPU: 지원되는 PCIe GPU(NVIDIA Tesla, Quadro, AMD Radeon Pro/FirePro 등)
VM 유형: 2세대 VM만 해당됨
설정: 동적 메모리 및 체크포인트 사용 안 함
GPU 사용량: 대상 GPU는 호스트 또는 다른 VM에서 사용되지 않아야 합니다.
펌웨어: BIOS에서 "4GB 이상 디코딩"이 활성화된 UEFI
선택 사항: SR-IOV 지원 (일부 GPU에 권장됨)
GPU 분할(GPU-P)의 경우:
OS: Windows 10/11 Pro 또는 Enterprise (빌드 1903 이상)
GPU: 파티션 기능을 지원하는 최신 GPU
VM 유형: 2세대 VM만 해당
PowerShell: 드라이버 주입에 필요함
선택 사항: 더 나은 성능을 위해 BIOS에서 Resizable BAR 활성화
보안: 문제가 발생할 경우 가상화 기반 보안 기능(예: 코어 분리)을 비활성화하십시오
참고: WSL2와 Hyper-V를 함께 사용하면서 GPU-P가 활성화된 VM을 실행할 경우 WSL2가 특정 GPU에 대한 독점 액세스 권한을 요구함에 따라 리소스 충돌이 발생할 수 있습니다.
Windows Server에서 DDA로 GPU 투과를 활성화하는 방법은?
개별 장치 할당(DDA)은 물리적 그래픽 카드 전체를 단일 가상 머신에만 할당하여 최고의 성능이 필요한 경우에 적합합니다. 예를 들어, 딥러닝 서버나 고성능 렌더링 노드 등이 있습니다.
단계별 설정:
먼저 할 일: 하드웨어 할당을 포함한 설정 변경 작업 시 대상 VM을 꺼두세요!
1. 자동 체크포인트 및 동적 메모리 비활성화:
이 기능들은 비활성화되어야 하며, 이는 직접 장치 매핑에 간섭이 없도록 하기 위함입니다.
Set-VM -Name <VMName> -AutomaticStopAction TurnOff Set-VM -Name <VMName> -DynamicMemoryEnabled $false
2. 메모리 매핑된 I/O 공간 예약:
게스트 OS가 카드에서 노출하는 모든 VRAM/펌웨어 영역을 볼 수 있도록 충분한 주소 공간을 확보해야 합니다.
Set-VM -Name <VMName> -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 3072 -HighMemoryMappedIoSpace 33280
값은 메가바이트 단위입니다: 여기서는 약 3GB의 낮은 MMIO 공간과 약 32GB의 높은 MMIO 공간을 확보합니다.
3. 물리적 GPU의 위치 경로 찾기:
디바이스 관리자(Device Manager)를 열고 > 디스플레이 어댑터(Display adapters)를 확장한 후, 대상 카드를 마우스 오른쪽 버튼으로 클릭 > 속성(Properties) 선택 > 세부 정보(Details tab) 탭으로 이동해 속성 드롭다운을 위치 경로(Location Paths)로 설정한 다음, PCIROOT...
로 시작하는 값을 복사합니다.
또는 PowerShell을 통해:
Get-PnpDevice | Where {$_.Class -eq "Display"} | Select Name,InstanceId
“Display”에 아무것도 나타나지 않으면, 제조사 이름으로 검색해 보세요 (Where {$_.FriendlyName -like 'NVIDIA'}
).
4. 호스트에서 장치 분리:
이 명령을 사용하십시오. 단, –force
를 사용하면 호스트 제어에서 즉시 제거되므로 주의하십시오! 데스크톱 시스템에서 주 디스플레이 어댑터인 경우, 콘솔 출력을 위한 그래픽이 내장된 헤드리스 서버 하드웨어가 아니라면, 로컬 디스플레이를 잃을 수 있습니다!
Dismount-VmHostAssignableDevice -LocationPath "<YourLocationPath>" -force
장치를 잠그고 있는 활성 프로세스로 인해 마운트 해제에 실패한 경우: 먼저 장치 관리자에서 장치를 일시적으로 비활성화한 후 위의 PowerShell 명령을 다시 시도하십시오.
5. 대상 VM에 장치 직접 할당:
Add-VMAssignableDevice -VMName <VMName> -LocationPath "<YourLocationPath>"
6. VM 시작 및 드라이버 설치:
게스트 OS를 부팅하고 디스플레이 어댑터 아래의 자체 디바이스 관리자를 엽니다. 이제 "Microsoft Hyper-V 비디오"와 실제 전용 그래픽 카드가 모두 표시되어야 합니다! 필요시 게스트 내에서 최신 드라이버(NVIDIA, AMD)를 설치하되, 반드시 게스트 OS 버전에 맞는 드라이버를 설치해야 하며, 호스트 드라이버는 설치하지 마세요!
7. 나중에 카드 삭제/회수:
게스트에서 호스트 풀로 다시 제어를 반환하려면:
Remove-VMAssignableDevice -VMName <VMName> -LocationPath "<YourLocationPath>" Mount-VMHostAssignableDevice -LocationPath "<YourLocationPath>"
성공 확인
설치가 완료되고 게스트 디바이스 관리자 내에서 드라이버가 오류 아이콘 없이 로드되었거나 간단한 벤치마크 앱을 실행한 후라면 준비가 완료된 것입니다! 여기서 앱 코드와 하드웨어 간에 가상화 오버헤드가 없기 때문에 거의 베어메탈 수준의 속도를 기대할 수 있습니다.
Windows 10/11 호스트에서 GPU-P를 사용한 GPU 퍼스트루 설정 방법
최대 속도보다 유연성이 더 중요한 경우, 예를 들어 여러 사용자가 동시에 적당한 가속이 필요한 경우, Microsoft에서 새롭게 출시한 GPU 분할 기술(GPU Partitioning, GPU-P)을 통해 하나의 큰 GPU를 여러 개의 작은 가상 GPU(vGPU)로 나누어 각 작업에 할당하는 방안을 고려해 보세요.
단계별 설정
1. 카드가 파티셔닝을 지원하는지 확인하십시오:
최근 Windows 빌드에서:
Get-VMPartitionableGpu # Win10 이상 Get-VMHostPartitionableGpu # Win11 이상
결과에 호환 가능한 장치가 나열되어 있다면 정상입니다!
2. 대상 VM에 GpuPartition 어댑터 추가:
계속하기 전에 대상 VM이 전원이 꺼져 있는지 확인하십시오!
Add‑VMGpuPartitionAdapter ‑VMName <VMName>
3. 스크립트를 사용하여 게스트에 호스트 드라이버 복사:
Easy-GPU-PV라는 인기 있는 스크립트는 드라이버 주입을 자동화합니다([요청 시 GitHub 프로젝트 링크 제공 가능]). 호스트 시스템에 다운로드/압축을 푼 다음 실행하십시오:
Set‑ExecutionPolicy ‑Scope Process ‑ExecutionPolicy Bypass –Force .\Update‑VMGpuPartitionDriver.ps1 ‑VMName <VMName> ‑GPUName "AUTO"
이렇게 하면 현재 사용 중인 드라이버가 게스트 이미지에 복사되기 때문에 앱들이 부팅 후 정확하게 할당된 vGPU 파티션을 인식할 수 있습니다. 공식 설치 프로그램이 가상 환경 내 설치를 차단하더라도 문제가 발생하지 않습니다!
4. 게스트 액세스를 위한 충분한 MMIO 공간 확보:
다시 한 번, 아래 값은 메가바이트 단위입니다. GB가 아닙니다!
Set-VM -Vmname-GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1024 -HighMemoryMappedIoSpace 32768
대용량 메모리 카드(>24GB VRAM)를 사용하는 경우 값을 더 높이 조정하십시오.
5. (선택 사항) 파티션별 리소스 할당 세부 조정 (Windows 11만 해당):
어댑터 인스턴스당 최소/최대 VRAM을 설정할 수 있습니다:
Set‑VMGpuPartitionAdapter –Vmname <Vmname> –MinPartitionVRAMBytes <min_bytes> –MaxPartitionVRAMBytes <max_bytes>
예시: 워크로드 요구에 따라 각 파티션당 약 800MB~1GB 사이를 할당합니다.
6. (중요) WSL 또는 다른 서비스와의 충돌 방지:
WSL2가 동시에 설치/실행 중인 경우 하드웨어에 대한 독점 락을 가져와 게스트 내 시작/할당 시도 중 오류가 발생할 수 있습니다! 문제가 지속되면 WSL을 일시적으로 비활성화하십시오(마이크로소프트 가이드 참조).
성공 검증
타겟 게스트 OS를 부팅하고, 디스플레이 어댑터에서 자체 디바이스 관리자를 엽니다. 그러면 기본 비디오 출력 옆에 "Virtual Render Device"와 같이 새 항목이 나타납니다. Blender Cycles 렌더러나 TensorFlow 훈련 작업과 같은 테스트 앱을 실행하면, 각각의 API를 통해 매핑된 사용 가능한 CUDA/OpenCL 리소스를 보고합니다.
안정적인 Hyper-V GPU 퍼스루 배포를 위한 모범 사례
Hyper-V GPU 퍼스루를 원활하게 배포하기 위해 다음 모범 사례를 따르십시오:
가능한 경우 언제나 호스트와 게스트 드라이버를 함께 업데이트하십시오.
밀집된 랙마운트 케이스의 경우 특히 온도와 팬 속도를 모니터링하십시오.
운영 서버의 경우 콘솔/KMS 역할만을 위해 최소한 하나의 내장형/통합 어댑터를 할당하십시오.
소비자용 게이밍 카드를 데이터센터 워크로드와 함께 사용하는 것은 제조사에서 가상화 기능을 명시적으로 지원하지 않는 한 피해야 합니다.
더 나은 UEFI 지원 및 향상된 격리/보안 경계를 위해 세대 2 VM만 사용하십시오.
초기 배포 전 BIOS/펌웨어 메뉴에서 SR-IOV 및 Above4GDecoding 옵션을 활성화하십시오.
하이퍼-V GPU 패스스루의 일반적인 문제 해결
경험이 많은 관리자라도 문제를 마주치곤 합니다! 다음은 자주 발생하는 문제들과 해결 방법입니다:
드라이버 설치 후 게스트 OS에서 Code43 오류 발생: 일반적으로 잘못된 드라이버 버전 또는 다른 프로세스에서 남아 있는 락(lock)이 원인입니다. 표준 설치 프로그램을 사용하지 않고 게스트 내부에서 올바른 드라이버 패키지를 제거했다가 다시 설치하십시오.
"시작 실패" 또는 부팅 시 검은 화면: 동적 메모리/체크포인트가 전체 라이프사이클 동안 비활성화되어 있는지 확인하고 클러스터 노드에서 동일한 PCIe 장치 ID에 대한 잠금을 다른 프로세스가 보유하지 않았는지 검증하십시오.
성공적인 작업 할당에도 불구하고 성능이 저하됨: CPU/RAM 병목 현상을 확인하고 스토리지/네트워크 서브시스템 간의 충분한 대역폭을 확보하십시오.
WSL/GPU 리소스 경합: WSL2를 사용하는 경우 VM 또는 컨테이너에서 GPU 집약적 작업을 완료하는 동안 일시적으로 비활성화하십시오.
Vinchin Backup & Recovery로 Hyper-V VM 보호하기
Hyper-V GPU 패스스루를 구성하고 Hyper-V 환경에서 중요한 작업 부하를 실행하는 경우, 데이터 손실이나 다운타임 위험으로부터 해당 투자를 보호하는 것이 필수적입니다. 이러한 상황에서 Vinchin Backup & Recovery가 귀사의 가상 인프라에 맞게 설계된 엔터프라이즈급 백업 솔루션으로서 그 역할을 수행합니다.
Vinchin는 VMware, Proxmox VE, oVirt, OLVM, RHV, XCP-ng, XenServer, OpenStack, ZStack를 포함한 15개 이상의 주요 플랫폼 전반에 걸쳐 가상 머신을 위한 특화된 백업 및 재해 복구 솔루션을 제공하며, 특히 오늘 소개하는 Microsoft Hyper-V 환경에 대해 뛰어난 지원 기능을 갖추고 있습니다.
Vinchin를 사용하면 표준 구성 또는 패스스루(passthrough)와 같은 고급 구성에 관계없이 가상 머신(VM)을 효율적인 백업 전략, V2V 마이그레이션, 그리고 유연한 복구 옵션을 통해 보호할 수 있습니다. 해당 솔루션은 자동 예약, 보존 정책, 그리고 사용하기 쉬운 웹 콘솔을 제공합니다.
Vinchin Backup & Recovery 작동은 매우 간단하며, 단 몇 단계만으로 이루어집니다.
1. 호스트에서 Hyper‑V VM 선택
2.백업 대상 선택
3. 전략 선택
4.마지막으로 작업 제출
Vinchin는 귀하의 가상머신에 대한 광범위한 보호를 제공합니다. 여기에는 고급 패스스루 설정도 포함됩니다. Vinchin는 전 세계 수천 개 기관들의 신뢰를 받으며, 60일 동안 완전 기능을 사용할 수 있는 무료 체험을 제공합니다. 이를 통해 어떠한 투자도 하기 전에 모든 기능을 안전하게 탐색할 수 있습니다.
Hyper-V GPU Passthrough 자주 묻는 질문
Q1: Windows 홈 에디션에서 Hyper-V GPU Passthrough를 사용할 수 있나요?
A1: 아니요—Pro, Enterprise 또는 Education 버전이 필요합니다. Home 버전은 필요한 가상화 기능을 지원하지 않습니다.
Q2 : 호스트를 업그레이드한 후 전달형 드라이버를 업데이트하는 방법은 무엇인가요?
A2: 업데이트된 드라이버 스택을 대상으로 다시 Easy-GPU-PV 스크립트를 실행하고, 이후 영향을 받는 게스트를 재부팅하십시오.
결론
Hyper-V 직접 할당은 까다로운 작업 부하에 새로운 가능성을 열어주지만, 하드웨어 호환성, 드라이버 관리 및 지속적인 모니터링을 신중하게 계획해야 합니다. Vinchin을 사용하면 복잡성에 관계없이 모든 중요한 작업 부하가 안전하게 보호된다는 점에서 안심할 수 있습니다. 지금 바로 무료 체험을 시작해 보세요!
공유하기: