KVM에서 pGPU 설정하여 VM에서 GPU를 사용할 수 있도록 설정합니다.
Rocky 9.4 Minimal
실제 GPU(그래픽 처리 장치)를 가상 머신(VM)에 직접 할당하여 사용하는 방식입니다.
일반적인 가상화 환경에서는 GPU가 호스트 머신에서 공유되어 여러 VM이 사용할 수 있지만, pGPU 설정을 통해 GPU 자원을 특정 VM에 전용으로 할당할 수 있습니다.
VM은 마치 물리 서버처럼 GPU를 직접 접근하여 고성능 그래픽 처리가 필요한 작업이나 머신러닝과 같은 작업을 수행할 수 있습니다.
# 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
GPU가 호스트 커널 드라이버에 바인딩 된 경우 GPU를 가상 머신에 추가할 수 없습니다.
가상 머신에 GPU 장치를 추가하기 전에 GPU 장치를 바인딩 해제합니다.
장치 슬롯 이름: 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) 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
# 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 # dmesg | grep -E “DMAR|IOMMU” | grep enabled
[ 0.000000] DMAR: IOMMU enabled # 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 # 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 |
+---------------------------------------------------------------------------------------+ 1. 개요 OpenMediaVault(OMV) 웹 관리 페이지에서 admin 계정의 비밀번호를 변경하는 방법을 안내합니다. 2. 버전 정보…
https://youtu.be/hlBddMVRL9Q 1. 개요 OpenMediaVault(OMV)는 Debian 기반의 오픈소스 NAS(Network Attached Storage) 운영체제로, 웹 브라우저를 통해 스토리지,…
https://youtu.be/iCUa8Ua8fIg 1. 개요 Raspberry Pi OS Lite를 Raspberry Pi Imager를 이용하여 설치하는 방법을 설명합니다. 2.…
안녕하세요.이번에 CKA(Certified Kubernetes Administrator) 시험에서 90점으로 합격했습니다. (합격 기준 66점) 합격 자체도 기뻤지만, 이번 시험을 준비하면서…
https://youtu.be/n8-wlkZiqio 1. 개요 NFS(Network File System)를 설치하고, rw/ro 및 root_squash 옵션에 따른 접근 제어와 성능을 테스트하는 방법을 정리한 가이드입니다.…
https://youtu.be/4MVxzmepY3s 1. 개요 리눅스에서 정기적으로 실행되는 작업(백업, 로그 정리, 모니터링 등)은 cron 서비스를 통해 자동화할 수 있습니다.…