Proxmox GPU 패스스루
Proxmox VM에 GPU 또는 PCI 장치를 직접 전달할 때의 개념과 점검 순서.
Proxmox VM에 GPU 또는 PCI 장치를 직접 전달할 때의 개념과 점검 순서.
GPU 패스스루란
GPU 패스스루는 host의 PCI 장치를 VM에 직접 넘기는 방식이다. VM은 해당 GPU를 자기 장치처럼 사용한다.
용도:
- Windows VM 그래픽 작업
- AI/GPU 실험
- 미디어 트랜스코딩
- 가상 데스크톱
- 특정 PCI 장치 직접 사용
필요한 조건
- CPU와 메인보드의 IOMMU 지원
- BIOS/UEFI에서 IOMMU 활성화
- GPU가 독립 IOMMU group에 가까울 것
- VM은 보통 OVMF(UEFI) 사용
- 적절한 드라이버와 VFIO 설정
Intel은 VT-d, AMD는 AMD-Vi/IOMMU 옵션을 확인한다.
IOMMU 활성화 확인
dmesg | grep -e DMAR -e IOMMU
find /sys/kernel/iommu_groups/ -type l
부팅 파라미터는 CPU 플랫폼에 따라 다르다.
intel_iommu=on
amd_iommu=on
[!warning] 부팅 설정 주의 GRUB 또는 kernel cmdline 변경 후 부팅 실패가 날 수 있다. 변경 전 콘솔 접근 방법과 복구 절차를 확보한다.
IOMMU group 확인
IOMMU group이 깔끔해야 장치를 안전하게 넘길 수 있다.
for g in /sys/kernel/iommu_groups/*; do
echo "IOMMU Group ${g##*/}"
for d in "$g"/devices/*; do
lspci -nns "${d##*/}"
done
done
GPU는 보통 VGA 장치와 Audio 장치가 함께 있다.
01:00.0 VGA compatible controller
01:00.1 Audio device
둘 다 VM에 넘기는 경우가 많다.
VFIO 바인딩
GPU를 host 드라이버가 잡지 않고 VFIO가 잡도록 설정한다.
흐름:
- GPU PCI ID 확인
- vfio 모듈 로드
- GPU ID를 vfio-pci에 지정
- initramfs 갱신
- 재부팅
- 바인딩 확인
lspci -nn
lspci -k -s 01:00.0
VM 설정 기준
권장:
- BIOS: OVMF
- Machine: q35
- CPU: host
- Display: none 또는 기본 display 최소화
- PCI device: GPU와 Audio 함께 추가
- ROM-Bar, PCI-Express 옵션은 장치별로 테스트
GPU 패스스루 VM은 일반 VM보다 하드웨어 의존성이 크다. 스냅샷과 백업을 먼저 준비한다.
흔한 문제
| 증상 | 가능한 원인 |
|---|---|
| VM 부팅 실패 | OVMF/q35 설정 문제 |
| GPU가 VM에서 안 보임 | VFIO 바인딩 실패 |
| 드라이버 오류 | GPU reset/드라이버 이슈 |
| host 화면 사라짐 | host가 쓰던 GPU를 넘김 |
| VM 종료 후 재시작 실패 | GPU reset 문제 |
단일 GPU 환경
host에 GPU가 하나뿐이면 더 조심해야 한다. Proxmox host 콘솔을 잃을 수 있다.
권장:
- 내장 GPU를 host용으로 사용
- 별도 GPU를 VM에 전달
- SSH와 웹 UI 접근 확인
- 실패 시 복구할 부팅 옵션 준비
AI/GPU 서버 관점
GPU를 AI 워크로드에 쓸 때는 다음을 추가로 본다.
- PCIe lane
- 전원과 발열
- GPU 메모리
- 드라이버 버전
- CUDA/ROCm 호환성
- VM 내부 컨테이너 런타임
GPU를 Kubernetes에 붙일 계획이면 VM 내부에서 GPU가 안정적으로 잡히는지 먼저 확인하고, 그 다음 device plugin을 구성한다.
작업 순서 요약
- BIOS에서 IOMMU 활성화
- Proxmox에서 IOMMU 확인
- IOMMU group 확인
- VFIO 바인딩
- initramfs 갱신
- 재부팅
- VM에 PCI device 추가
- guest OS 드라이버 설치
- 부팅/재부팅/종료 테스트
관련 노트
- 상위: 00-MOC-Proxmox
- VM: 02-03-Proxmox-VM-관리
- Linux 부팅: 02-03-부팅-과정-GRUB
- AI 인프라: Arch-10-AI인프라-아키텍처