vGPU (виртуальный графический процессор) — это программная эмуляция физического GPU (графического процессора). vGPU позволяет распределить ресурсы графического процессора и памяти видеокарты между несколькими виртуальными машинами (ВМ). ВМ поочерёдно используют мощность графического процессора и выделяют под свои нужды часть видеопамяти. При выключении или приостановке ВМ ресурсы vGPU освобождаются. Подробнее о технологии см. в документации Nvidia.
Технология vGPU в VMmanager позволяет:
- пользователям — создавать ВМ с GPU для ускорения графических вычислений (например, для приложений в виртуальных рабочих столах);
- администраторам — распределять ресурсы одного GPU-устройства между несколькими ВМ.
Если на узле кластера установлено несколько GPU-устройств, часть из них может использоваться для проброса GPU, а остальные — для создания ВМ с поддержкой vGPU.
Ресурсы GPU распределяются между ВМ с помощью специальных конфигураций — профилей vGPU. Профили позволяют выделить определённый объём ресурсов для каждой ВМ.
Ограничения функции
vGPU — это проприетарная технология компании Nvidia. Для использования технологии vGPU без ограничений на ВМ должна быть установлена лицензия vGPU. Если лицензия отсутствует, то драйвер Nvidia ограничит распределение ресурсов GPU и снизит частоту кадров до 3 кадров/c.
По вопросам приобретения лицензии обратитесь в компанию Nvidia или к её партнёрам.
Технология vGPU поддерживается только для некоторых GPU-устройств Nvidia. Список поддерживаемых устройств см. в документации Nvidia.
В текущей версии платформы использование vGPU не поддерживается на узлах кластера с ОС Astra Linux.
Не поддерживается совместная работа vGPU и следующих функций платформы:
- включение отказоустойчивости в кластере, если ВМ с vGPU находится в списке ВМ для восстановления;
- включение балансировщика в кластере;
- эвакуация ВМ с vGPU в режиме обслуживания узла кластера;
Чтобы перевести узел, на котором есть ВМ с vGPU, в режим обслуживания, вы можете:
- не выполнять эвакуацию этих ВМ;
- отключить использование vGPU в тонких настройках этих ВМ.
- создание снимков ВМ;
- миграция ВМ.
Подготовка
Настройка BIOS
Для корректной работы vGPU включите в настройках BIOS на узлах кластера поддержку IOMMU (Input/Output Memory Management Unit) и SR-IOV (Single Root I/O Virtualization).
Проверка устройств
Перед настройкой проброса убедитесь, что GPU-устройства корректно определяются системой:
- Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- Выполните команду:
lspci | grep -iE "vga|3d"
- Изучите вывод команды. Пример вывода
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (rev 0c) 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480] 02:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2060 SUPER] (rev a1)
- Если вывод команды не содержит сведения об устройстве, убедитесь, что:
- Устройство правильно установлено в сервере.
- Устройство активно в BIOS (UEFI) сервера.
Настройка IOMMU
IOMMU (Input/Output Memory Management Unit) — технология управления памятью для устройств ввода-вывода. IOMMU обеспечивает виртуализацию физических адресов памяти, используемых устройствами PCI, и изолирует ресурсы между гостевыми операционными системами.
Для корректной работы GPU-устройств включите IOMMU в настройках загрузчика GRUB:
- Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- В файле /etc/default/grub добавьте в конец переменной GRUB_CMDLINE_LINUX_DEFAULT параметры IOMMU. Имена параметров зависят от типа процессора, установленного в сервере:
- Intel —
iommu=on
,intel_iommu=on
;Пример переменнойGRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=on intel_iommu=on"
- AMD —
iommu=on
,amd_iommu=on
;Пример переменнойGRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=on amd_iommu=on"
- Intel —
- Обновите конфигурацию GRUB: AlmaLinux
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Astra Linux, Ubuntusudo update-grub
- Перезагрузите сервер:
sudo reboot
Установка драйвера Nvidia
Установите драйвер Nvidia для vGPU на узлах кластера по инструкции из официальной документации.
Установка mdevctl
Установите на узлах кластера mdevctl — утилиту для управления vGPU:
sudo dnf -y install mdevctl
sudo apt -y install mdevctl
Управление vGPU
Выбор устройства
Чтобы выбрать устройства, для которых будет использоваться vGPU:
- Перейдите в Узлы → выберите узел → кнопка Параметры → раздел PCI-устройства → вкладка PCI-устройства.
- Для каждого устройства в столбце Использование нажмите значок
→ выберите vGPU.
- Если какие-либо устройства на узле до этого использовались для проброса GPU, перезагрузите узел кластера.
Чтобы отключить использование vGPU для устройства:
- Отключите vGPU в тонких настройках ВМ, которые используют это устройство.
- Перейдите в Узлы → выберите узел → кнопка Параметры → раздел PCI-устройства → вкладка PCI-устройства.
- В столбце Использование нажмите значок
→ выберите Не используется.
При выполнении этих действий профили vGPU будут удалены из платформы и конфигураций ВМ.

Интерфейс вкладки
Информация о профилях
Чтобы просмотреть профили vGPU, перейдите в Узлы → выберите узел → кнопка Параметры → раздел PCI-устройства → вкладка vGPU профили. При включении режима vGPU на вкладке появляется список профилей.
Чтобы актуализировать информацию о профилях, нажмите кнопку Обновить список профилей.
Таблица профилей содержит следующую информацию:
- название PCI-устройства;
- номер устройства;
- название профиля;
- количество дисплеев;
- частота кадров;
- буфер кадров;
- максимальное разрешение;
- количество ВМ, использующих профиль.

Интерфейс вкладки
Настройка vGPU на ВМ
Чтобы ВМ могли использовать vGPU, при создании конфигурации в разделе Параметры виртуализации:
- В параметре Использование видеокарты (GPU) выберите vGPU.
- Выберите vGPU профиль из списка. В списке отображаются все профили устройства, включая временно недоступные.
Вы можете изменить эти параметры в тонких настройках ВМ. При изменении параметров ВМ будет перезагружена. В период перезагрузки ВМ изменение параметра будет недоступно.

Пример настройки