- LINUX

[Rocky] KVM pGPU 설정






1. 개요

KVM에서 pGPU 설정하여 VM에서 GPU를 사용할 수 있도록 설정합니다.







2. 버전

Rocky 9.4 Minimal







3. 참고 링크





3-1. [Rocky] KVM 설치

YouTube
Blog




3-2. [Rocky] KVM VM 생성(Linux) – GUI, CLI

YouTube
Blog




3-3. [Rocky] KVM VM 생성(Windows) – GUI, CLI

YouTube
Blog




3-4. [Rocky] KVM NAT 생성 및 삭제

YouTube
Blog




3-5. [Rocky] KVM Bridge 설정

YouTube
Blog




3-6. [Rocky] KVM VirtIO 설정(Windows VM 생성)

YouTube
Blog







4. 내용





4-1. pGPU(Passthrough GPU) 란?

실제 GPU(그래픽 처리 장치)를 가상 머신(VM)에 직접 할당하여 사용하는 방식입니다.
일반적인 가상화 환경에서는 GPU가 호스트 머신에서 공유되어 여러 VM이 사용할 수 있지만, pGPU 설정을 통해 GPU 자원을 특정 VM에 전용으로 할당할 수 있습니다.
VM은 마치 물리 서버처럼 GPU를 직접 접근하여 고성능 그래픽 처리가 필요한 작업이나 머신러닝과 같은 작업을 수행할 수 있습니다.







5. Nouveau





5-1. Nouveau 블랙리스트 설정

# cp /etc/default/grub /etc/default/grub.org
# sed -i ‘s@GRUB_CMDLINE_LINUX=”@GRUB_CMDLINE_LINUX=”modprobe.blacklist=nouveau @g’ /etc/default/grub
# cat << EOL >> /etc/modprobe.d/nouveau-blacklist.conf
blacklist nouveau
options nouveau modeset=0
EOL







6. 호스트에서 GPU 분리

GPU가 호스트 커널 드라이버에 바인딩 된 경우 GPU를 가상 머신에 추가할 수 없습니다.
가상 머신에 GPU 장치를 추가하기 전에 GPU 장치를 바인딩 해제합니다.





6-1. 장치 슬롯 이름과 ID 식별

장치 슬롯 이름: 000:31:00.0
그래픽 컨트롤러 vendor-id:device-id: 10de:20f1


# lspci -Dnn | grep -i NVIDIA

0000:31:00.0 3D controller [0302]: NVIDIA Corporation GA100 [A100 PCIe 40GB] [10de:20f1] (rev a1)
0000:b1:00.0 3D controller [0302]: NVIDIA Corporation Device [10de:26b9] (rev a1)




6-2. 호스트에서 GPU 장치를 사용하지 못하게 설정

intel_iommu: IOMMU를 활성화하여, PCI 패스스루가 가능하게 설정합니다.
vfio-pci: VFIO 프레임워크의 PCI 드라이버를 사용하여 PCI 장치를 관리합니다.
ids: 패스스루할 특정 PCI 장치의 벤더 ID와 디바이스 ID를 지정합니다.
pci-stub.ids: NVIDIA 장치를 호스트 시스템에서 예약하여, 해당 장치를 가상 머신에 패스스루할 수 있게 설정합니다.


# lspci -nn | grep NVIDIA

31:00.0 3D controller [0302]: NVIDIA Corporation GA100 [A100 PCIe 40GB] [10de:20f1] (rev a1)


# vim /etc/default/grub

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=UUID=6e95fbbb-535d-4d78-946c-b51a2c2eb6b2 nomodeset biosdevname=0 net.ifnames=0 modprobe.blacklist=nouveau intel_iommu=on pci-stub.ids=10de:20f1 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true


# grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg







7. 확인





7-1. 커널 부팅 명령줄 매개변수 확인

# cat /proc/cmdline

