Настройка vGPU
В данном разделе описывается процесс настройки vGPU на примере NVIDIA RTX A6000.
Настройка системных параметров хоста
Все нижеперечисленные действия выполняются в консоли хоста с подключенным vGPU. Также для упрощения настройки загрузчика GRUB необходимо, чтобы хост не был подключен к системе управления средой виртуализации.
- Отредактируйте в файле
/etc/default/grub строку GRUB_CMDLINE_LINUX, добавив параметры загрузки ядра "rdblacklist=nouveau intel_iommu=on", чтобы получилась строка аналогичного вида:
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rv-swap rd.lvm.lv=rv/root rd.lvm.lv=rv/swap rdblacklist=nouveau intel_iommu=on loglevel=4"
- Обновите конфигурацию загрузчика GRUB, выполнив одну из команд в зависимости от типа используемой системы загрузки:
- для UEFI:
grub2-mkconfig -o /boot/efi/EFI/rosa/grub.cfg
- для BIOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
- Для установки драйверов:
- Включите репозиторий DVD и cмонтировать диск в директорию /mnt:
dnf config-manager --set-enabled DVD
mount -t iso9660 -o ro /dev/sr0 /mnt
- Установите пакеты с драйверами и включить сервисы:
dnf install nvidia-vgpu-kvm nvidia-vgpu-kvm-kmod
systemctl enable nvidia-vgpu-mgr.service
systemctl enable nvidia-vgpud.service
- Перезагрузите хост.
- Проверьте, с какими параметрами загрузилось ядро. Это действие можно выполнить с помощью команд:
dmesg | grep "Command line"
cat /proc/cmdline
- Проверьте, какие модули ядра используются для vGPU с помощью команд:
- lspci:
lspci -knn | grep -A 15 NVIDIA
41:00.0 3D controller [0302]: NVIDIA Corporation Device [10de:26b1] (rev a1)
Subsystem: NVIDIA Corporation Device [10de:16a1]
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_vgpu_vfio, nvidia
- lsmod:
lsmod | grep -E 'vfio|nvidia'
nvidia_vgpu_vfio 65536 0
nvidia 35315712 11
vfio_mdev 16384 0
mdev 24576 2 vfio_mdev,nvidia_vgpu_vfio
vfio_iommu_type1 36864 0
vfio 36864 3 vfio_mdev,nvidia_vgpu_vfio,vfio_iommu_type1
drm 577536 7 drm_kms_helper,drm_vram_helper,ast,nvidia,drm_ttm_helper,ttm
Если установка драйвера прошла успешно, то вывод утилиты nvidia-smi будет аналогичного вида:
nvidia-smi
Mon Aug 21 16:55:38 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.82 Driver Version: 470.82 CUDA Version: N/A |
|-------------------------------+----------------------+----------------------+
| 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 A16 On | 00000000:45:00.0 Off | 0 |
| 0% 39C P8 15W / 62W | 0MiB / 15105MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
- Создайте файл
/etc/cron.d/sriov-manageсо следующим содержанием:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
@reboot root sleep 60 && /usr/lib/nvidia/sriov-manage -e ALL > /dev/null 2>&1
- Перезагрузите хост. Если всё прошло успешно, то после перезагрузки можно увидеть список доступных vGPU в системе:
lspci | grep NVIDIA
41:00.0 3D controller: NVIDIA Corporation Device 26b1 (rev a1)
41:00.4 3D controller: NVIDIA Corporation Device 26b1 (rev a1)
41:00.5 3D controller: NVIDIA Corporation Device 26b1 (rev a1)
41:00.6 3D controller: NVIDIA Corporation Device 26b1 (rev a1)
41:00.7 3D controller: NVIDIA Corporation Device 26b1 (rev a1)
41:01.0 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:01.1 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:01.2 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:01.3 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:01.4 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:01.5 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:01.6 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:01.7 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:02.0 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:02.1 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:02.2 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:02.3 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:02.4 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:02.5 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:02.6 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:02.7 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:03.0 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:03.1 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:03.2 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:03.3 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:03.4 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:03.5 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:03.6 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:03.7 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:04.0 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:04.1 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:04.2 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
41:04.3 3D controller: NVIDIA Corporation Device 26b1 (rev ff)
- Подключите хост к СУСВ стандартным способом, используя Портал Администрирования.
Установка драйвера vGPU
На следующем шаге настройки необходимо создать виртуальную машину и установить гостевую ОС стандартным способом:
- Выключите ВМ и на портале администрирования в разделе "Ресурсы ‒ Виртуальные машины" откройте окно со свойствами настраиваемой ВМ, нажав на ссылку в поле "Имя".
- Перейдите на вкладку "Устройства хоста" и нажмите кнопку Управление vGPU.
- В открывшемся окне выберите vGPU, которое будет подключено к виртуальной машине, переведите переключатель "Вторичный видеоадаптер для VNC" в положение "Выкл.", нажмите кнопку Сохранить (рисунок 186).

Рисунок 186 ‒ Настройка vGPU
- Запустите ВМ и подключитесь к SPICE консоли для установки vGPU драйвера. Диспетчер устройств до установки драйвера не будет отображать подключенных видеоадаптеров, как указано на рисунке 187.

Рисунок 187 ‒ Диспетчер устройств до установки vGPU драйвера
Настройка драйвера vGPU для ВМ
После установки для настройки драйвера vGPU для ВМ:
- Выключите ВМ, вновь откройте окно "Управление vGPU" и переведите переключатель "Вторичный видеоадаптер для VNC" в положение "Вкл." (рисунок 188).

Рисунок 188 ‒ Активация параметра "Вторичный видеоадаптер для VNC"
- Запустите вновь виртуальную машину. В диспетчере устройств должен появиться соответствующий видеоадаптер (рисунок 189).

Рисунок 189 ‒ Отображение подключенного видеоустройства в "Диспетчере устройств"
На хосте с помощью утилиты nvidia-smi можно отслеживать используемые ресурсы vGPU:
nvidia-smi
Tue Aug 22 10:04:45 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.82 Driver Version: 470.82 CUDA Version: N/A |
|-------------------------------+----------------------+----------------------+
| 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 A16 On | 00000000:45:00.0 Off | 0 |
| 0% 37C P8 15W / 62W | 3648MiB / 15105MiB | 10% Default |
| | | N/A |
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 274838 C+G vgpu 3648MiB |
+-----------------------------------------------------------------------------+