KVM에서 vGPU 설정하여 VM에서 vGPU를 사용할 수 있도록 설정합니다.
Rocky 9.4 Minimal
vGPU(가상 GPU)는 물리적인 GPU(Graphics Processing Unit)를 여러 가상 머신(VM)에서 공유할 수 있도록 해주는 기술입니다.
# 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
# grub2-mkconfig -o /boot/grub2/grub.cfg
# grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
# systemctl reboot
# mkdir NVIDIA
# mv NVIDIA-GRID-Linux-KVM-550.54.16-550.54.15-551.78.zip NVIDIA
# cd NVIDIA
# unzip NVIDIA-GRID-Linux-KVM-550.54.16-550.54.15-551.78.zip
# cd Host_Drivers/
# sh NVIDIA-Linux-x86_64-550.54.16-vgpu-kvm.run
# lsmod | grep nvidia_vgpu_vfio
nvidia_vgpu_vfio 73728 0
nvidia 8597504 1 nvidia_vgpu_vfio
mdev 24576 2 vfio_mdev,nvidia_vgpu_vfio
vfio 36864 3 vfio_mdev,nvidia_vgpu_vfio,vfio_iommu_type1
kvm 970752 2 nvidia_vgpu_vfio,kvm_intel
irqbypass 16384 2 nvidia_vgpu_vfio,kvm
# systemctl start nvidia-vgpu-mgr.service
# systemctl enable nvidia-vgpu-mgr.service
# systemctl status nvidia-vgpu-mgr.service
● nvidia-vgpu-mgr.service - NVIDIA vGPU Manager Daemon
Loaded: loaded (/usr/lib/systemd/system/nvidia-vgpu-mgr.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2024-06-04 07:33:16 EDT; 14min ago
Main PID: 1768 (nvidia-vgpu-mgr)
Tasks: 1 (limit: 2470715)
Memory: 36.4M
CGroup: /system.slice/nvidia-vgpu-mgr.service
└─1768 /usr/bin/nvidia-vgpu-mgr
Jun 04 07:33:16 KVM02 systemd[1]: Starting NVIDIA vGPU Manager Daemon...
Jun 04 07:33:16 KVM02 systemd[1]: Started NVIDIA vGPU Manager Daemon.
Jun 04 07:33:18 KVM02 nvidia-vgpu-mgr[1768]: notice: vmiop_env_log: nvidia-vgpu-mgr daemon started
# nvidia-smi vgpu -s
GPU 00000000:98:00.0
NVIDIA L40S-1B
NVIDIA L40S-2B
NVIDIA L40S-1Q
NVIDIA L40S-2Q
NVIDIA L40S-3Q
NVIDIA L40S-4Q
NVIDIA L40S-6Q
NVIDIA L40S-8Q
NVIDIA L40S-12Q
NVIDIA L40S-16Q
NVIDIA L40S-24Q
NVIDIA L40S-48Q
NVIDIA L40S-1A
NVIDIA L40S-2A
NVIDIA L40S-3A
NVIDIA L40S-4A
NVIDIA L40S-6A
NVIDIA L40S-8A
NVIDIA L40S-12A
NVIDIA L40S-16A
NVIDIA L40S-24A
NVIDIA L40S-48A
# 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="modprobe.blacklist=nouveau crashkernel=auto resume=UUID=14d180db-ae42-4cfd-a571-e268fce2fd96 intel_iommu=on rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
# grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
# reboot
# nvidia-smi vgpu
Tue Jun 4 07:48:35 2024
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.16 Driver Version: 550.54.16 |
|---------------------------------+------------------------------+------------+
| GPU Name | Bus-Id | GPU-Util |
| vGPU ID Name | VM ID VM Name | vGPU-Util |
|=================================+==============================+============|
| 0 NVIDIA L40S | 00000000:98:00.0 | 0% |
+---------------------------------+------------------------------+------------+
# /usr/lib/nvidia/sriov-manage -e 00000000:98:00.0
Enabling VFs on 0000:98:00.0
# echo ‘/usr/lib/nvidia/sriov-manage -e 00000000:98:00.0’ >> /etc/rc.local
# ls -al /sys/bus/pci/devices/0000:98:00.0/ | grep virtfn
# cat /sys/bus/pci/devices/0000:98:00.0/virtfn0/mdev_supported_types/nvidia-1152/name
NVIDIA L40S-8Q
# cat /sys/bus/pci/devices/0000:98:00.0/virtfn0/mdev_supported_types/nvidia-1152/available_instances
1
# UUID=$(uuidgen)
# echo $UUID > /sys/bus/pci/devices/0000:98:00.0/virtfn0/mdev_supported_types/nvidia-1152/create
# cat /sys/bus/pci/devices/0000:98:00.0/virtfn0/mdev_supported_types/nvidia-1152/available_instances
0
# ls /sys/bus/mdev/devices/ | wc -l
1
# UUID=$(uuidgen)
# echo $UUID > /sys/bus/pci/devices/0000:98:00.0/virtfn1/mdev_supported_types/nvidia-1152/create
# ls /sys/bus/mdev/devices/ | wc -l
2
1. 개요 Rocky Linux는 엔터프라이즈 환경에서 사용되는 RHEL(Red Hat Enterprise Linux)과 완전히 호환되는 오픈소스 Linux…
https://youtu.be/XwG4jBWakzQ 1. 개요 Supermicro IPMIView는 Supermicro에서 제공하는 IPMI (Intelligent Platform Management Interface) 기반의 통합 관리…
1. 개요 이 문서는 두 개의 NIC (enp5s0f0, enp5s0f1)를 bonding(active-backup) 방식으로 구성하고, 해당 bond 장치를 브리지(br0) 와 연결하여 KVM 가상머신에서…
1. 개요 KVM에서 NVIDIA GPU를 Passthrough 설정하여 VM에 할당할 때 RmInitAdapter failed 오류를 자주 접하게…
1. 개요 Proxmox에서 pGPU(Physical GPU)와 vGPU(Virtual GPU)를 동일한 서버에서 동시에 사용하는 방법을 정리합니다. 2. 버전…
1. 개요 Proxmox에서 vGPU를 설정하는 방법을 정리합니다. 2. 버전 Proxmox 8.2 3. vGPU란? vGPU(Virtual GPU)는…
댓글 보기
안녕하세요.
저는 오픈스택 컴퓨트 노드, ubuntu server 24.04, 에 장착된 L40S 장치를 vGPU 으로 구성하여 VM에 할당하기 위한 검토를 진행하고 있습니다.
일련의 설정, vgpu 드라이버 설치 및 sriov-manage 스크립트 실행에도 불구하고, mdev_supported_types 디렉토리 및 가상 장치 타입이 구성되지 않아 어려움을 겪고 있습니다.
혹시 위와 같은 문제를 겪었거나, 놓친 사항이 있는지 문의드립니다.