BOOT_IMAGE=(hd0,gpt3)/boot/vmlinuz-4.18.0-425.3.1.el8.x86_64 root=UUID=7eb8cbd9-b881-45c1-9670-1c4a4354132b ro modprobe.blacklist=nouveau crashkernel=auto resume=UUID=6e95fbbb-535d-4d78-946c-b51a2c2eb6b2 nomodeset biosdevname=0 net.ifnames=0 rhgb quiet intel_iommu=on pci-stub.ids=10de:20f1




7-2. IOMMU 활성화 확인

# dmesg | grep -E “DMAR|IOMMU” | grep enabled

[    0.000000] DMAR: IOMMU enabled




7-3. GPU에 올바른 커널 드라이버가 사용 중인지 확인

# lspci -nnk | grep -A 2 NVIDIA

libkmod: kmod_config_parse: /etc/modprobe.d/vfio-pci.conf line 1: ignoring bad line starting with 'vfio-pci'
31:00.0 3D controller [0302]: NVIDIA Corporation GA100 [A100 PCIe 40GB] [10de:20f1] (rev a1)
        Subsystem: NVIDIA Corporation Device [10de:145f]
        Kernel driver in use: pci-stub
        Kernel modules: nouveau




7-4. 가상 머신에 GPU 연결

  1. Add Hardware를 클릭합니다.


  1. PCI Host Device를 클릭합니다.
  2. Passthrough 설정한 GPU를 선택합니다.
  3. Finish를 클릭합니다.


  1. 장착된 GPU를 확인합니다.




7-5. VM 확인

# lspci | grep NVIDIA

08:00.0 3D controller: NVIDIA Corporation GA100 [A100 PCIe 40GB] (rev a1)


# nvidia-smi

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01             Driver Version: 535.183.01   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA A100-PCIE-40GB          Off | 00000000:08:00.0 Off |                  Off |
| N/A   67C    P0              53W / 250W |      0MiB / 40960MiB |     42%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+



seuheu

최근 게시물

[Linux] Rocky Linux 9.5 LVM 스냅샷 실습 ext4/XFS 스냅샷 생성·변경·병합(롤백) 가이드[Linux] Rocky Linux 9.5 LVM 스냅샷 실습 ext4/XFS 스냅샷 생성·변경·병합(롤백) 가이드

1. 개요 본 글은 LVM의 스냅샷(snapshot) 기능으로 복구 지점 생성 → 파일 변경 → 스냅샷 병합(rollback) 과정을 실습합니다. 동일한…

%일 전

[Linux] Rocky Linux 9.5 LVM PV/VG/LV 구축, 온라인 확장, ext4 오프라인 축소

https://youtu.be/ZcxB7akkDKs 1. 개요 두 개의 디스크(/dev/vdb, /dev/vdc)로 LVM을 구성하고, ext4·XFS 파일시스템 생성 → 마운트 → VG/LV 확장 → ext4 축소(오프라인)까지 전체…

%일 전

[Linux] Rocky Linux 9.5 Parted로 GPT 파티셔닝: ext4/XFS 포맷과 fstab 자동 마운트

https://youtu.be/XYBR1ZFrV9s 1. 개요 parted를 사용해 새 디스크에 GPT 라벨 생성 → 파티션 생성(ext4/XFS) → 포맷/마운트 →…

%일 전

[Linux] Rocky Linux 9.5 FDISK MBR 파티셔닝 : ext4/XFS 포맷과 fstab 자동 마운트

https://youtu.be/yYV8RQKCFzA 1. 개요 이 문서는 fdisk를 사용해 MBR(DOS) 디스크에 파티션을 생성하고, ext4/XFS 파일시스템을 포맷·마운트, /etc/fstab에 등록했다가, 안전하게 해제·삭제하는 전…

%일 전

[Linux] MBR vs GPT : 리눅스 파티션 방식 쉽게 비교

1. 개요 Linux에서 디스크 파티션 스타일은 MBR(Master Boot Record) 와 GPT(GUID Partition Table)에 대해 설명합니다. 2. MBR이란? 디스크…

%일 전

[WindowsServer] Windows Server 2025 설치

https://youtu.be/CNd1bJV4wGY 1. 개요 Windows Server를 새로 설치할 때의 설치 과정을 단계별로 정리하였습니다. Windows Server 설치…

%일 전